Bug #10675 Updated: Executing background job from PHP causes session lock-up
| From: | sas@php.net | Date: | Sat, 05 May 2001 18:16:42 +0000 |
| Subject: | Bug #10675 Updated: Executing background job from PHP causes session lock-up | ||
| Groups: | php.dev | ||
| Request: | Send a blank email to php-dev+get-54018@lists.php.net to get a copy of this message | ||
ID: 10675
Updated by: sas
Reported By: millz@incogen.com
Old-Status: Open
Status: Closed
Bug Type: *Session related
PHP Version: 4.0.5
Assigned To:
Comments:
Your perl scripts inherits the open file descriptors and hence also the open fd for the session
file. And hence, the lock associated with the fd is not automatically released, when PHP closes the
fd.
You might want to close all fds upon startup of the perl script to prevent this scenario.
Previous Comments:
---------------------------------------------------------------------------
[2001-05-04 15:54:53] millz@incogen.com
Executed a perl script in the background like this:
perl scriptname.pl $otherParams 2> /dev/null 1> /dev/null
Perl script forks and parent dies, so PHP "should" see the script as finished
immediately, perl child does work in background (takes a few minutes to run).
PHP script that spawned perl script completes OK, browser stops waiting for more data from
php script as it should.
However, when using the same browser window (or one from browser's file->new window) no
other pages that referrence the session will load in the browser. If we force the session
to destroy just after the system() call, other scripts load just fine. Also, other
scripts work just fine if we start a new browser from scratch (creates new session).
So it appears that the PHP session is getting messed up somehow b/c of the background
system/exec/`` call. This seems to prevent the following pages from loading the session
properly and therefore they will not run.
One other thing, once the child perl script is finally complete everything starts working again,
i.e.-the session is OK again.
---------------------------------------------------------------------------
[2001-05-04 15:22:47] millz@incogen.com
Executed a perl script in the background like this:
perl scriptname.pl $otherParams 2> /dev/null 1> /dev/null
Perl script forks and parent dies, so PHP "should" see the script as finished immediately,
perl child does work in background (takes a few minutes to run).
PHP script that spawned perl script completes OK, browser stops waiting for more data from php
script as it should.
However, when using the same browser window (or one from browser's file->new window) no
other pages that referrence the session will load in the browser. If we force the session to
destroy just after the system() call, other scripts load just fine. Also, other scripts work just
fine if we start a new browser from scratch (creates new session).
So it appears that the PHP session is getting messed up somehow b/c of the background system/exec/``
call. This seems to prevent the following pages from loading the session properly and therefore
they will not run.
---------------------------------------------------------------------------
ATTENTION! Do NOT reply to this email!
To reply, use the web interface found at http://bugs.php.net/?id=10675&edit=2