2009-09-23 20:39:25
No Comments
Apache 2.2 (Apache's APR actually) has a bug in the OpenSolaris 2009.06 (including Entic.net's OpenSolaris VPS servers) release. The symptom is the web server goes unresponsive and hangs after some time.
We ran Apache in a single thread, in the foreground (httpd -f httpd.conf -X), and then used our trusty PID provider in DTrace to get a stack trace, that looks something like this:
0 80992 apr_atomic_inc32:entry 0 83055 atomic_inc_32_nv:entry 0 83401 port_getn:entry 0 85371 _portfs:entry 2 83394 ___errno:entry 2 80993 apr_atomic_dec32:entry 2 83062 atomic_dec_32_nv:entry 2 83394 ___errno:entry 2 83394 ___errno:entry 2 80853 apr_pollset_poll:entry 2 83124 __div64:entry 2 83121 UDiv:entry 2 83125 __rem64:entry 2 83120 UDivRem:entry 2 80992 apr_atomic_inc32:entry 2 83055 atomic_inc_32_nv:entry 2 83401 port_getn:entry 2 85371 _portfs:entry
Thanks to some great folks over at Sun, we've gotten a workaround that fixes this. The final fix won't be available until APR is upgraded or until build 124.