tomcat-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Henri Gomez" <henri.go...@gmail.com>
Subject Re: mod_jk problem when streaming files larger than ~400k (causes ClientAbortException)
Date Thu, 07 Dec 2006 14:35:48 GMT
Well I switched to Tomcat 6.x ,(

2006/12/7, Jean-Frederic <jfclere@gmail.com>:
> On Thu, 2006-12-07 at 11:48 +0100, Henri Gomez wrote:
> > The problem is still here in future jk 1.2.20
>
> I can't reproduce something like that with 5.5.17, could you try with a
> TC5.5.x?
>
> Cheers
>
> Jean-Frederic
>
> >
> > 2006/12/7, Henri Gomez <henri.gomez@gmail.com>:
> > > More on this.
> > >
> > > The problem seems to occurs in network mode and never in local mode.
> > >
> > > Didn't have problem between Apache 2 and Tomcat 6.0.2 when both are on
> > > the same machine :
> > >
> > > worker.local.type=ajp13
> > > worker.local.port=8009
> > > worker.local.host=localhost
> > >
> > > If the local worker goes to network, the problem occurs.
> > >
> > > Very stange, I'll try with to be released 1.2.20 mod_jk
> > >
> > > 2006/12/7, Henri Gomez <henri.gomez@gmail.com>:
> > > > Same problem here with much smaller PDF and Tomcat 6.0.2 :
> > > >
> > > > As you could see the problem occurs between 81920 and 90112 bytes sent
;(
> > > >
> > > > The problem may be related to Apache2 level, since I've got this
> > > > problem on some Suse SLES 9 system where Apache2 RPM is not up to
> > > > date.
> > > >
> > > > file to be sent is 162748 long, iosize=8192
> > > >
> > > > lReadLen=8192
> > > > lSentLen=8192
> > > > lReadLen=8192
> > > > lSentLen=16384
> > > > lReadLen=8192
> > > > lSentLen=24576
> > > > lReadLen=8192
> > > > lSentLen=32768
> > > > lReadLen=8192
> > > > lSentLen=40960
> > > > lReadLen=8192
> > > > lSentLen=49152
> > > > lReadLen=8192
> > > > lSentLen=57344
> > > > lReadLen=8192
> > > > lSentLen=65536
> > > > lReadLen=8192
> > > > lSentLen=73728
> > > > lReadLen=8192
> > > > lSentLen=81920
> > > > lReadLen=8192
> > > > stackTrace is ClientAbortException:  java.io.IOException
> > > >         at org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:357)
> > > >         at org.apache.tomcat.util.buf.ByteChunk.flushBuffer(ByteChunk.java:434)
> > > >         at org.apache.tomcat.util.buf.ByteChunk.append(ByteChunk.java:349)
> > > >         at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:380)
> > > >         at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:369)
> > > >         at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:89)
> > > >
> > > >
> > > >
> > > >
> > > > 2006/12/5, Haroon Rafique <haroon.rafique@utoronto.ca>:
> > > > > Hi Devs,
> > > > >
> > > > > I sent this to the user list without any responses. I am looking
for some
> > > > > insight from the dev list. You can also see the nabble archive of
the
> > > > > user-list posting at
> > > > > http://www.nabble.com/mod_jk-problem-when-streaming-files-larger-than-%7E400k-%28causes-ClientAbortException%29-t2756411.html
> > > > >
> > > > > If I don't get any responses, then I can submit a bugzilla bug with
a
> > > > > "testcase" war file and its source (maven driven) so that the devs
can
> > > > > play around with it.
> > > > >
> > > > > Cheers,
> > > > > --
> > > > > Haroon Rafique
> > > > > <haroon.rafique@utoronto.ca>
> > > > >
> > > > >
> > > > > ---------- Forwarded message ----------
> > > > > Date: Mon, 4 Dec 2006 15:01:19 -0500 (EST)
> > > > > From: Haroon Rafique <haroon.rafique@utoronto.ca>
> > > > > To: users@tomcat.apache.org
> > > > > Subject: mod_jk problem when streaming files larger than ~400k (causes
> > > > >      ClientAbortException)
> > > > >
> > > > > Hi,
> > > > >
> > > > > I am using mod_jk 1.2.19 on Linux with JDK 1.5.0_08, tomcat 5.5.20.
Our
> > > > > application is struts-based and in one of our actions we stream a
PDF to the
> > > > > client. The pseudo-code for outputting the response back to the client
is as
> > > > > follows (assuming baos contains a ByteArrayOutputStream):
> > > > >
> > > > >               OutputStream out = response.getOutputStream();
> > > > >               baos.writeTo(out);
> > > > >               out.flush();
> > > > >               out.close();
> > > > >
> > > > > We noticed no problems when the size of baos was less than 400k.
Now the
> > > > > filesize has jumped to a little greater than 400k. With mod_jk in
the picture,
> > > > > intermittently (not all the time), we get ClientAbortException:
> > > > >
> > > > >       Caused by: ClientAbortException:  java.io.IOException
> > > > >           at
> > > > >           org.apache.catalina.connector.OutputBuffer.realWriteBytes(OutputBuffer.java:366)
> > > > >
> > > > > The end result being that the PDF is truncated and Acrobat considers
it
> > > > > damaged.
> > > > >
> > > > > Without mod_jk in the picture, everything is fine.
> > > > >
> > > > > Turning up the mod_jk logging to debug gave me too much info. Turning
it down
> > > > > to info gave me some clues. Basically, there are 3 flavors of the
failures.
> > > > > Maybe they are all the same but it might appear different to a
> > > > > trained eye, so I'm posting all three.
> > > > >
> > > > > Flavor 1 error:
> > > > > ===============
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [info]
> > > > >       ajp_connection_tcp_get_message::
> > > > >       jk_ajp_common.c (941): (local) Tomcat has forced a connection
close for
> > > > >       socket 22
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [error]
> > > > >       ajp_get_reply::jk_ajp_common.c (1562): (local) Tomcat is down
or network
> > > > >       problems. Part of the response has already been sent to the
client
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (18 28): (local) receiving from
tomcat
> > > > >       failed,
> > > > >       recoverable operation attempt=0
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (1867): (local) sending request
to tomcat
> > > > >       failed,
> > > > >       recoverable operation attempt=1
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [info]
> > > > >       ajp_process_callback::jk_ajp_common.c (1410): Writing to client
aborted or
> > > > >       client
> > > > >       network problems
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (1795): (local) request failed,
because of
> > > > >       client
> > > > >       write error without recovery in send loop attempt=1
> > > > > [Mon Dec 04 14:28:59 2006] [25445:9920] [info]
> > > > >       jk_handler::mod_jk.c (2056): Aborting connection for worker=local
> > > > >
> > > > > Flavor 2 error:
> > > > > ===============
> > > > > [Mon Dec 04 14:30:30 2006] [25448:9920] [info]
> > > > >       ajp_send_request::jk_ajp_common.c (1170): (local) socket 22
is not
> > > > >       connected
> > > > >       any more (errno=0)
> > > > > [Mon Dec 04 14:30:30 2006] [25448:9920] [info]
> > > > >       ajp_send_request::jk_ajp_common.c (1194): (local) error sending
request.
> > > > >       Will
> > > > >       try another pooled connection
> > > > > [Mon Dec 04 14:30:30 2006] [25448:9920] [info]
> > > > >       ajp_send_request::jk_ajp_common.c (1218): (local) all endpoints
are
> > > > >       disconnected
> > > > >       or dead
> > > > > [Mon Dec 04 14:30:30 2006] [25448:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (1867): (local) sending request
to tomcat
> > > > >       failed,
> > > > >       recoverable operation attempt=1
> > > > > [Mon Dec 04 14:30:32 2006] [25448:9920] [info]
> > > > >       ajp_connection_tcp_get_message::jk_ajp_common.c (941): (local)
Tomcat has
> > > > >       forced a connection close for socket 22
> > > > > [Mon Dec 04 14:30:32 2006] [25448:9920] [error]
> > > > >       ajp_get_reply::jk_ajp_common.c (1562): (local) Tomcat is down
or network
> > > > >       problems. Part of the response has already been sent to the
client
> > > > > [Mon Dec 04 14:30:32 2006] [25448:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (1828): (local) receiving from
tomcat failed,
> > > > >       recoverable operation attempt=1
> > > > > [Mon Dec 04 14:30:32 2006] [25448:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (1867): (local) sending request
to tomcat
> > > > >       failed,
> > > > >       recoverable operation attempt=2
> > > > > [Mon Dec 04 14:30:32 2006] [25448:9920] [error]
> > > > >       ajp_service::jk_ajp_common.c (1879): (local) Connecting to
tomcat failed.
> > > > >       Tomcat is probably not started or is listening on the wrong
port
> > > > > [Mon Dec 04 14:30:32 2006] [25448:9920] [info]
> > > > >       jk_handler::mod_jk.c (2063): Service error=0 for worker=local
> > > > >
> > > > > Flavor 3 error:
> > > > > ===============
> > > > > [Mon Dec 04 14:32:31 2006] [25444:9920] [info]
> > > > >       ajp_send_request::jk_ajp_common.c (1170): (local) socket 22
is not
> > > > >       connected any more (errno=0)
> > > > > [Mon Dec 04 14:32:31 2006] [25444:9920] [info]
> > > > >       ajp_send_request::jk_ajp_common.c (1194): (local) error sending
> > > > >       request.  Will try another pooled connection
> > > > > [Mon Dec 04 14:32:31 2006] [25444:9920] [info]
> > > > >       ajp_send_request::jk_ajp_common.c (1218): (local) all endpoints
are
> > > > >       disconnected or dead
> > > > > [Mon Dec 04 14:32:31 2006] [25444:9920] [info]
> > > > >       ajp_service::jk_ajp_common.c (1867): (local) sending request
to tomcat
> > > > >       failed,  recoverable operation attempt=1
> > > > >
> > > > >
> > > > > Does anyone have any experience with streaming large files using
mod_jk? If I
> > > > > don't get any responses I will try the dev list.
> > > > >
> > > > > Here's my mod_jk.conf:
> > > > >
> > > > > LoadModule jk_module modules/mod_jk.so
> > > > > JkWorkersFile conf/workers.properties
> > > > > JkLogFile logs/mod_jk.log
> > > > > JkLogLevel info
> > > > > JkShmFile logs/mod_jk.shm
> > > > > JkMount /jkstatus/ status
> > > > > JkMount /sws/* local
> > > > >
> > > > > Here's my workers.properties:
> > > > >
> > > > > worker.list=local,status
> > > > > worker.local.type=ajp13
> > > > > worker.local.port=8009
> > > > > worker.local.host=localhost
> > > > > worker.status.type=status
> > > > > worker.status.port=8009
> > > > > worker.status.host=localhost
> > > > >
> > > > > Anyone see any glaring mistakes or oddities? As I mentioned earlier,
the same
> > > > > setup worked fine. The only trigger that I can think of is the slight
increase
> > > > > in file size.
> > > > >
> > > > > Any help appreciated.
> > > > >
> > > > > thanks,
> > > > > --
> > > > > Haroon Rafique
> > > > > <haroon.rafique@utoronto.ca>
> > > > >
> > > > >
> > > > > ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> > > > > For additional commands, e-mail: dev-help@tomcat.apache.org
> > > > >
> > > > >
> > > >
> > >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> > For additional commands, e-mail: dev-help@tomcat.apache.org
> >
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
> For additional commands, e-mail: dev-help@tomcat.apache.org
>
>

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


Mime
View raw message