Why JBoss throws ClientAbortException with SocketException Connection reset error

Solution Verified - Updated -

Issue

  • While accessing an application deployed on JBoss following error is encountered in the JBoss server logs:
ERROR aaa.bbb.ccc - [2013-101-01 21:13:19.810]  null
ClientAbortException:  java.net.SocketException: Connection reset
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:352)
    at org.apache.catalina.connector.OutputBuffer.flush(OutputBuffer.java:316)
    at org.apache.catalina.connector.CoyoteOutputStream.flush(CoyoteOutputStream.java:98)
    at sun.nio.cs.StreamEncoder.implFlush(Unknown Source)
    at sun.nio.cs.StreamEncoder.flush(Unknown Source)
    at java.io.OutputStreamWriter.flush(Unknown Source)
    at java.io.BufferedWriter.flush(Unknown Source)
    at servlets.TestServlet.doGet(TestServlet.java:14)
    at servlets.TestServlet.doPost(TestServlet.java:55)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:754)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:847)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:295)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at filter.ResourceRequestFilter.doFilter(ResourceRequestFilter.java:14)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at filter.AuthFilter.doFilter(AuthFilter.java:409)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at filter.PrimaryFilter.doFilter(PrimaryFilter.java:131)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:246)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:214)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:149)
    at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.event(JBossWebContext.java:91)
    at org.jboss.modcluster.container.jbossweb.JBossWebContext$RequestListenerValve.invoke(JBossWebContext.java:72)
    at org.jboss.as.web.security.SecurityContextAssociationValve.invoke(SecurityContextAssociationValve.java:169)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:145)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:97)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:102)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:336)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:856)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:653)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:920)
    at java.lang.Thread.run(Unknown Source)
Caused by: java.net.SocketException: Connection reset
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at org.apache.coyote.http11.InternalOutputBuffer.realWriteBytes(InternalOutputBuffer.java:711)
    at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:450)
    at org.apache.coyote.http11.InternalOutputBuffer.flush(InternalOutputBuffer.java:288)
    at org.apache.coyote.http11.Http11Processor.action(Http11Processor.java:1006)
    at org.apache.coyote.Response.action(Response.java:190)
    at org.apache.catalina.connector.OutputBuffer.doFlush(OutputBuffer.java:347)

  • We are receiving complaints from the users regarding sporadic failures when consuming web service. The problem looks to be related to the send of big requests, which has PDF documents, other SOAP minor requests for the same job, do not show any errors. We identified in the access_log of the jbcs server that the requests that are showing failure are returning the status HTTP 502 to the requester:
"Time Taken: 2 2466000 200.142.2.254 - - [30/May/2019:17:07:13 -0300] "POST /application/wsresource/page HTTP/1.1" 502 7698 "-" "PHP-SOAP/\\BeSimple\\SoapClient" "-" 634380 8029"

So far, after correlating the logs, we noticed that this failure may be associated with a "Connection reset" failure in the log at JBoss:

2019-05-30 17:07:13,785 INFO  [com.example.serviceWSImpl] (http-10.0.0.1:9090-101) PAGE: generating PDF
2019-05-30 17:07:15,908 ERROR [com.example.utils] (http-10.0.0.1:9090-101) There was an error converting Inputstream to Bytes : null: ClientAbortException:  java.net.SocketException: Connection reset
        at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:371) [jbossweb-7.5.23.Final-redhat-1.jar:7.5.23.Final-redhat-1]
(...)
Caused by: java.net.SocketException: Connection reset
        at java.net.SocketInputStream.read(SocketInputStream.java:210) [rt.jar:1.8.0_181]
        at java.net.SocketInputStream.read(SocketInputStream.java:141) [rt.jar:1.8.0_181]"

Environment

  • Red Hat JBoss Enterprise Application Platform (EAP)
    • 6.x
    • 5.x

Subscriber exclusive content

A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content