Skip to content

Threads stuck on  #3612

@banker

Description

@banker

I have a multi-threaded Ruby app running on jruby 9.0.4.0 (2.2.2) 2015-11-12 b9fb7aa Java HotSpot(TM) 64-Bit Server VM 25.45-b02 on 1.8.0_45-b14 +jit [linux-amd64].

This is the same app referenced in #3394.

We are still seeing "stuck" threads, although much less frequently than before (the issue occurs perhaps once a week, sometimes less often). Although the threads are RUNNABLE, they are not making progress. Here's is the relevant portion of the jstack trace:

"Ruby-0-Thread-10: #24 daemon prio=5 os_prio=0 tid=0x00007fe6b0578800 nid=0x3be0 runnable [0x00007fe68bdf8000]
   java.lang.Thread.State: RUNNABLE
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong$CHM.help_copy_impl(NonBlockingHashMapLong.java:843)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong$CHM.access$300(NonBlockingHashMapLong.java:402)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong.help_copy(NonBlockingHashMapLong.java:396)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong.access$1100(NonBlockingHashMapLong.java:79)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong$CHM.copy_slot_and_check(NonBlockingHashMapLong.java:868)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong$CHM.get_impl(NonBlockingHashMapLong.java:534)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong$CHM.access$200(NonBlockingHashMapLong.java:402)
  at org.cliffc.high_scale_lib.NonBlockingHashMapLong.get(NonBlockingHashMapLong.java:360)
  at org.jruby.java.invokers.RubyToJavaInvoker.getSignature(RubyToJavaInvoker.java:205)
  at org.jruby.java.dispatch.CallableSelector.matchingCallableArityOne(CallableSelector.java:103)
  at org.jruby.java.invokers.RubyToJavaInvoker.findCallableArityOne(RubyToJavaInvoker.java:356)
  at org.jruby.java.invokers.InstanceMethodInvoker.call(InstanceMethodInvoker.java:98)
  at org.jruby.runtime.callsite.CachingCallSite.callBlock(CachingCallSite.java:139)
  at org.jruby.runtime.callsite.CachingCallSite.call(CachingCallSite.java:145)

When this occurs, several threads are stuck on the help_copy_impl method.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions