ID:               25570
 Comment by:       mwhitlock at whitsoftdev dot com
 Reported By:      robert at profundis dot se
 Status:           Open
 Bug Type:         Apache2 related
 Operating System: Windows XP Professional SP1
 PHP Version:      4.3.8
 New Comment:

Unsigned 4294967295 is the same as -1 in 32-bit two's complement signed
math.  It looks to me as if we're not encountering a segfault (since
that would generate a different message in httpd.log) but rather an
error trap somewhere that is calling exit(-1).  Calling exit(..) from a
dynamic link library kills the host process, which in this case would be
the Apache child process.  Seems like the solution is just finding where
PHP is calling exit(-1) and changing it to somehow more gracefully
aborting the request rather than forcefully exiting the process. 
Exiting the process wouldn't be a problem for the CLI since a separate
process is created to handle every request, but as an Apache module,
exit(..) is simply wrong.


Previous Comments:
------------------------------------------------------------------------

[2004-10-15 14:42:37] jonathan at schwarzelan dot de

Sorry guys - got to correct the above said...

With outputting results in the 4294967295 Crash - 
without it results to 3221225477 Apache crash

shame on me...

------------------------------------------------------------------------

[2004-10-15 14:40:29] jonathan at schwarzelan dot de

Some extra Information on the Bug
(sorry no traces-)

Not only outputting stuff leads to this error - 
Just having a loop of 140 doing querys on mysql
and without saving data from those querys filling an array
like $arr[$i][0]="" crashes Apache with said logfile occurence - 

Found with Win2k, Php 5.1.0-dev and 2.0.50 Apache
and XPSP1, Php 5.0.2 release and 2.0.50 Apache

------------------------------------------------------------------------

[2004-10-14 20:34:48] robert at profundis dot se

> Can you get a backtrace of the crash?

Eek, not easily. This is Windows :(  Not saying one can't make a
backtrace on Windows, but I'm not sure how to go about doing it.

Last time around I had a test machine to tinker with, not so this
time.

My guess is that it is a thread issue, since it occurs when two
requests (threads) are inside the handler, and one of them is aborted
(according to my investigations last time). I'm not too familiar with
the code, but maybe some overlooked global related to aborted
connections?

I can also add that I can't say for sure it ever was fixed. I don't
remember if the version I've been running was the one I modified myself
or a cvs snapshot.

------------------------------------------------------------------------

[2004-10-14 18:38:13] [EMAIL PROTECTED]

Can you get a backtrace of the crash?

------------------------------------------------------------------------

[2004-10-14 17:20:44] robert at profundis dot se

The only change in the code that seems to be related at a first glance
is in rev 1.1.2.32:
http://cvs.php.net/diff.php/php-src/sapi/apache2handler/sapi_apache2.c?r1=1.1.2.31&r2=1.1.2.32&ty=u

The original problem seems to be triggered when calling
php_handle_aborted_connection() on some occasions. The above revision
change the condition when this function is called.

I have not tested the versions inbetween 4.3.4-dev and 4.3.8, so I
cannot confirm that this particular revision is the "cause".

(I also changed this bug's version number)

------------------------------------------------------------------------

The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at
    http://bugs.php.net/25570

-- 
Edit this bug report at http://bugs.php.net/?id=25570&edit=1

Reply via email to