Bug #70864 [Opn]: new DateTime in __construct() crashes

From: Date: Thu, 05 Nov 2015 20:39:40 +0000
Subject: Bug #70864 [Opn]: new DateTime in __construct() crashes
References: 1  Groups: php.bugs 
Request: Send a blank email to php-bugs+get-197058@lists.php.net to get a copy of this message
Edit report at https://bugs.php.net/bug.php?id=70864&edit=1

 ID:                 70864
 User updated by:    eric at ericstern dot com
 Reported by:        eric at ericstern dot com
 Summary:            new DateTime in __construct() crashes
 Status:             Open
 Type:               Bug
 Package:            Reproducible crash
 Operating System:   Centos 7
 PHP Version:        7.0.0RC6
 Block user comment: N
 Private report:     N

 New Comment:

Update - this doesn't even need to be in an object's constructor, as I initially
discovered it. Simply <?php new DateTime(); will reproduce the issue!


Previous Comments:
------------------------------------------------------------------------
[2015-11-05 20:34:24] eric at ericstern dot com

Description:
------------
Instantiating a DateTime object in a constructor causes an engine crash, printing either
"Segmentation Fault" or "zend_mm_heap corrupted".

This only seems to happen in Centos7 with PHP7RC6 installed from the Webtatic-Testing repo; I can
NOT reproduce it on OS X using the same version installed via homebrew. In that environment, I have
disabled all extensions by renaming /etc/php.d to /etc/php.d.disabled and the crash still occurs.

Originally found under nginx/php-fpm, but happens under cli as well.

I can privately provide access to the server which reproduces this if helpful.

Test script:
---------------
<?php
class X {
  private $date;
  public function __construct() {
    $this->date = new DateTime();
  }
}
$x = new X();
var_dump($x);

Expected result:
----------------
object(X)#1 (1) {
  ["date":"X":private]=>
  object(DateTime)#2 (3) {
    ["date"]=>
    string(26) "2015-11-05 20:24:38.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(3) "UTC"
  }
}

(exit 0)

Actual result:
--------------
object(X)#1 (1) {
  ["date":"X":private]=>
  object(DateTime)#2 (3) {
    ["date"]=>
    string(26) "2015-11-05 20:31:09.000000"
    ["timezone_type"]=>
    int(3)
    ["timezone"]=>
    string(3) "UTC"
  }
}
Segmentation fault

(exit 139)


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



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


Thread (9 messages)

« previous php.bugs (#197058) next »