ID:               27963
 Updated by:       [EMAIL PROTECTED]
 Reported By:      joobri at sas dot com
-Status:           Open
+Status:           Verified
 Bug Type:         Session related
-Operating System: Linux
+Operating System: *
-PHP Version:      4.3.5
+PHP Version:      4CVS-2004-04-13


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

[2004-04-12 18:06:59] edward dot costello at vialactia dot com

The same problem occurs with session_set_cookie_params.



Reproduce code:

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

php.ini value of session.cookie_lifetime: 0

<?

        $pram = session_get_cookie_params();

        print "Cookie Lifetime: ".$pram['lifetime']."\n";

        session_set_cookie_params(5);

?>



First request to this script will show 0 as the cookie life time. All
subsequent requests (on the same httpd process) show 5.



Expected result:

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

According to the documentation of session_set_cookie_params, the
changes should only last for the duration of the script.

So the above example should show 0 every time.



Actual result:

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

The cookie parameters are changed for the life of the httpd process.

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

[2004-04-12 10:37:46] joobri at sas dot com

Description:
------------
When PHP code is run that explicitly sets (and overrides) the default
value of session_module_name, subsequent requests to that httpd process
use the value that was set and do not default back to the default
value.  This causes intermittant problems on our web server running 300
httpd processes - some apache processes have the default value and some
have a different value if they were set by code run on that process.





In the cases where it fails, the session module name

is not the configured default of "files" but is "user" instead.  It
looks like

in some circumstances an alternate session module is "left-over" from a
previous

request.  (I've seen similar "left-overs" with other configuration
directives,

notably error log level, in the past.)



The work-around we are using: add an explicit

session_module_name("files");

before calling any other session-related functions.



 

The following 2 errors are in the log:



/nfs/swwprod2/local/etc/httpd.dir/logs/error_log:[Thu Apr  8 09:23:18
2004]

[error] PHP Fatal error:  session_start() [<a

href='/sww/mirrors/php/function.session-start.html'>function.session-start.html<

]:

Failed to initialize storage module: user (path: /tmp) in

/remote/tappan/vol/vol4/tools/testhelp/websrc/existing.php on line 3

/nfs/swwprod2/local/etc/httpd.dir/logs/error_log:[Thu Apr  8 09:23:33
2004]

[error] PHP Fatal error:  session_start() [<a

href='/sww/mirrors/php/function.session-start.html'>function.session-start.html<

]:

Failed to initialize storage module: user (path: /tmp) in

/remote/tappan/vol/vol4/tools/testhelp/websrc/existing.php on line 3



Reproduce code:
---------------
Default Value: session_module_name("files");



In your code, specify session_module_name("user");



Set your apache server to run with only one httpd process - run your
code setting session_module_name to user.



Subsequent requests by a page not setting the session_module_name value
will have the session_module_name set to user and not default back to
files.

Expected result:
----------------
When you don't specify session_module_name it should set back to the
default value.

Actual result:
--------------
session_module_name retains the last value set, not the default value.


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


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

Reply via email to