java - Tomcat Deadlock in Thread -
i using tomcat 7.0.42 application uses websockets. if application under heavy load deadlock in of threads use websockets.
is there workaround problem, since not find fix?
i use atmpshere 2.0rc3 runtime-native.
here relevant part of thread dump. used samurai detected deadlocked threads.
"atmosphere-shared-asyncop-267" daemon prio=10 tid=0x00007efed8118000 nid=0x2eb5 waiting monitor entry [0x00007efe798ca000] java.lang.thread.state: blocked (on object monitor) @ org.apache.catalina.websocket.wsoutbound.writetextmessage(wsoutbound.java:165) - waiting lock <0x00000005ef4c6988> (a org.apache.catalina.websocket.wsoutbound) @ org.atmosphere.container.version.tomcatwebsocket.write(tomcatwebsocket.java:49) @ org.atmosphere.websocket.websocket.write(websocket.java:199) @ org.atmosphere.websocket.websocket.write(websocket.java:168) @ org.atmosphere.websocket.websocket.write(websocket.java:40) @ org.atmosphere.cpr.atmosphereresponse$2.write(atmosphereresponse.java:574) @ org.atmosphere.handler.abstractreflectoratmospherehandler.onstatechange(abstractreflectoratmospherehandler.java:169) @ org.atmosphere.cpr.defaultbroadcaster.invokeonstatechange(defaultbroadcaster.java:1027) @ org.atmosphere.cpr.defaultbroadcaster.prepareinvokeonstatechange(defaultbroadcaster.java:1047) @ org.atmosphere.cpr.defaultbroadcaster.executeasyncwrite(defaultbroadcaster.java:921) @ org.atmosphere.cpr.defaultbroadcaster$3.run(defaultbroadcaster.java:580) - locked < 0x00000005ef4b77f8> (a org.atmosphere.cpr.atmosphereresourceimpl) @ java.util.concurrent.executors$runnableadapter.call(executors.java:471) @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334) @ java.util.concurrent.futuretask.run(futuretask.java:166) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:724) "atmosphere-scheduler-2" daemon prio=10 tid=0x00007efee9c77800 nid=0x257d waiting monitor entry [0x00007efe831ef000] java.lang.thread.state: blocked (on object monitor) @ org.atmosphere.cpr.asynchronousprocessor.completelifecycle(asynchronousprocessor.java:476) - waiting lock <0x00000005ef4b77f8> (a org.atmosphere.cpr.atmosphereresourceimpl) @ org.atmosphere.cpr.asynchronousprocessor.timedout(asynchronousprocessor.java:437) @ org.atmosphere.cpr.asynchronousprocessor$asynchronousprocessorhook.timedout(asynchronousprocessor.java:633) @ org.atmosphere.websocket.defaultwebsocketprocessor.close(defaultwebsocketprocessor.java:483) @ org.atmosphere.container.tomcatwebsockethandler.onclose(tomcatwebsockethandler.java:80) @ org.apache.catalina.websocket.streaminbound.doonclose(streaminbound.java:222) @ org.apache.catalina.websocket.wsoutbound.dowritebytes(wsoutbound.java:423) @ org.apache.catalina.websocket.wsoutbound.dowritetext(wsoutbound.java:442) @ org.apache.catalina.websocket.wsoutbound.writetextmessage(wsoutbound.java:174) - locked < 0x00000005ef4c6988> (a org.apache.catalina.websocket.wsoutbound) @ org.atmosphere.container.version.tomcatwebsocket.write(tomcatwebsocket.java:49) @ org.atmosphere.websocket.websocket.write(websocket.java:199) @ org.atmosphere.websocket.websocket.write(websocket.java:168) @ org.atmosphere.websocket.websocket.write(websocket.java:40) @ org.atmosphere.cpr.atmosphereresponse$2.write(atmosphereresponse.java:574) @ org.atmosphere.cpr.atmosphereresponse.write(atmosphereresponse.java:992) @ org.atmosphere.interceptor.heartbeatinterceptor$1$1.call(heartbeatinterceptor.java:104) @ java.util.concurrent.futuretask$sync.innerrun(futuretask.java:334) @ java.util.concurrent.futuretask.run(futuretask.java:166) @ java.util.concurrent.scheduledthreadpoolexecutor$scheduledfuturetask.access$201(scheduledthreadpoolexecutor.java:178) @ java.util.concurrent.scheduledthreadpoolexecutor$scheduledfuturetask.run(scheduledthreadpoolexecutor.java:292) @ java.util.concurrent.threadpoolexecutor.runworker(threadpoolexecutor.java:1145) @ java.util.concurrent.threadpoolexecutor$worker.run(threadpoolexecutor.java:615) @ java.lang.thread.run(thread.java:724)
Comments
Post a Comment