You probably use file based session storage, didn't you?

Then teach your backround script to close all file handles at startup as
every good daemon should do :).

PHP always locks the file session file when you open the session and
unlocks it only (by closing  it) when you close the session or the
script stops. The background process inherits the session file handle
from its parent and the session file remains locked thus preventing all
other apache processes to open/read it until your background script
dies. You can somehow close the session before starting your script in
background but still it is better to close all inherited file handles
that your script doesn't need.

oleg



[EMAIL PROTECTED] wrote:
> 
> From:             [EMAIL PROTECTED]
> Operating system: RedHat 6.2
> PHP version:      4.0.5
> PHP Bug Type:     *Session related
> Bug description:  Executing background job from PHP causes session lock-up
> 
> 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.
> 
> --
> Edit Bug report at: http://bugs.php.net/?id=10675&edit=1
> 
> --
> PHP Development Mailing List <http://www.php.net/>
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
> To contact the list administrators, e-mail: [EMAIL PROTECTED]


-- 
PHP Development Mailing List <http://www.php.net/>
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
To contact the list administrators, e-mail: [EMAIL PROTECTED]

Reply via email to