On Mon, Mar 17, 2014 at 11:29 AM, Mark Thomas <ma...@apache.org> wrote:
> 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 > Thanks for the answer! What is the current default behavior of Tomcat 7/8 about swallowing the file upload input in case its size is bigger than the configured max size? I've found discussion [1] but it doesn't say whether the behavior has changed in later versions of Tomcat. 1. http://markmail.org/message/c4qo4g2wc4sm7g53 > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org > For additional commands, e-mail: users-h...@tomcat.apache.org > >