Jeff Trawick <[EMAIL PROTECTED]> writes:
> not debugged...
well, I'm getting there... (will trade 6-pack of Pilsner Urquell for
gdb+threads which will work on my Linux boxen)
> I can't reproduce with prefork. It breaks every time for me with
> threaded.
actually, we do bad stuff with free() and symptoms varied...
> Send an HTTP 1.1 request and the server hangs in the keepalive state.
> The client has received the entire response but the server never
> closes the socket. mod_status output (from non-HTTP 1.1 :) ) shows
> the thread in keepalive. The client does shutdown() after sending
> first and only request, so server shouldn't remain in keepalive
> state.
socket_read() returns an immortal bucket pointing to "" once we reach
FIN from the other side of the socket.
But ap_getline() does an apr_bucket_delete() on the immortal bucket
which calls free() on e->data (BAD!!!!!!) which then can hang or
SIGSEGV (I saw one of these accessing a bad mutex down in glibc).
We've only gotten to this path when keepalive is on AFAICT.
--
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
http://www.geocities.com/SiliconValley/Park/9289/
Born in Roswell... married an alien...