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

            Bug ID: 58323
           Summary: Client passing away causes Log.ERROR messages
           Product: Tomcat 8
           Version: 8.0.23
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: minor
          Priority: P2
         Component: Catalina
          Assignee: dev@tomcat.apache.org
          Reporter: benjamin.gehrels_exter...@immobilienscout24.de

i think that ERROR logging should be reserved to misbehaviour of the software,
that needs attention by the operator/developer (in contrast to WARN/INFO
logging, that *may* show some misbehaviour). Having a client stumbeling over
his network cable or having a bad connection during a subway ride should be a
pretty normal and non-alarming situation in a distributed system, not a
misbehaviour of the software.

Sadly, when a SocketTimeoutException or an IOException: Connection reset by
peer is thrown in a HttpServlet, it will be propagated through the FilterChain
and cause ugly ERROR Logging:

java.io.IOException: Connection reset by peer
    at sun.nio.ch.FileDispatcherImpl.read0(Native Method) ~[na:1.8.0_51]
    at sun.nio.ch.SocketDispatcher.read(SocketDispatcher.java:39)
~[na:1.8.0_51]
    at sun.nio.ch.IOUtil.readIntoNativeBuffer(IOUtil.java:223) ~[na:1.8.0_51]
    at sun.nio.ch.IOUtil.read(IOUtil.java:197) ~[na:1.8.0_51]
    at sun.nio.ch.SocketChannelImpl.read(SocketChannelImpl.java:380)
~[na:1.8.0_51]
    at org.apache.tomcat.util.net.NioChannel.read(NioChannel.java:140)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.tomcat.util.net.NioBlockingSelector.read(NioBlockingSelector.java:173)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:251)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.tomcat.util.net.NioSelectorPool.read(NioSelectorPool.java:232)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.coyote.http11.InternalNioInputBuffer.fill(InternalNioInputBuffer.java:133)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.coyote.http11.InternalNioInputBuffer$SocketInputBuffer.doRead(InternalNioInputBuffer.java:177)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:110)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.coyote.http11.AbstractInputBuffer.doRead(AbstractInputBuffer.java:416)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at org.apache.coyote.Request.doRead(Request.java:469)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:338)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:363)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at org.apache.catalina.connector.InputBuffer.readByte(InputBuffer.java:352)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:94)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at java.io.FilterInputStream.read(FilterInputStream.java:83) ~[na:1.8.0_51]
    at java.io.PushbackInputStream.read(PushbackInputStream.java:139)
~[na:1.8.0_51]
    at
org.springframework.web.servlet.mvc.method.annotation.RequestResponseBodyMethodProcessor.readWithMessageConverters(RequestResponseBodyMethodProcessor.java:135)
~[spring-webmvc-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
        [...]
    at
org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:869)
~[spring-webmvc-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:843)
~[spring-webmvc-4.1.7.RELEASE.jar!/:4.1.7.RELEASE]
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:291)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
~[tomcat-embed-websocket-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:239)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:219)
~[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at org.apache.catalina.valves.RemoteIpValve.invoke(RemoteIpValve.java:676)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:142)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:518)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1091)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:668)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1521)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1478)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[na:1.8.0_51]
    at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[na:1.8.0_51]
    at
org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
[tomcat-embed-core-8.0.23.jar!/:8.0.23]
    at java.lang.Thread.run(Thread.java:745) [na:1.8.0_51]

I guess this should be an WARN/INFO/DEBUG logging, not an error.

-- 
You are receiving this mail because:
You are the assignee for the bug.

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to