ID: 39519
Updated by: [EMAIL PROTECTED]
Reported By: sw4u at gmx dot net
-Status: Open
+Status: Bogus
Bug Type: Session related
Operating System: Debian GNU/Linux
PHP Version: 4.4.4
New Comment:
This is called "deadlock" and you did it yourself.
Session file is locked, so every apache request will wait for the
previous one to finish before using it.
You're sending a request using the same session ID, while the session
file is locked, so we got the following situation:
- a.php has locked session and is still executing, waiting for file().
- but file() will never end, because b.php is waiting for session to be
unlocked and that won't happen until a.php is finished executing.
Previous Comments:
------------------------------------------------------------------------
[2006-11-15 01:48:53] sw4u at gmx dot net
Description:
------------
If you have two seperate scripts with session_start() and you read one
via fopen wrappers Apache webserver freezes.
Tested on
Apache/2.0.54 (Debian GNU/Linux)
Server API Apache 2.0 Handler
--enable-trans-sid
session.auto_start Off
session.bug_compat_42 On
session.name PHPSESSID
session.use_cookies On
session.use_only_cookies Off
session.use_trans_sid Off
Reproduce code:
---------------
script a.php
---
<?php
session_start();
$_SESSION["foo"] = "bar";
echo session_name() ."<br />";
echo session_id() ."<br />";
echo $_SESSION["foo"] ."<br />";
echo implode("", file("http://" . $_SERVER["HTTP_HOST"] . "/b.php?" .
session_name() . "=" . session_id()));
?>
---
script b.php
---
<?php
session_start();
echo session_name() ."<br />";
echo session_id() ."<br />";
echo $_SESSION["foo"] ."<br />";
?>
---
Expected result:
----------------
PHPSESSID
some_session_id_here
bar
PHPSESSID
same_session_id_here
bar
Actual result:
--------------
Apache freezes, no heavy load, no error message, no logfile entry.
------------------------------------------------------------------------
--
Edit this bug report at http://bugs.php.net/?id=39519&edit=1