tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Christopher Schultz <ch...@christopherschultz.net>
Subject Re: Http 500 and %b in access log
Date Wed, 20 Jan 2010 19:41:15 GMT
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Mohit,

On 1/20/2010 2:11 PM, Mohit Anchlia wrote:
>> Server version: Apache Tomcat/6.0.18
>>
>> We don't any other web server in front

Okay. What connector(s) are you using? I'm not sure it matters, given
the other information you've provided.

>> Interesting. Do all responses with fewer than 2657 bytes succeed? Do all
>> responses with more than 2656 bytes fail?
>
> YES

Hmm.

> Please post the entire stack trace of the exception.
> 
>> SEVERE: Servlet.service() for servlet SwitchServlet threw exception
>> java.net.SocketTimeoutException: Read timed out
>>         at java.net.SocketInputStream.socketRead0(Native Method)
>>         at java.net.SocketInputStream.read(SocketInputStream.java:129)
>>         at java.io.FilterInputStream.read(FilterInputStream.java:111)
>>         at com.wily.introscope.agent.probe.net.ManagedSocketInputStream.read(ManagedSocketInputStream.java:214)

I've never see this class before. What is it? In this some kind of
instrumentation? If so, what happens if you turn it off?

Another interesting thing is that this fails during a read() operation.
So, your servlet isn't failing to send data to the client, it's failing
to read the data in the first place.

I'll bet that 2657 bytes is the size of your "500 error" page. Can you
check that?

Does your servlet usually emit fewer than 2657 bytes? That's a pretty
small response for many HTTP requests.

>>         at org.apache.coyote.http11.InternalInputBuffer.fill(InternalInputBuffer.java:746)
>>         at org.apache.coyote.http11.InternalInputBuffer$InputStreamInputBuffer.doRead(InternalInputBuffer.java:776)
>>         at org.apache.coyote.http11.filters.IdentityInputFilter.doRead(IdentityInputFilter.java:116)
>>         at org.apache.coyote.http11.InternalInputBuffer.doRead(InternalInputBuffer.java:705)
>>         at org.apache.coyote.Request.doRead(Request.java:428)
>>         at org.apache.catalina.connector.InputBuffer.realReadBytes(InputBuffer.java:304)
>>         at org.apache.tomcat.util.buf.ByteChunk.substract(ByteChunk.java:405)
>>         at org.apache.catalina.connector.InputBuffer.read(InputBuffer.java:327)
>>         at org.apache.catalina.connector.CoyoteInputStream.read(CoyoteInputStream.java:162)
>>         at org.apache.commons.io.IOUtils.copyLarge(IOUtils.java:1025)
>>         at org.apache.commons.io.IOUtils.copy(IOUtils.java:999)
>>         at org.apache.commons.io.IOUtils.toByteArray(IOUtils.java:218)
>>         at com.intuit.engine.efp.efe.efileswitch.SwitchServlet.doPostOrGet(SwitchServlet.java:174)
>>         at com.intuit.engine.efp.efe.common.servlet.BaseServlet.doPost(BaseServlet.java:48)

So, you're copying a byte array from the client. Where are you copying
it to?

> Yes it always fail with desktop clients on the broadband/modem etc..
> Basically ones that are using our GUI application.

So, regular web browsers like Firefox, MSIE, Safari? When you say "GUI
application" do you mean a web-based application, or do you have
something else that's running on the client?

> Is there also a timeout where connection is closed when 'n' secs
> expire irrespecitve of if the client and server are actively talking
> to each other.

That would be the SocketTimeout itself which I don't believe is settable
through Tomcat's <Connector> configuration. The default socket timeout
for ServerSocket is 0 (infinity: wait forever) so it must be that this
default is being changed somewhere along the way.

It's possible that the <Connector> configurator will pass-through any
settings onto the socket (I haven't read the code). It would be simple
to try adding "soTimeout=60000" (that's 60 seconds) to your <Connector>
configuration and see if that works. Check the logs after startup to see
if there's any warning that the "soTimeout" attribute didn't match
anything useful.

- -chris
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.10 (MingW32)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/

iEYEARECAAYFAktXXFsACgkQ9CaO5/Lv0PCZAACfeJMBprxz6/hwoOmp9PXA8VwN
Rq0An09fm8L6FT6PYP5KolY6R+li+C3H
=ZVEw
-----END PGP SIGNATURE-----

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


Mime
View raw message