| 
        php.net | support | documentation | report a bug | advanced search | search howto | statistics | random bug | login | 
  [2012-10-18 14:08 UTC] johan dot groth at sorona dot se
 Description: ------------ Note: This problem appears on 5.4.8 as well, but it was not available in the list when I created the report. Sometimes when using traits, I get "zend_mm_heap corrupted". I get it both while running under apache and while running from the command line. It's a problem under apache, since then I do not get any output sent to the browser. If I run the same script on the command line, I get output but with "zend_mm_heap corrupted" at the end. So, the script seem to finish every time but with an error afterwards. I have gotten this error in the past a few times, but could solve it every time by upgrading to a newer release of PHP. Now however, I'm on the latest release and have run into this problem yet again. It seems really hard to reproduce, and I have not been able to do it in a test script, it only appears when I run my full application and only when using traits. These bugs seem to be related: #62339 #55382 #62358 I have tried to generate a dump according to these instructions: https://bugs.php.net/bugs-generating-backtrace-win32.php However, I have not been able to get something useful out of it. It seems that the program does not detect that a crash has occured, even if it says the following in the apache error log: zend_mm_heap corrupted [Thu Oct 18 15:35:12 2012] [notice] Parent: child process exited with status 1 -- Restarting. Test script: --------------- I have not been able to reproduce this problem in a test script. Expected result: ---------------- Not "zend_mm_heap corrupted" Actual result: -------------- zend_mm_heap corrupted PatchesPull RequestsHistoryAllCommentsChangesGit/SVN commits             
             | 
    |||||||||||||||||||||||||||
            
                 
                Copyright © 2001-2025 The PHP GroupAll rights reserved.  | 
        Last updated: Tue Nov 04 07:00:01 2025 UTC | 
A simple reproduce script: <?php new Attachment(""); function __autoload($class) { switch ($class) { case "Attachment": eval(<<<'PHP' class Attachment extends File { } PHP ); break; case "File": eval(<<<'PHP' class File { use TDatabaseObject { TDatabaseObject::__construct as private databaseObjectConstruct; } public function __construct() { } } PHP ); break; case "TDatabaseObject": eval(<<<'PHP' trait TDatabaseObject { public function __construct() { } } PHP ); break; } return TRUE; }