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!
Martin Grigorov
Wicket Training and Consulting