tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Remy Maucherat <r...@apache.org>
Subject Re: CoyoteWriter in error, never cleaned up
Date Thu, 19 Dec 2002 07:25:10 GMT
Mark Plotnick wrote:
> I'm using a rather complicated web page with two frames and
> a jsp in both frames.
> 
> The upper frame has an applet, and the applet loads a
> document by calling a servlet (in the same session as the page).
> 
> Clicking within the applet will cause new pages to load in the
> lower page.
> 
> 
> As a result of all this activity I seem to get the "Socket Error"
> bug described in thread "Problem with Socket closing" and
> bug#12810.
> 
> 
> Things would still not be too bad if the "CoyoteWriter" objects
> were recycled. When the socket error occurs, the relevant 
> "CoyoteWriter" objects get marked as being in error.
> 
> The problem is Tomcat (4.1.17 & 16) is still trying to reuse
> these "CoyoteWriter" objects with the result of tomcat
> returning blank pages to the browser.
> 
> 
> CoyoteWriter does have a "isError()" method. A grep through
> the source reveals nothing is ever calling this method.
> 
> It seems reasonable that after a socket write error, these
> objects should get cleaned up and the application would
> have a reasonable chance to recover.

Yes, this is correct (and a major bug, expect a new release soon).
There is no problem with recycling after an error. OTOH, the writer must 
not be set to a non error state right away once an IOException occurred.

> I appreciate any insight and feedback on where these
> "CoyoteWriter" objects should be managed.

Here's a patch:

Index: CoyoteResponse.java
===================================================================
RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteResponse.java,v
retrieving revision 1.30
diff -r1.30 CoyoteResponse.java
322a323,324
 >         writer.recycle();
 >
Index: CoyoteWriter.java
===================================================================
RCS file: 
/home/cvs/jakarta-tomcat-connectors/coyote/src/java/org/apache/coyote/tomcat4/CoyoteWriter.java,v
retrieving revision 1.2
diff -r1.2 CoyoteWriter.java
98a99,109
 >     // -------------------------------------------------------- 
Package Methods
 >
 >
 >     /**
 >      * Recycle.
 >      */
 >     void recycle() {
 >         error = false;
 >     }
 >
 >

Remy


--
To unsubscribe, e-mail:   <mailto:tomcat-dev-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-dev-help@jakarta.apache.org>


Mime
View raw message