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 @@ -561,6 +561,7 @@ static zend_always_inline zend_fiber_transfer zend_fiber_switch_to(
561
561
562
562
/* Forward bailout into current fiber. */
563
563
if (UNEXPECTED (transfer .flags & ZEND_FIBER_TRANSFER_FLAG_BAILOUT )) {
564
+ EG (active_fiber ) = NULL ;
564
565
zend_bailout ();
565
566
}
566
567
You can’t perform that action at this time.
0 commit comments