Mantis - Resin
Viewing Issue Advanced Details
376 minor always 09-05-05 00:00 11-30-05 14:42
user375  
 
high  
closed 3.0.14  
3.0.14 fixed  
none    
none 3.0.15  
0000376: mod_caucho 503 returns error
RSN-420
Hello ;)

I've been debugging strange increase of 503 errors on our apache2/resin frontends after upgrading from linux 2.4.x glibc 2.3.2 linuxthreads to linux 2.6.x glibc 2.3.5 NPTL upgrade.

After applying mod_caucho debugging patch (RSN 381 http://www.caucho.com/bugtrack/browse/RSN-381), [^] i've discovered, that big majority of 503 errors are the following.

[09/Sep/2005:09:53:38:942915 +0200] 2479.2958191536 mod_caucho ERROR: caucho_request(), file mod_caucho.c, line 851: code(-1) != HMUX_QUIT(81) && code(-1) != HMUX_EXIT(88). Retur
ning HTTP_SERVICE_UNAVAILABLE: 503, errno: 104: Connection reset by peer

and

[09/Sep/2005:09:53:13:680643 +0200] 13303.2983369648 mod_caucho ERROR: HTTP client connection was not terminated properly (32): Broken pipe.

Both errors accour in write_request() -> send_data() -> cse_write_response().

After sniffing tcp traffic on ethernet device, i discovered interesting fact, that some http clients really does close the socket in inappropriate way, which couses 503 Broken pipe error, but most of them reset tcp connection which couses Connection reset by peer 503 error.

Are these 503 errors safe to ignore? 5xx http errors are *server* errors. Well, 503 errors mentioned above are not server errors, they are triggered by http client, which in fact never sees 503 error text. If they are safe to ignore, we should patch mod_caucho to ignore them and return OK in case of 32 or 104 errno.

Does anyone have an idea, why this was not happening on linux 2.4? Is linux 2.4 kernel lying about tcp packet delivery?

Best regards,
Brane
linux 2.6.12.3, glibc 2.3.5 NPTL, apache 2.0.54 (worker MPM), resin 3.0.14

Notes
(0000434)
ferg   
09-05-05 00:00   
mod_caucho will now properly cleanup the server side socket connection and not
improperly return 503s to apache.