Мы используем spring-websocket с помощью WebSphere 16.0.0.3 И время от времени мы сталкиваемся с проблемой, когда все клиентские узлыKhannelExecutor застревают.WebSphere spring-websocket clientOutboundChannelExecutor deadlock
3XMTHREADINFO "clientOutboundChannel-1" J9VMThread:0x0000000001834900, j9thread_t:0x00007F2EDEFD1030, java/lang/Thread:0x00000000E2E30A28, state:B, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x44, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0xDF6A, native priority:0x5, native policy:UNKNOWN, vmstate:B, vm thread flags:0x01000201)
3XMTHREADINFO2 (native stack address range from:0x00007F2EDE11A000, to:0x00007F2EDE15B000, size:0x41000)
3XMCPUTIME CPU usage total: 49.720264588 secs, current category="Application"
3XMTHREADBLOCK Blocked on: java/lang/[email protected] Owned by: "clientOutboundChannel-4" (J9VMThread:0x00000000019CEE00, java/lang/Thread:0x00000000E2E30C98)
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.resetRequest(AbstractHttpSockJsSession.java:334(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.disconnect(AbstractHttpSockJsSession.java:330(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.close(AbstractSockJsSession.java:216(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/WebSocketSessionDecorator.close(WebSocketSessionDecorator.java:158(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/ConcurrentWebSocketSessionDecorator.close(ConcurrentWebSocketSessionDecorator.java:192(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.sendToClient(StompSubProtocolHandler.java:457(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.handleMessageToClient(StompSubProtocolHandler.java:427(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:338(Compiled Code))
3XMTHREADINFO "clientOutboundChannel-2" J9VMThread:0x00000000019A5A00, j9thread_t:0x00007F2EDEFD15B0, java/lang/Thread:0x00000000E2E30AF8, state:CW, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x45, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0xDF6B, native priority:0x5, native policy:UNKNOWN, vmstate:CW, vm thread flags:0x01000101)
3XMTHREADINFO2 (native stack address range from:0x00007F2EDDE5F000, to:0x00007F2EDDEA0000, size:0x41000)
3XMCPUTIME CPU usage total: 0.281253777 secs, current category="Application"
3XMTHREADBLOCK Waiting on: com/ibm/ws/tcpchannel/internal/[email protected] Owned by: <unowned>
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at java/lang/Object.wait(Native Method)
4XESTACKTRACE at java/lang/Object.wait(Object.java:172)
4XESTACKTRACE at com/ibm/ws/tcpchannel/internal/SimpleSync.simpleWait(SimpleSync.java:35)
5XESTACKTRACE (entered lock: com/ibm/ws/tcpchannel/internal/[email protected], entry count: 1)
4XESTACKTRACE at com/ibm/ws/tcpchannel/internal/NioTCPWriteRequestContextImpl.processSyncWriteRequest(NioTCPWriteRequestContextImpl.java:77(Compiled Code))
4XESTACKTRACE at com/ibm/ws/tcpchannel/internal/TCPWriteRequestContextImpl.write(TCPWriteRequestContextImpl.java:119(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/HttpServiceContextImpl.synchWrite(HttpServiceContextImpl.java:2438(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/HttpServiceContextImpl.sendOutgoing(HttpServiceContextImpl.java:2174(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/inbound/HttpInboundServiceContextImpl.sendResponseBody(HttpInboundServiceContextImpl.java:753(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/outbound/HttpOutputStreamImpl.flushBuffers(HttpOutputStreamImpl.java:481(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/outbound/HttpOutputStreamImpl.flush(HttpOutputStreamImpl.java:579(Compiled Code))
4XESTACKTRACE at com/ibm/wsspi/http/ee7/HttpOutputStreamEE7.flush(HttpOutputStreamEE7.java:293(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer/osgi/response/WCOutputStream.flush(WCOutputStream.java:234(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer31/osgi/response/WCOutputStream31.flush(WCOutputStream31.java:599(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer/srt/SRTServletResponse.flushBuffer(SRTServletResponse.java:705(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer/srt/SRTServletResponse.flushBuffer(SRTServletResponse.java:670)
4XESTACKTRACE at org/springframework/http/server/ServletServerHttpResponse.flush(ServletServerHttpResponse.java:96(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.writeFrameInternal(AbstractHttpSockJsSession.java:365)
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.writeFrame(AbstractSockJsSession.java:322(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/StreamingSockJsSession.flushCache(StreamingSockJsSession.java:86(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.sendMessageInternal(AbstractHttpSockJsSession.java:302(Compiled Code))
5XESTACKTRACE (entered lock: java/lang/[email protected], entry count: 1)
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.sendMessage(AbstractSockJsSession.java:166(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/ConcurrentWebSocketSessionDecorator.tryFlushMessageBuffer(ConcurrentWebSocketSessionDecorator.java:132(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/ConcurrentWebSocketSessionDecorator.sendMessage(ConcurrentWebSocketSessionDecorator.java:104(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.sendToClient(StompSubProtocolHandler.java:440(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.handleMessageToClient(StompSubProtocolHandler.java:427(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:338(Compiled Code))
3XMTHREADINFO "clientOutboundChannel-3" J9VMThread:0x00000000019C9D00, j9thread_t:0x00007F2EDEFDAE00, java/lang/Thread:0x00000000E2E30BC8, state:B, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x46, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0xDF6C, native priority:0x5, native policy:UNKNOWN, vmstate:B, vm thread flags:0x01000201)
3XMTHREADINFO2 (native stack address range from:0x00007F2EDDE1E000, to:0x00007F2EDDE5F000, size:0x41000)
3XMCPUTIME CPU usage total: 42.712892035 secs, current category="Application"
3XMTHREADBLOCK Blocked on: java/lang/[email protected] Owned by: "clientOutboundChannel-2" (J9VMThread:0x00000000019A5A00, java/lang/Thread:0x00000000E2E30AF8)
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.resetRequest(AbstractHttpSockJsSession.java:334(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.disconnect(AbstractHttpSockJsSession.java:330)
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.close(AbstractSockJsSession.java:216(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/WebSocketSessionDecorator.close(WebSocketSessionDecorator.java:158)
4XESTACKTRACE at org/springframework/web/socket/handler/ConcurrentWebSocketSessionDecorator.close(ConcurrentWebSocketSessionDecorator.java:192)
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.sendToClient(StompSubProtocolHandler.java:457(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.handleMessageToClient(StompSubProtocolHandler.java:427(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:338(Compiled Code))
3XMTHREADINFO "clientOutboundChannel-4" J9VMThread:0x00000000019CEE00, j9thread_t:0x00007F2EDEFDB380, java/lang/Thread:0x00000000E2E30C98, state:CW, prio=5
3XMJAVALTHREAD (java/lang/Thread getId:0x47, isDaemon:false)
3XMTHREADINFO1 (native thread ID:0xDF6D, native priority:0x5, native policy:UNKNOWN, vmstate:CW, vm thread flags:0x01000101)
3XMTHREADINFO2 (native stack address range from:0x00007F2EDDDDD000, to:0x00007F2EDDE1E000, size:0x41000)
3XMCPUTIME CPU usage total: 7.811379586 secs, current category="Application"
3XMTHREADBLOCK Waiting on: com/ibm/ws/tcpchannel/internal/[email protected] Owned by: <unowned>
3XMHEAPALLOC Heap bytes allocated since last GC cycle=0 (0x0)
3XMTHREADINFO3 Java callstack:
4XESTACKTRACE at java/lang/Object.wait(Native Method)
4XESTACKTRACE at java/lang/Object.wait(Object.java:172(Compiled Code))
4XESTACKTRACE at com/ibm/ws/tcpchannel/internal/SimpleSync.simpleWait(SimpleSync.java:35(Compiled Code))
5XESTACKTRACE (entered lock: com/ibm/ws/tcpchannel/internal/[email protected], entry count: 1)
4XESTACKTRACE at com/ibm/ws/tcpchannel/internal/NioTCPWriteRequestContextImpl.processSyncWriteRequest(NioTCPWriteRequestContextImpl.java:77(Compiled Code))
4XESTACKTRACE at com/ibm/ws/tcpchannel/internal/TCPWriteRequestContextImpl.write(TCPWriteRequestContextImpl.java:119(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/HttpServiceContextImpl.synchWrite(HttpServiceContextImpl.java:2438(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/HttpServiceContextImpl.sendOutgoing(HttpServiceContextImpl.java:2174(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/inbound/HttpInboundServiceContextImpl.sendResponseBody(HttpInboundServiceContextImpl.java:753(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/outbound/HttpOutputStreamImpl.flushBuffers(HttpOutputStreamImpl.java:481(Compiled Code))
4XESTACKTRACE at com/ibm/ws/http/channel/internal/outbound/HttpOutputStreamImpl.flush(HttpOutputStreamImpl.java:579(Compiled Code))
4XESTACKTRACE at com/ibm/wsspi/http/ee7/HttpOutputStreamEE7.flush(HttpOutputStreamEE7.java:293(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer/osgi/response/WCOutputStream.flush(WCOutputStream.java:234(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer31/osgi/response/WCOutputStream31.flush(WCOutputStream31.java:599(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer/srt/SRTServletResponse.flushBuffer(SRTServletResponse.java:705(Compiled Code))
4XESTACKTRACE at com/ibm/ws/webcontainer/srt/SRTServletResponse.flushBuffer(SRTServletResponse.java:670(Compiled Code))
4XESTACKTRACE at org/springframework/http/server/ServletServerHttpResponse.flush(ServletServerHttpResponse.java:96(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.writeFrameInternal(AbstractHttpSockJsSession.java:365(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.writeFrame(AbstractSockJsSession.java:322(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/StreamingSockJsSession.flushCache(StreamingSockJsSession.java:86(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractHttpSockJsSession.sendMessageInternal(AbstractHttpSockJsSession.java:302(Compiled Code))
5XESTACKTRACE (entered lock: java/lang/[email protected], entry count: 1)
4XESTACKTRACE at org/springframework/web/socket/sockjs/transport/session/AbstractSockJsSession.sendMessage(AbstractSockJsSession.java:166(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/ConcurrentWebSocketSessionDecorator.tryFlushMessageBuffer(ConcurrentWebSocketSessionDecorator.java:132(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/handler/ConcurrentWebSocketSessionDecorator.sendMessage(ConcurrentWebSocketSessionDecorator.java:104(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.sendToClient(StompSubProtocolHandler.java:440(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/StompSubProtocolHandler.handleMessageToClient(StompSubProtocolHandler.java:427(Compiled Code))
4XESTACKTRACE at org/springframework/web/socket/messaging/SubProtocolWebSocketHandler.handleMessage(SubProtocolWebSocketHandler.java:338(Compiled Code))
WebSphere Application Server 16.0.0.3 (1.0.14.cl160320160831-1555) на IBM J9 VM, версия pxa6480sr3fp11-20160817_02 (SR3 FP11) (en_US) весна-WebSocket 4.3.3.RELEASE
Похоже, реализация SRTServletResponse.flushBuffer может бесконечно блокировать потоки, SimpleSync.simpleWait никогда не переводит поток. Я попытался установить tcpOptions inactivityTimeout, но это не помогло.
Ошибка WebSphere?