You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by bu...@apache.org on 2018/07/05 10:44:50 UTC

[Bug 62523] New: Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

            Bug ID: 62523
           Summary: Concurrent stress test websocket server by jmeter,
                    occur:java.io.IOException: java.io.IOException: Broken
                    pipe
           Product: Tomcat 9
           Version: 9.0.10
          Hardware: PC
            Status: NEW
          Severity: normal
          Priority: P2
         Component: WebSocket
          Assignee: dev@tomcat.apache.org
          Reporter: daipeng.456@163.com
  Target Milestone: -----

Created attachment 36008
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36008&action=edit
websocket handler process

environment:
1:tomcat version:9.0.10
2:spring-websocket:4.0.0-releases
3:jmeter:4.0.0

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 OS|                            |All

--- Comment #4 from Mark Thomas <ma...@apache.org> ---
No stack trace from the error, no JMeter config and a test case that has a
whole bunch of dependencies that have not been provided. This is heading
towards being closed as INVALID.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

sosojustdo <da...@163.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |REMIND

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

--- Comment #6 from sosojustdo <da...@163.com> ---
(In reply to Mark Thomas from comment #4)
> No stack trace from the error, no JMeter config and a test case that has a
> whole bunch of dependencies that have not been provided. This is heading
> towards being closed as INVALID.


Thanks you Mark Thomas reply!
一:Jmeter Thread Group config info:
1:thread num: 50
2:Ramp-Up Period(in seconds):1
3:loop num:forever
4:Jmeter connection timeout 5000 seconds; response timeout:20000 seconds

二:stack trace info:
20:24:06 [Thread-336] DEBUG
org.springframework.web.socket.server.support.DefaultHandshakeHandler -
Requested sub-protocol(s): [], WebSocketHandler supported sub-protocol(s): [],
configured sub-protocol(s): []
20:24:06 [Thread-304] DEBUG
org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator -
Transport error for WebSocket session id=d6c4: java.io.IOException:
java.io.IOException: Broken pipe
20:24:06 [Thread-336] DEBUG
org.springframework.web.socket.server.support.DefaultHandshakeHandler -
Selected sub-protocol: 'null'
20:24:06 [Thread-336] DEBUG
org.springframework.web.socket.server.support.DefaultHandshakeHandler -
Requested extension(s): [], supported extension(s): []
20:24:06 [Thread-304] INFO 
com.cloudyoung.wx.comet.server.SystemWebSocketHandler -
{"createTime":"2018-07-05 20:24:06","inputParam":"appId:wxdc55ca89d7d4d1b8,
module:WX_WEBSOCKET_DIALOGUE_MODULE","level":"Info","message":"handleTransportError_invoke_method","methodName":"handleTransportError()->123:
","platform":"WX","serviceName":"com.cloudyoung.wx.comet.server.SystemWebSocketHandler"}
20:24:06 [Thread-336] DEBUG
org.springframework.web.socket.server.support.DefaultHandshakeHandler -
Upgrading request, sub-protocol=null, extensions=[]
20:24:06 [Thread-304] DEBUG
org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator -
Connection closed for WebSocket session id=d6c4, CloseStatus [code=1006,
reason=Broken pipe]
java.io.IOException: java.io.IOException: Broken pipe
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:315)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:250)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:223)
        at
org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:137)
        at
org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:100)
        at
com.cloudyoung.wx.comet.server.SystemWebSocketHandler.sendMessageToUser(SystemWebSocketHandler.java:233)
        at
com.cloudyoung.wx.comet.service.impl.WxWebsocketMessageServiceImpl.sendDialogueMessage(WxWebsocketMessageServiceImpl.java:45)
        at
com.cloudyoung.wx.comet.server.SystemWebSocketHandler.handleMessage(SystemWebSocketHandler.java:95)
        at
org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:59)
        at
org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:55)
        at
org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.handleMessage(ExceptionWebSocketHandlerDecorator.java:69)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:112)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:42)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:82)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:79)
        at
org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:395)
        at
org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
        at
org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:495)
        at
org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:294)
        at
org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
        at
org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
        at
org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
        at
org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
        at
org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
        at
org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
        at
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:53)
        at
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:764)
        at
org.apache.tomcat.util.net.Nio2Endpoint$SocketProcessor.doRun(Nio2Endpoint.java:1676)
        at
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
        at
org.apache.tomcat.util.net.AbstractEndpoint.processSocket(AbstractEndpoint.java:1007)
        at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:540)
        at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper$4.completed(Nio2Endpoint.java:518)
        at sun.nio.ch.Invoker.invokeUnchecked(Invoker.java:126)
        at sun.nio.ch.Invoker$2.run(Invoker.java:218)
        at
sun.nio.ch.AsynchronousChannelGroupImpl$1.run(AsynchronousChannelGroupImpl.java:112)
        at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
Caused by: java.io.IOException: Broken pipe
        at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
        at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
        at sun.nio.ch.IOUtil.write(IOUtil.java:148)
        at sun.nio.ch.IOUtil.write(IOUtil.java:103)
        at
