Yes. Also, I want to mention that if I start my broken node and it joins the cluster again then my program starts work again. After failed node is running again I get an exception and recover my channel. But if node dies forever then application gets stuck forever too..
2016-10-10 18:51:12
Full thread dump Java HotSpot(TM) 64-Bit Server VM (25.60-b23 mixed mode):
"Attach Listener" #46 daemon prio=9 os_prio=0 tid=0x00007f1790001000 nid=0x2515 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"DestroyJavaVM" #45 prio=5 os_prio=0 tid=0x00007f17dc009800 nid=0x2282 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"http-nio-8080-AsyncTimeout" #43 daemon prio=5 os_prio=0 tid=0x00007f17ddeb8000 nid=0x22ae waiting on condition [0x00007f1742840000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.coyote.AbstractProtocol$AsyncTimeout.run(AbstractProtocol.java:1120)
at java.lang.Thread.run(Thread.java:745)
"http-nio-8080-Acceptor-0" #42 daemon prio=5 os_prio=0 tid=0x00007f17ddeb6800 nid=0x22ad runnable [0x00007f1742941000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.ServerSocketChannelImpl.accept0(Native Method)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:422)
at sun.nio.ch.ServerSocketChannelImpl.accept(ServerSocketChannelImpl.java:250)
- locked <0x00000000f593e3e0> (a java.lang.Object)
at org.apache.tomcat.util.net.NioEndpoint$Acceptor.run(NioEndpoint.java:457)
at java.lang.Thread.run(Thread.java:745)
"http-nio-8080-ClientPoller-1" #41 daemon prio=5 os_prio=0 tid=0x00007f17ddb84800 nid=0x22ac runnable [0x00007f1742a42000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000f593eb88> (a sun.nio.ch.Util$2)
- locked <0x00000000f593eb78> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000f593ea40> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:791)
at java.lang.Thread.run(Thread.java:745)
"http-nio-8080-ClientPoller-0" #40 daemon prio=5 os_prio=0 tid=0x00007f17dfde7000 nid=0x22ab runnable [0x00007f1742b43000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000f593f150> (a sun.nio.ch.Util$2)
- locked <0x00000000f593f140> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000f593f008> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioEndpoint$Poller.run(NioEndpoint.java:791)
at java.lang.Thread.run(Thread.java:745)
"NioBlockingSelector.BlockPoller-1" #39 daemon prio=5 os_prio=0 tid=0x00007f17dcf7b800 nid=0x22aa runnable [0x00007f176c14a000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x00000000f593fa68> (a sun.nio.ch.Util$2)
- locked <0x00000000f593fa58> (a java.util.Collections$UnmodifiableSet)
- locked <0x00000000f593f930> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at org.apache.tomcat.util.net.NioBlockingSelector$BlockPoller.run(NioBlockingSelector.java:339)
"cluster1-nio-worker-2" #22 prio=5 os_prio=0 tid=0x00007f17de913800 nid=0x22a9 runnable [0x00007f176c44b000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x0000000085f646d8> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x0000000085f66758> (a java.util.Collections$UnmodifiableSet)
- locked <0x0000000085f64640> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:685)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:345)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at java.lang.Thread.run(Thread.java:745)
"cluster1-nio-worker-1" #21 prio=5 os_prio=0 tid=0x00007f17dc557000 nid=0x22a8 runnable [0x00007f176d74d000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x0000000085f66f40> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x0000000085fa0fe0> (a java.util.Collections$UnmodifiableSet)
- locked <0x0000000085f66ea8> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:685)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:345)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at java.lang.Thread.run(Thread.java:745)
"threadDeathWatcher-2-1" #38 daemon prio=1 os_prio=0 tid=0x00007f174c573000 nid=0x22a7 waiting on condition [0x00007f176e84f000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at io.netty.util.ThreadDeathWatcher$Watcher.run(ThreadDeathWatcher.java:147)
at io.netty.util.concurrent.DefaultThreadFactory$DefaultRunnableDecorator.run(DefaultThreadFactory.java:145)
at java.lang.Thread.run(Thread.java:745)
"cluster1-timeouter-0" #36 prio=5 os_prio=0 tid=0x00007f174c417000 nid=0x22a6 waiting on condition [0x00007f176e950000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at io.netty.util.HashedWheelTimer$Worker.waitForNextTick(HashedWheelTimer.java:461)
at io.netty.util.HashedWheelTimer$Worker.run(HashedWheelTimer.java:360)
at java.lang.Thread.run(Thread.java:745)
"cluster1-nio-worker-0" #20 prio=5 os_prio=0 tid=0x00007f17dc936800 nid=0x22a5 runnable [0x00007f176ea51000]
java.lang.Thread.State: RUNNABLE
at sun.nio.ch.EPollArrayWrapper.epollWait(Native Method)
at sun.nio.ch.EPollArrayWrapper.poll(EPollArrayWrapper.java:269)
at sun.nio.ch.EPollSelectorImpl.doSelect(EPollSelectorImpl.java:79)
at sun.nio.ch.SelectorImpl.lockAndDoSelect(SelectorImpl.java:86)
- locked <0x0000000085fa17c8> (a io.netty.channel.nio.SelectedSelectionKeySet)
- locked <0x0000000085fa3848> (a java.util.Collections$UnmodifiableSet)
- locked <0x0000000085fa1730> (a sun.nio.ch.EPollSelectorImpl)
at sun.nio.ch.SelectorImpl.select(SelectorImpl.java:97)
at io.netty.channel.nio.NioEventLoop.select(NioEventLoop.java:685)
at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:345)
at io.netty.util.concurrent.SingleThreadEventExecutor$2.run(SingleThreadEventExecutor.java:112)
at java.lang.Thread.run(Thread.java:745)
"cluster1-scheduled-task-worker-0" #37 prio=5 os_prio=0 tid=0x00007f17dfbaa800 nid=0x22a4 waiting on condition [0x00007f176ed52000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000085e4d600> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"cluster1-connection-reaper-0" #19 prio=5 os_prio=0 tid=0x00007f17ddf88800 nid=0x22a3 waiting on condition [0x00007f176f053000]
java.lang.Thread.State: TIMED_WAITING (parking)
at sun.misc.Unsafe.park(Native Method)
- parking to wait for <0x0000000085e4dc78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject)
at java.util.concurrent.locks.LockSupport.parkNanos(LockSupport.java:215)
at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.awaitNanos(AbstractQueuedSynchronizer.java:2078)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:1093)
at java.util.concurrent.ScheduledThreadPoolExecutor$DelayedWorkQueue.take(ScheduledThreadPoolExecutor.java:809)
at java.util.concurrent.ThreadPoolExecutor.getTask(ThreadPoolExecutor.java:1067)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1127)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"container-0" #18 prio=5 os_prio=0 tid=0x00007f17dc5aa000 nid=0x22a2 waiting on condition [0x00007f176f566000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.catalina.core.StandardServer.await(StandardServer.java:427)
at org.springframework.boot.context.embedded.tomcat.TomcatEmbeddedServletContainer$1.run(TomcatEmbeddedServletContainer.java:167)
"ContainerBackgroundProcessor[StandardEngine[Tomcat].StandardHost[localhost].StandardContext[]]" #17 daemon prio=5 os_prio=0 tid=0x00007f17644ad800 nid=0x22a1 waiting on condition [0x00007f176f667000]
java.lang.Thread.State: TIMED_WAITING (sleeping)
at java.lang.Thread.sleep(Native Method)
at org.apache.catalina.core.ContainerBase$ContainerBackgroundProcessor.run(ContainerBase.java:1339)
at java.lang.Thread.run(Thread.java:745)
"Thread-1" #13 prio=5 os_prio=0 tid=0x00007f17dc7ec800 nid=0x2297 runnable [0x00007f17a503c000]
java.lang.Thread.State: RUNNABLE
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
- locked <0x0000000084b8f648> (a java.io.BufferedOutputStream)
at java.io.DataOutputStream.flush(DataOutputStream.java:123)
at com.rabbitmq.client.impl.SocketFrameHandler.flush(SocketFrameHandler.java:149)
at com.rabbitmq.client.impl.AMQConnection.flush(AMQConnection.java:521)
at com.rabbitmq.client.impl.AMQCommand.transmit(AMQCommand.java:124)
at com.rabbitmq.client.impl.AMQChannel.quiescingTransmit(AMQChannel.java:333)
- locked <0x0000000084ba30d0> (a java.lang.Object)
at com.rabbitmq.client.impl.AMQChannel.transmit(AMQChannel.java:309)
- locked <0x0000000084ba30d0> (a java.lang.Object)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:656)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:639)
at com.rabbitmq.client.impl.ChannelN.basicPublish(ChannelN.java:630)
at com.rabbitmq.client.impl.recovery.AutorecoveringChannel.basicPublish(AutorecoveringChannel.java:183)
at com.fyfine.loader.Application$Publisher.run(Application.java:112)
at java.lang.Thread.run(Thread.java:745)
"pool-1-thread-2" #12 prio=5 os_prio=0 tid=0x00007f17dc661800 nid=0x2296 waiting for monitor entry [0x00007f17a513d000]
java.lang.Thread.State: BLOCKED (on object monitor)
at java.io.BufferedOutputStream.write(BufferedOutputStream.java:94)
- waiting to lock <0x0000000084b8f648> (a java.io.BufferedOutputStream)
at java.io.DataOutputStream.writeByte(DataOutputStream.java:153)
at com.rabbitmq.client.impl.Frame.writeTo(Frame.java:188)
at com.rabbitmq.client.impl.SocketFrameHandler.writeFrame(SocketFrameHandler.java:144)
- locked <0x0000000084b8f628> (a java.io.DataOutputStream)
at com.rabbitmq.client.impl.HeartbeatSender$HeartbeatRunnable.run(HeartbeatSender.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
"AMQP Connection 192.168.0.79:5672" #11 prio=5 os_prio=0 tid=0x00007f17dc2ff000 nid=0x2295 waiting for monitor entry [0x00007f17a523e000] java.lang.Thread.State: BLOCKED (on object monitor)
at com.rabbitmq.client.impl.AMQChannel.processShutdownSignal(AMQChannel.java:280)
- waiting to lock <0x0000000084ba30d0> (a java.lang.Object)
at com.rabbitmq.client.impl.ChannelN.startProcessShutdownSignal(ChannelN.java:266)
at com.rabbitmq.client.impl.ChannelN.processShutdownSignal(ChannelN.java:290)
at com.rabbitmq.client.impl.ChannelManager.handleSignal(ChannelManager.java:97)
at com.rabbitmq.client.impl.AMQConnection.finishShutdown(AMQConnection.java:760)
at com.rabbitmq.client.impl.AMQConnection.shutdown(AMQConnection.java:733)
at com.rabbitmq.client.impl.AMQConnection$MainLoop.run(AMQConnection.java:576)
at java.lang.Thread.run(Thread.java:745)
"Service Thread" #9 daemon prio=9 os_prio=0 tid=0x00007f17dc22b800 nid=0x2293 runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C1 CompilerThread3" #8 daemon prio=9 os_prio=0 tid=0x00007f17dc20e800 nid=0x2292 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread2" #7 daemon prio=9 os_prio=0 tid=0x00007f17dc20c000 nid=0x2291 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread1" #6 daemon prio=9 os_prio=0 tid=0x00007f17dc20a800 nid=0x2290 waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"C2 CompilerThread0" #5 daemon prio=9 os_prio=0 tid=0x00007f17dc207800 nid=0x228f waiting on condition [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Signal Dispatcher" #4 daemon prio=9 os_prio=0 tid=0x00007f17dc206000 nid=0x228e runnable [0x0000000000000000]
java.lang.Thread.State: RUNNABLE
"Finalizer" #3 daemon prio=8 os_prio=0 tid=0x00007f17dc1ce000 nid=0x228d in Object.wait() [0x00007f17a60e7000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000084afc0e8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:143)
- locked <0x0000000084afc0e8> (a java.lang.ref.ReferenceQueue$Lock)
at java.lang.ref.ReferenceQueue.remove(ReferenceQueue.java:164)
at java.lang.ref.Finalizer$FinalizerThread.run(Finalizer.java:209)
"Reference Handler" #2 daemon prio=10 os_prio=0 tid=0x00007f17dc1cc000 nid=0x228c in Object.wait() [0x00007f17a61e8000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait(Native Method)
- waiting on <0x0000000084af0f60> (a java.lang.ref.Reference$Lock)
at java.lang.Object.wait(Object.java:502)
at java.lang.ref.Reference$ReferenceHandler.run(Reference.java:157)
- locked <0x0000000084af0f60> (a java.lang.ref.Reference$Lock)
"VM Thread" os_prio=0 tid=0x00007f17dc1c6800 nid=0x228b runnable
"GC task thread#0 (ParallelGC)" os_prio=0 tid=0x00007f17dc01f000 nid=0x2283 runnable
"GC task thread#1 (ParallelGC)" os_prio=0 tid=0x00007f17dc020800 nid=0x2284 runnable
"GC task thread#2 (ParallelGC)" os_prio=0 tid=0x00007f17dc022800 nid=0x2285 runnable
"GC task thread#3 (ParallelGC)" os_prio=0 tid=0x00007f17dc024000 nid=0x2286 runnable
"GC task thread#4 (ParallelGC)" os_prio=0 tid=0x00007f17dc026000 nid=0x2287 runnable
"GC task thread#5 (ParallelGC)" os_prio=0 tid=0x00007f17dc027800 nid=0x2288 runnable
"GC task thread#6 (ParallelGC)" os_prio=0 tid=0x00007f17dc029800 nid=0x2289 runnable
"GC task thread#7 (ParallelGC)" os_prio=0 tid=0x00007f17dc02b000 nid=0x228a runnable
"VM Periodic Task Thread" os_prio=0 tid=0x00007f17dc236800 nid=0x2294 waiting on condition
JNI global references: 269