httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <trawi...@bellsouth.net>
Subject Re: keepalive broken (?)
Date Wed, 28 Feb 2001 23:20:08 GMT
Jeff Trawick <trawickj@bellsouth.net> 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 | trawickj@bellsouth.net | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

Mime
View raw message