Skip to content
Commit 2579ceaf authored by Kohsuke Kawaguchi's avatar Kohsuke Kawaguchi
Browse files

NioChannelHub must be explicitly shut down

... or else it'll keep running. This can be seen as a large number of zombie threads like the following in the unit test:

"NioChannelHub keys=0 gen=0: Computer.threadPoolForRemoting [#250]" daemon prio=10 tid=0x00007f793d841000 nid=0x3cc1 runnable [0x00007f78e2665000]
   java.lang.Thread.State: RUNNABLE
        at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
        at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:228)
        at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:81)
        at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:87)
        - locked <0x00000000c50d46d8> (a sun.nio.ch.Util$2)
        - locked <0x00000000c50d46e8> (a java.util.Collections$UnmodifiableSet)
        - locked <0x00000000c50d4690> (a sun.nio.ch.EPollSelectorImpl)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:98)
        at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:102)
        at org.jenkinsci.remoting.nio.NioChannelHub.run(NioChannelHub.java:542)
        at jenkins.util.ContextResettingExecutorService$1.run(ContextResettingExecutorService.java:28)
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
        at java.lang.Thread.run(Thread.java:722)
parent 0ebf47bd
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment