More Apache stuckage

Wednesday, 01. 11. 2006  –  Category: all, sw

  • mod_status shows loads of children in Keepalive state with Seconds Since much higher than KeepAliveTimeout
  • eventually the number of these reaches MaxClients, wedging the server
  • hung process backtrace like this:
    
    (gdb)  bt
    #0  0x2814d118 in read () from /usr/lib/libc.so.4
    #1  0x2830e69f in ssl_io_hook_read () from /usr/local/libexec/apache/libssl.so
    #2  0x806d256 in ap_hook_call_func ()
    #3  0x806ce7b in ap_hook_call ()
    #4  0x8051bea in ap_read ()

There’s some google-able posts about SSL blocking reads, but

  • They’re old posts
  • The hung threads aren’t actually on a SSL VirtualHost

Since it’s a busy server there’s this tradeoff between KeepAlives helping by reducing HTTP connection setup / teardown and the need to churn Apache children fast. Since I didn’t have any joy working out the problem, I’ve got around it by just turning KeepAlives off.

Still, it bugs me.

Leave a Reply