httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "MATHIHALLI,MADHUSUDAN (HP-Cupertino,ex1)" <>
Subject RE: PHP4 was Re: has anybody seen worker segfaults?
Date Wed, 20 Feb 2002 22:13:31 GMT
	I was working on this some time back, and I don't believe it's a
Apache problem (it might be a better idea to move it to the PHP mailing

The problem occurs because of the way the PHP context is handled in
php_output_filter (sapi_apache2.c).. Here's something that I observed :
The function php_output_filter() is called > 2 times because of the way the
output data is handled by the filter.. 
- the first time around some sort of initialization is done.
- during the second round, the data is sent out
- then i don't know what happens (possibly wrong termination of the o/p
brigade), and the php_output_filter is called for the third time.. The
filter knows about such a thing happening, but the code is not written
properly to handle the situation.. The PHP context (ctx) is corrupted, and
the PHP module bombs - you end up seeing only the parent apache process.

(Due to my limited PHP knowledge) I introduced the following snippet just
before the ap_save_brigade(...) block, and it seems to bring up apache 

    if ((ctx->state < 0) || (ctx->state > 2)) {
        ap_log_error(APLOG_MARK, APLOG_DEBUG,
                     0, NULL, "PHP : Unrecognized state!");
        return 0;

This is a workaround and not a resolution/fix.. I'd appreciate if anybody
could post a fix for this..


-----Original Message-----
From: Austin Gonyou []
Sent: Wednesday, February 20, 2002 10:56 AM
Subject: Re: PHP4 was Re: has anybody seen worker segfaults?

FYI. Not an compilation problem, HTTPD just doesn't do anything, but
doesn't write a log either, and only 1 process is started. 

On Wed, 2002-02-20 at 12:19, Justin Erenkrantz wrote:
> On Wed, Feb 20, 2002 at 10:16:03AM -0800, Justin Erenkrantz wrote:
> > On Wed, Feb 20, 2002 at 12:03:00PM -0600, Austin Gonyou wrote:
> > > PHP4.1.1 or > not working?
> > 
> > You have to have the version from CVS in order to get it to
> > compile.  -- justin
> Err, just to make it clear, you need the latest version of PHP
> from their CVS repository.  We made changes in the .31 timeframe
> to our input filters and they haven't done a release since then.
> DougM committed the relevant fixes to PHP's repository right after
> we changed it here.  -- justin
Austin Gonyou
Systems Architect, CCNA
Coremetrics, Inc.
Phone: 512-698-7250

"It is the part of a good shepherd to shear his flock, not to skin it."
Latin Proverb

View raw message