File tree Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Expand file tree Collapse file tree 2 files changed +19
-0
lines changed Original file line number Diff line number Diff line change
1
+ --TEST--
2
+ GH-10437 (Segfault/assertion when using fibers in shutdown function after bailout)
3
+ --FILE--
4
+ <?php
5
+
6
+ register_shutdown_function (function (): void {
7
+ var_dump (Fiber::getCurrent ());
8
+ });
9
+
10
+ $ fiber = new Fiber (function (): never {
11
+ trigger_error ('Bailout in fiber ' , E_USER_ERROR );
12
+ });
13
+ $ fiber ->start ();
14
+
15
+ ?>
16
+ --EXPECTF--
17
+ Fatal error: Bailout in fiber in %sgh10437.php on line %d
18
+ NULL
Original file line number Diff line number Diff line change @@ -645,6 +645,7 @@ static zend_always_inline zend_fiber_transfer zend_fiber_switch_to(
645
645
646
646
/* Forward bailout into current fiber. */
647
647
if (UNEXPECTED (transfer .flags & ZEND_FIBER_TRANSFER_FLAG_BAILOUT )) {
648
+ EG (active_fiber ) = NULL ;
648
649
zend_bailout ();
649
650
}
650
651
You can’t perform that action at this time.
0 commit comments