1--TEST-- 2Bug #64960 (Segfault in gc_zval_possible_root) 3--FILE-- 4<?php 5// this makes ob_end_clean raise an error 6ob_end_flush(); 7 8class ExceptionHandler { 9 public function __invoke (Exception $e) 10 { 11 // this triggers the custom error handler 12 ob_end_clean(); 13 } 14} 15 16// this must be a class, closure does not trigger segfault 17set_exception_handler(new ExceptionHandler()); 18 19// exception must be throwed from error handler. 20set_error_handler(function() 21{ 22 $e = new Exception; 23 $e->_trace = debug_backtrace(); 24 25 throw $e; 26}); 27 28// trigger error handler 29$a['waa']; 30?> 31--EXPECTF-- 32Notice: ob_end_flush(): failed to delete and flush buffer. No buffer to delete or flush in %sbug64960.php on line 3 33 34Fatal error: Uncaught Exception in %sbug64960.php:19 35Stack trace: 36#0 [internal function]: {closure}(8, 'ob_end_clean():...', '%s', 9, Array) 37#1 %sbug64960.php(9): ob_end_clean() 38#2 [internal function]: ExceptionHandler->__invoke(Object(Exception)) 39#3 {main} 40 thrown in %sbug64960.php on line 19 41