php.net |  support |  documentation |  report a bug |  advanced search |  search howto |  statistics |  random bug |  login
Bug #64724 Objects stored in Sessions sometimes get "lost".
Submitted: 2013-04-26 15:04 UTC Modified: 2013-07-29 13:37 UTC
Votes:1
Avg. Score:5.0 ± 0.0
Reproduced:1 of 1 (100.0%)
Same Version:0 (0.0%)
Same OS:0 (0.0%)
From: php dot bugs at lippe-net dot de Assigned: mike (profile)
Status: No Feedback Package: *General Issues
PHP Version: 5.4.14 OS: Debian Wheezy
Private report: No CVE-ID: None
Welcome back! If you're the original bug submitter, here's where you can edit the bug or add additional notes.
If you forgot your password, you can retrieve your password here.
Password:
Status:
Package:
Bug Type:
Summary:
From: php dot bugs at lippe-net dot de
New email:
PHP Version: OS:

 

 [2013-04-26 15:04 UTC] php dot bugs at lippe-net dot de
Description:
------------
The "transactions" array of the $_SESSION variable is initialized only once.

If you repeat the invocation of the script. After a while the array contains some 
elements that are no more Objects of "class S" but references (for example 
r:5607;).



Test script:
---------------
<?php

class S implements \Serializable {

	protected $data = [];

	public function __construct() {
		for ( $i = 0; $i <= mt_rand(4, 7); $i++ ) {
			$this->data[] = mt_rand(0, 50);
		}
	}

	public function serialize() {
		return serialize($this->data);
	}

	public function unserialize($data) {
		$this->data = unserialize($data);
	}

}

session_name("testS");
session_start();

if ( empty($_SESSION["transactions"]) ) {
	$_SESSION["transactions"] = [ new S(), new S(), new S(), new S() ];
}

echo serialize($_SESSION);

?>

Expected result:
----------------
Example (first call):
transactions|a:4:{i:0;C:1:"S":76:{a:8:
{i:0;i:9;i:1;i:24;i:2;i:23;i:3;i:46;i:4;i:29;i:5;i:4;i:6;i:44;i:7;i:14;}}i:1;C:1:"
S":51:{a:5:{i:0;i:11;i:1;i:45;i:2;i:12;i:3;i:10;i:4;i:21;}}i:2;C:1:"S":59:{a:6:
{i:0;i:47;i:1;i:5;i:2;i:40;i:3;i:35;i:4;i:29;i:5;i:14;}}i:3;C:1:"S":58:{a:6:
{i:0;i:20;i:1;i:20;i:2;i:7;i:3;i:44;i:4;i:7;i:5;i:27;}}}

Actual result:
--------------
Example (after some roundabout 50 calls):

transactions|a:4:{i:0;r:5607;i:1;r:5617;i:2;r:5624;i:3;r:5632;}

Patches

Pull Requests

History

AllCommentsChangesGit/SVN commitsRelated reports
 [2013-04-27 15:45 UTC] laruence@php.net
-Package: Session related +Package: *General Issues -Assigned To: +Assigned To: mike
 [2013-04-27 15:45 UTC] laruence@php.net
maybe due to the serialize
 [2013-04-29 14:15 UTC] mike@php.net
-Status: Assigned +Status: Feedback
 [2013-04-29 14:15 UTC] mike@php.net
Can't reproduce.

Do you have any special extensions loaded? If so, see if that also happens without them loaded.
 [2013-05-06 16:20 UTC] php dot bugs at lippe-net dot de
The only thing is a DBG v4.6.4 installation, but it seems to make no difference if it is activated or not.
 [2013-05-07 09:46 UTC] mike@php.net
It "seems", or it "does"?

Is this a ZTS build?

Thanks.
 [2013-05-07 10:45 UTC] php dot bugs at lippe-net dot de
The debian libapache2-mod-php5 (5.4.4-14) is certainly not thread-safe.
 [2013-07-05 12:58 UTC] mike@php.net
So does this happen if you do not even load DBG?
 [2013-07-29 13:37 UTC] mike@php.net
-Status: Feedback +Status: No Feedback
 [2013-07-29 13:37 UTC] mike@php.net
No feedback was provided. The bug is being suspended because
we assume that you are no longer experiencing the problem.
If this is not the case and you are able to provide the
information that was requested earlier, please do so and
change the status of the bug back to "Re-Opened". Thank you.


 
PHP Copyright © 2001-2024 The PHP Group
All rights reserved.
Last updated: Fri Dec 27 07:01:28 2024 UTC