Mantis - Resin
Viewing Issue Advanced Details
334 minor always 08-02-05 00:00 11-30-05 14:42
user333  
 
normal  
closed 3.0.14  
3.0.14 fixed  
none    
none 3.0.15  
0000334: apache1 keepalives broken by JNI extensions
RSN-378
When the JNI extension (libresin_os.so) is being used, apache1 mod_caucho connections are being closed immediately after each request, ignoring any keepalive and client-live-time configuration. This has rendered Resin 3 unusable on high-load servers routing requests through apache1.

I devised a simple test to confirm that connections are being closed immediately: I make 100 synchronous requests to Apache 1.3 (with MaxClients 4). With my previous Resin 2 setup, 4 connections are ESTABLISHED and reused between the apache processes and Resin. With Resin 3, I get 100 closed (TIME_WAIT) connections (between mod_caucho and Resin, not counting the closed apache request connections).

I have tried tweaking several parameters including keepalive-max, keepalive-timeout (which appears to be ignored in the source code), client-live-time, and client-read-timeout, with no luck. When I removed libresin_os.so from Resin's LD_LIBRARY_PATH, connections behave as they did with Resin 2.
Solaris 8 (sparc), java 1.4.2_05 and java 1.5.0_04

Notes
(0000380)
ferg   
08-02-05 00:00   
The configuration updates were closing the sockets automatically instead of reusing them.