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

 ID:                 50027
 Comment by:         phpbugs at colin dot guthr dot ie
 Reported by:        phpbugs at colin dot guthr dot ie
 Summary:            $this becomes a non-object
 Status:             Open
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   Mandriva Linux (Cooker x86_64)
 PHP Version:        5.3.1RC2
 Block user comment: N
 Private report:     N

 New Comment:

So far so good! I updated to PHP 5.3.3 again and reproduced the error
(and got four nice core dumps), then applied the patch and tried to
reproduce again and so far, I'm coreless.



Thanks for highlighting the patch. Just with this bug had lead to more
investigations earlier as I've had to jump through hoops to avoid
updating to PHP 5.3.x because of this problem. Still hopefully looking
good now :)


Previous Comments:
------------------------------------------------------------------------
[2010-11-16 09:38:23] bsteinbrink at saltation dot de

We encountered this bug yesterday (we could reproduce it quite easily
with our code, but unfortunately we cannot disclose it), debugged it,
found out that it was due to the GC corrupting the std_object_handlers
prototype and once we knew that, we checked with the svn repo and saw
that that was fixed in r303016.



The corruption that happens is that the read_property field of
std_object_handlers gets set to NULL, because the GC treated the handler
as a zval.



The report from lukas about the failure to set a property seems like an
independent bug, as a different field got corrupted (and he had the gc
turned off anyway).

------------------------------------------------------------------------
[2010-11-10 15:44:51] lukas at twobits dot cz

Bad news. Just got the same bug again, with PHP 5.3.3 and GC switched
OFF. Again, only one Apache process fails. The process begun failing
immediately after Apache restart. A simple reproduce class:



Reproduce code:

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

class Test

{



        private $data = NULL;



        public function __construct($data)

        {

                echo "<pre>";

                var_dump($this);

                echo "</pre>";

                $this->data = $data;

        }



        public function getData()

        {

                echo "<pre>";

                var_dump($this);

                echo "</pre>";

                return $this->data;

        }

}



echo "PID: " . getmypid();



$foo = new Test('Hello');



echo $foo->getData();





Correct output:

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

PID: 22839

object(Test)#1 (1) {

  ["data":"Test":private]=>

  NULL

}

object(Test)#1 (1) {

  ["data":"Test":private]=>

  string(5) "Hello"

}

Hello



Malfunctioning Apache process output:

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

PID: 22818

object(Test)#1 (1) {

  ["data":"Test":private]=>

  NULL

}

Warning: Attempt to assign property of non-object in
/var/www/html/testthis.php on line 16 

object(Test)#1 (1) {

  ["data":"Test":private]=>

  NULL

}

------------------------------------------------------------------------
[2010-05-15 19:06:58] phpbugs at colin dot guthr dot ie

Just for reference, I just tested and this bug is still a problem with
5.3.2.

------------------------------------------------------------------------
[2010-04-28 10:05:16] ahar...@php.net

The way this bug tracker works is that the bug doesn't get automatically
re-opened from the Feedback status when someone posts a comment; it's
only if the original reporter or a PHP developer actually resets it to
Open.



Reopening, anyway, since feedback was provided.

------------------------------------------------------------------------
[2010-04-28 09:47:53] lukas at twobits dot cz

I am unfortunately unable to provide more feedback except that we have
never encountered this problem again with GC off. We have now been using
5.3.2. If we decide to test it with the garbage collector one once
again, I'll provide some more feedback.

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


The remainder of the comments for this report are too long. To view
the rest of the comments, please view the bug report online at

    http://bugs.php.net/bug.php?id=50027


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

Reply via email to