sun.nio.ch.UnixAsynchronousSocketChannelImpl.implWrite(UnixAsynchronousSocketChannelImpl.java:689)
        at
sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:382)
        at
sun.nio.ch.AsynchronousSocketChannelImpl.write(AsynchronousSocketChannelImpl.java:416)
        at org.apache.tomcat.util.net.Nio2Channel.write(Nio2Channel.java:183)
        at
org.apache.tomcat.util.net.Nio2Endpoint$Nio2SocketWrapper.write(Nio2Endpoint.java:1004)
        at
org.apache.tomcat.util.net.SocketWrapperBase.write(SocketWrapperBase.java:1041)
        at
org.apache.tomcat.websocket.server.WsRemoteEndpointImplServer.doWrite(WsRemoteEndpointImplServer.java:91)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.writeMessagePart(WsRemoteEndpointImplBase.java:494)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:309)
        ... 38 more

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

--- Comment #8 from sosojustdo <da...@163.com> ---
(In reply to Mark Thomas from comment #7)
> The exception is tellign you that the client dropped the connection. You
> need to investigate the JMeter end of this test.


I optimized jmeter configure, but problem reproduce; try tomcat7.x tomcat8.x,
the same problem; do you have suggestion

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

--- Comment #1 from sosojustdo <da...@163.com> ---
Created attachment 36009
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36009&action=edit
websocket init process

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

sosojustdo <da...@163.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|REMIND                      |---
             Status|RESOLVED                    |REOPENED

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

--- Comment #3 from sosojustdo <da...@163.com> ---
Created attachment 36011
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36011&action=edit
websocket handler interceptor

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|REOPENED                    |RESOLVED

--- Comment #9 from Mark Thomas <ma...@apache.org> ---
Comment #7 still stands. The issue is at the client / JMeter end.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

--- Comment #2 from sosojustdo <da...@163.com> ---
Created attachment 36010
  --> https://bz.apache.org/bugzilla/attachment.cgi?id=36010&action=edit
websocket config

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

Mark Thomas <ma...@apache.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|---                         |INVALID
             Status|NEW                         |RESOLVED

--- Comment #7 from Mark Thomas <ma...@apache.org> ---
The exception is tellign you that the client dropped the connection. You need
to investigate the JMeter end of this test.

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org


[Bug 62523] Concurrent stress test websocket server by jmeter, occur:java.io.IOException: java.io.IOException: Broken pipe

Posted by bu...@apache.org.
https://bz.apache.org/bugzilla/show_bug.cgi?id=62523

--- Comment #5 from sosojustdo <da...@163.com> ---
java.io.IOException: java.io.IOException: Broken pipe
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:315)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:250)
        at
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendPartialString(WsRemoteEndpointImplBase.java:223)
        at
org.apache.tomcat.websocket.WsRemoteEndpointBasic.sendText(WsRemoteEndpointBasic.java:49)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketSession.sendTextMessage(StandardWebSocketSession.java:137)
        at
org.springframework.web.socket.adapter.AbstractWebSocketSession.sendMessage(AbstractWebSocketSession.java:100)
        at
com.cloudyoung.wx.comet.server.SystemWebSocketHandler.sendMessageToUser(SystemWebSocketHandler.java:233)
        at
com.cloudyoung.wx.comet.service.impl.WxWebsocketMessageServiceImpl.sendDialogueMessage(WxWebsocketMessageServiceImpl.java:45)
        at
com.cloudyoung.wx.comet.server.SystemWebSocketHandler.handleMessage(SystemWebSocketHandler.java:95)
        at
org.springframework.web.socket.handler.WebSocketHandlerDecorator.handleMessage(WebSocketHandlerDecorator.java:59)
        at
org.springframework.web.socket.handler.LoggingWebSocketHandlerDecorator.handleMessage(LoggingWebSocketHandlerDecorator.java:55)
        at
org.springframework.web.socket.handler.ExceptionWebSocketHandlerDecorator.handleMessage(ExceptionWebSocketHandlerDecorator.java:69)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.handleTextMessage(StandardWebSocketHandlerAdapter.java:112)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter.access$000(StandardWebSocketHandlerAdapter.java:42)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:82)
        at
org.springframework.web.socket.adapter.standard.StandardWebSocketHandlerAdapter$3.onMessage(StandardWebSocketHandlerAdapter.java:79)
        at
org.apache.tomcat.websocket.WsFrameBase.sendMessageText(WsFrameBase.java:395)
        at
org.apache.tomcat.websocket.server.WsFrameServer.sendMessageText(WsFrameServer.java:119)
        at
org.apache.tomcat.websocket.WsFrameBase.processDataText(WsFrameBase.java:495)
        at
org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:294)
        at
org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
        at
org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
        at
org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
        at
org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
        at
org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
        at
org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)

-- 
You are receiving this mail because:
You are the assignee for the bug.
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org