Thomas Heigl created WICKET-6767:
------------------------------------

             Summary: Do not log error for broken pipes in websocket connections
                 Key: WICKET-6767
                 URL: https://issues.apache.org/jira/browse/WICKET-6767
             Project: Wicket
          Issue Type: Improvement
          Components: wicket-native-websocket
    Affects Versions: 9.0.0-M4
            Reporter: Thomas Heigl
            Assignee: Martin Tzvetanov Grigorov


We had some "IOException: Broken pipe" errors on production:

{code:java}
 Apr 10 14:34:26  ERR o.a.w.p.w.j.WicketEndpoint An error occurred in web 
socket connection with id : f2d
 Apr 10 14:34:26  #011java.io.IOException java.io.IOException: Broken pipe
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:315)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsRemoteEndpointImplBase.sendMessageBlock(WsRemoteEndpointImplBase.java:258)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsSession.sendCloseMessage(WsSession.java:612)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsSession.onClose(WsSession.java:532)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsFrameBase.processDataControl(WsFrameBase.java:347)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsFrameBase.processData(WsFrameBase.java:289)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.WsFrameBase.processInputBuffer(WsFrameBase.java:133)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.server.WsFrameServer.onDataAvailable(WsFrameServer.java:82)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.server.WsFrameServer.doOnDataAvailable(WsFrameServer.java:171)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.server.WsFrameServer.notifyDataAvailable(WsFrameServer.java:151)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.websocket.server.WsHttpUpgradeHandler.upgradeDispatch(WsHttpUpgradeHandler.java:148)
 Apr 10 14:34:26  #011at 
org.apache.coyote.http11.upgrade.UpgradeProcessorInternal.dispatch(UpgradeProcessorInternal.java:54)
 Apr 10 14:34:26  #011at 
org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:59)
 Apr 10 14:34:26  #011at 
org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1594)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
 Apr 10 14:34:26  #011at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
 Apr 10 14:34:26  #011at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
 Apr 10 14:34:26  #011at 
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
 Apr 10 14:34:26  #011at java.base/java.lang.Thread.run(Thread.java:834)
 Apr 10 14:34:26  #011Caused by: java.io.IOException: Broken pipe 
{code}

There already is condition that checks for EOFException in WicketEndpoint. 
Maybe it could be extended to broken pipes?

{code}
        @Override
        public void onError(Session session, Throwable t)
        {
                if (t instanceof EOFException)
                {
                        LOG.debug("An error occurred in web socket connection 
with id : {}", session.getId(), t);
                }
                else
                {
                        LOG.error("An error occurred in web socket connection 
with id : {}", session.getId(), t);
                }
        }
{code}

My only option at the moment is to completely turn off logging for 
WicketEndpoint.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to