httpd-apreq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Schaefer <joe+gm...@sunstarsys.com>
Subject Re: [MP1] Apache segfault after serving request
Date Thu, 13 Nov 2003 04:27:09 GMT
Stas Bekman <stas@stason.org> writes:

[...]

> It seems that your global $GlobalS var contains a reference to an
> Apache::Request table, but A-R object is not global, so when the scope
> of the handler is exited A-R object gets destroyed, leaving $GlobalS
> containting a pointer to a black hole. That black hole is req->parms
> in Request.xs in libapreq.

<yack>
Yup- the request pool's cleanup hook has already come through and
reclaimed all those C data structures.  Unfortunately the perl glue
isn't aware that this happened.  

I think the basic assumption is that the request pool's lifetime must
be longer than any perl scalar glued to a per-request struct.  Of
course, that assumption doesn't appear to be valid in this situation 
(a global Apache::Table object is alive, but the associated C table was
freed). Not sure what to do about it right now.
</yack>

[...]

> Joe, any ideas on this one? (we are talking about libapreq1/mp1) May
> be we should just assume that it's OK that the A-R table was already
> freed?  Does this patch introduce a leak?

I don't know- I'll try to think about it more carefully before the week
is over.

Thanks, Stas.
-- 
Joe Schaefer


Mime
View raw message