ID:               26771
 Comment by:       astronouth7303 at gmail dot com
 Reported By:      info at tphnet dot com
 Status:           Suspended
 Bug Type:         *General Issues
 Operating System: * (ZTS only!)
 PHP Version:      6CVS, 5CVS, 4CVS
 Assigned To:      rasmus
 New Comment:

I've seen this bug on my set up as well.

PHP 5.0.5 (Apache2 handler)
Apache 2.0.55
Windows XP Pro v2002 SP2 (Windows NT 5.1 build 2600)

The way I've figured it out is that if the tick function (registered by
register_tick_function()) is called (N ticks have gone by), PHP/Apache
crash.

I'm not sure if this applies to everyone, but I also found that the
Apache child process would not fully initialize after crashing. The new
child process had to be killed manually, and the next child would finish
initialization.


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

[2006-04-18 20:10:49] motin at demomusic dot nu

Noticed typo: Of course I meant 83 instead of 85. Also, too bad the
post got screwed up, with doubled linebreaks in the example.

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

[2006-04-18 19:58:56] motin at demomusic dot nu

I do not have the skills to dig into the appropriate code,
unfortunately. 

Possible workarounds:

1. Switch to Linux :) - If not wholly, do it by installing the free
VMWare GSX Server and build up a server in there. Recommended because
learning how to configure a Linux server is a great skill that all
php-developers will gain on learning. 

2. PHP in cgi-mode is not affected, only php when running as an
apache_module. I wanted to use ticks only for debugging purposes, and
what I did while on windows was to configure httpd.conf so that
accessing my site on port 85 would run php in cgi-mode instead of as a
module. 

Here is a simplified section of my httpd.conf for this:

# Make sure no modules are loaded before VirtualHost-containers

Listen 80

<VirtualHost *:80>


 LoadFile "/Dev/Server/php5/php5apache2.dll"

 LoadModule php5_module "/Dev/Server/php5/php5apache2.dll"

 AddType application/x-httpd-php .php


 DocumentRoot /path

 ServerName localhost

<IfModule mod_php5.c>

 php_admin_value display_errors 0

 php_admin_value error_reporting 7

</IfModule>


</VirtualHost>



Listen 83


<VirtualHost *:83>

 RemoveType .php 

 Action     php5-script "/php/php-cgi.exe"

 AddHandler php5-script .php


 DocumentRoot /path

 ServerName localhost


 # php_admin_value and php_value is not possible in cgi-mode. These
values has to be entered in php.ini

 # This section I found when trying to configure this myself back then.
Do not know if it is needed
 # <Directory /path/to/php/>

 #  Options +ExecCGI +FollowSymLinks

 #  AllowOverride None

 #  Order allow,deny

 #  Allow from all

 # </Directory>



</VirtualHost>



Cheers!

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

[2005-08-10 20:02:22] [EMAIL PROTECTED]

You are probably right that the tick stuff is broken in ZTS mode.  But
I doubt anybody is all that interested in fixing it as it is a very
fringe feature in a very fringe environment.  You can always hope, but
chances are you will need to dig into the code yourself and send us a
patch to get any movement on this.

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

[2004-01-02 19:23:33] info at tphnet dot com

Description:
------------
While searching the bug database I found some similar problems, but all
were suspended. I wasn't sure if it was useful to reply to one of those
(Most recent one: http://bugs.php.net/bug.php?id=26286). Well anyways,
here goes:

The problem is very simple. I just copy and paste the 'tick' example
from the php manual into a new php file an try to execute it on my
apache2 server.
The apache child process crashes, restarts, crashes, restarts and
eventually just stops restarting. When I comment out the line
'register_tick_function', everyting works just fine.
Also, when I start the file from the CLI version of PHP it is executed
without any problems.

I'm using PHP 4.3.4 and Apache 2.0.48 (in conjunction with
php4apache2.dll).

Reproduce code:
---------------
http://nl.php.net/manual/en/control-structures.declare.php

See Example 11-1

Actual result:
--------------
[Sat Jan 03 01:11:04 2004] [notice] Parent: child process exited with
status 3221225477 -- Restarting.
[Sat Jan 03 01:11:04 2004] [notice] Parent: Created child process 3036
[Sat Jan 03 01:11:04 2004] [notice] Child 3036: Child process is
running
[Sat Jan 03 01:11:04 2004] [notice] Child 3036: Acquired the start
mutex.
[Sat Jan 03 01:11:04 2004] [notice] Child 3036: Starting 250 worker
threads.

Small snippit from my apache2 error.log. It's filled with the above
lines, the status code is the same for every restart.


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


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

Reply via email to