Bug 56201

Summary: Comet connector
Product: Tomcat 7 Reporter: Bennett Schneider <bennett.schneider>
Component: ConnectorsAssignee: Tomcat Developers Mailing List <dev>
Status: RESOLVED DUPLICATE    
Severity: normal    
Priority: P2    
Version: 7.0.23   
Target Milestone: ---   
Hardware: Sun   
OS: Solaris   
Attachments: Patch to set comet to false in recycleInternal

Description Bennett Schneider 2014-02-28 20:41:59 UTC
Created attachment 31357 [details]
Patch to set comet to false in recycleInternal

org.apache.coyote.http11.Http11AprProcessor objects are not being properly recycled prior to insertion into the ConnectionHandler's reycledProcessors.
Specifically, Http11AprProcessor.comet is not set to false. When an Http11AprProcessor is returned from the recycledProcessors with this flag set to true, the connection is immediately aborted by tomcat.

We have both comet and traditional http connections occurring to the same tomcat and when in this state the manifestation is that periodically the client connection is aborted. Resetting the above mentioned flag in recycleInternal seems to address the issue, although we haven't tracked down the exact cause of the missing COMET_END that would have avoided this. See attached diff for the change.
Comment 1 Konstantin Kolinko 2014-02-28 21:09:48 UTC
> Version: 7.0.23

The current version of Tomcat 7 is 7.0.52.

As of now, you patch is wrong.  The "comet" flag does not belong to Http11AprProcessor. It belongs to its parent class, AbstractHttp11Processor, and is properly reset in AbstractHttp11Processor.recycle(..)

That specific line originates from r1373667 that was a fix for bug 53697 (18 months ago).

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