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
>
>

Reply via email to