Bug 63662 - Tomcat tries to process ClientAbortExceptions
Summary: Tomcat tries to process ClientAbortExceptions
Status: RESOLVED DUPLICATE of bug 62258
Alias: None
Product: Tomcat 8
Classification: Unclassified
Component: Connectors (show other bugs)
Version: 8.5.43
Hardware: PC All
: P2 normal (vote)
Target Milestone: ----
Assignee: Tomcat Developers Mailing List
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2019-08-13 12:57 UTC by Piotr Gliźniewicz
Modified: 2019-08-13 15:48 UTC (History)
0 users



Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Piotr Gliźniewicz 2019-08-13 12:57:37 UTC
We have recently upgraded Tomcat from 8.5.32 to 8.5.43, and we started receiving ClientAbortExceptions, even though we are explicitly catching them. On 8.5.43, if there is an ClientAbortException, Tomcat tries to service it like a regular server exception: it tries to generate the error 500 page.

I've debugged this and Tomcat 8.5.43 chooses a different path in org.apache.catalina.core.StandardHostValve#invoke(Request, Response) than 8.5.32. This:

// Look for (and render if found) an application level error page
if (response.isErrorReportRequired()) {

returns true on 8.5.43, but false on 8.5.32.

I suspect, this has changed after "response.setError();" was added to org.apache.coyote.AbstractProcessor#setErrorState(ErrorState, Throwable).

Expected behavior: Tomcat ignores ClientAbortExceptions. It doesn't make sense to anything else with the response, after we already have lost the client.
Comment 1 Mark Thomas 2019-08-13 15:48:40 UTC
Different description but same root cause.

*** This bug has been marked as a duplicate of bug 62258 ***