sun.nio.ch.KQueueSelectorImpl

DataStax JIRA | Matthew Conway | 4 years ago
  1. 0

    This may just be an edge case for me, but noticed that when I use java-driver in a jruby rails application, the rails console would just hang when I tried to exit. I traced it down to the fact that java-driver (or one of its dependencies) creates a bunch of non-daemon threads. If its possible, it would be great if you ensured all threads were daemon threads. I think the 2 culprits (from a kill -3) are: {noformat} "Hashed wheel timer #1" prio=5 tid=7fb4e9e4e800 nid=0x119c18000 waiting on condition [119c17000] java.lang.Thread.State: TIMED_WAITING (sleeping) at java.lang.Thread.sleep(Native Method) at org.jboss.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:467) at org.jboss.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:376) at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) at java.lang.Thread.run(Thread.java:680) "New I/O boss #17" prio=5 tid=7fb4ea080800 nid=0x119808000 runnable [119807000] java.lang.Thread.State: RUNNABLE at sun.nio.ch.KQueueArrayWrapper.kevent0(Native Method) at sun.nio.ch.KQueueArrayWrapper.poll(KQueueArrayWrapper.java:136) at sun.nio.ch.KQueueSelectorImpl.doSelect(KQueueSelectorImpl.java:69) at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:69) - locked <7e380c210> (a sun.nio.ch.Util$2) - locked <7e380c228> (a java.util.Collections$UnmodifiableSet) - locked <7e380ff58> (a sun.nio.ch.KQueueSelectorImpl) at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80) at org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64) at org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:409) at org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:206) at org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:41) at org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108) at org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:680) {noformat}

    DataStax JIRA | 4 years ago | Matthew Conway
    sun.nio.ch.KQueueSelectorImpl

    Root Cause Analysis

    1. sun.nio.ch.KQueueSelectorImpl

      No message provided

      at sun.nio.ch.SelectorImpl.select()
    2. Java RT
      SelectorImpl.select
      1. sun.nio.ch.SelectorImpl.select(SelectorImpl.java:80)
      1 frame
    3. Netty
      DeadLockProofWorker$1.run
      1. org.jboss.netty.channel.socket.nio.SelectorUtil.select(SelectorUtil.java:64)
      2. org.jboss.netty.channel.socket.nio.AbstractNioSelector.select(AbstractNioSelector.java:409)
      3. org.jboss.netty.channel.socket.nio.AbstractNioSelector.run(AbstractNioSelector.java:206)
      4. org.jboss.netty.channel.socket.nio.NioClientBoss.run(NioClientBoss.java:41)
      5. org.jboss.netty.util.ThreadRenamingRunnable.run(ThreadRenamingRunnable.java:108)
      6. org.jboss.netty.util.internal.DeadLockProofWorker$1.run(DeadLockProofWorker.java:42)
      6 frames
    4. Java RT
      Thread.run
      1. java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      2. java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      3. java.lang.Thread.run(Thread.java:680)
      3 frames