On 17/03/2014 09:06, Martin Grigorov wrote:
> Hi,
> 
> A user of Apache Wicket has reported a problem where Tomcat hangs when
> writing the response to the browser -
> https://issues.apache.org/jira/browse/WICKET-5530
> 
> The application tries to upload a file (with Ajax) with bigger size than
> the allowed one. Then in the Ajax response it tries to write 16K+ bytes and
> Tomcat hangs with tracktrace like:
> 
> Thread [qtp263823398-19] (Suspended)  
>       owns: ByteArrayOutputStream2  (id=69)   
>       owns: AbstractHttpConnection$OutputWriter  (id=70)      
>       SocketOutputStream.socketWrite0(FileDescriptor, byte[], int, int)
> line: not available [native method]
>       SocketOutputStream.socketWrite(byte[], int, int) line: 113      
>       SocketOutputStream.write(byte[], int, int) line: 159    
>       ByteArrayBuffer.writeTo(OutputStream) line: 375 
>       SocketConnector$ConnectorEndPoint(StreamEndPoint).flush(Buffer) line: 
> 164       
>       HttpGenerator.flushBuffer() line: 850   
>       HttpGenerator(AbstractGenerator).blockForOutput(long) line: 507 
>       AbstractHttpConnection$Output(HttpOutput).write(Buffer) line: 170       
>       AbstractHttpConnection$Output(HttpOutput).write(byte[], int, int) line: 
> 107     
>       ByteArrayOutputStream2(ByteArrayOutputStream).writeTo(OutputStream) 
> line: 154   
>       AbstractHttpConnection$OutputWriter(HttpWriter).write(char[], int,
> int) line: 288
>       AbstractHttpConnection$OutputWriter(HttpWriter).write(String, int,
> int) line: 112
>       AbstractHttpConnection$OutputWriter(HttpWriter).write(String, int,
> int) line: 101
>       AbstractHttpConnection$1(PrintWriter).write(String, int, int) line: 456 
> 
> ....
> 
> 
> 
> There is a demo app attached to the ticket and an attachment with the
> full stacktrace.
> 
> I personally wasn't able to reproduce it but two users have been able
> to do it with Tomcat 7.0.47 on Windows.
> 
> 
> Any help/hints are welcome!

Best guess, the client isn't reading the response because it hasn't
fully written the request. Tomcat isn't going to close the connection as
that would prevent it writing a response. Tomcat writes the response but
because it is bigger than the various network buffers, Tomcat hangs
writing the response.

I assume something times out eventually and closes the connection.

Mark


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

Reply via email to