[php-src] Issue #24265: Unwind/GracefulExit discarded in zend_fiber_execute()
| From: | iluuu1994 | Date: | Sun, 11 Oct 2026 16:30:39 +0000 |
| Subject: | [php-src] Issue #24265: Unwind/GracefulExit discarded in zend_fiber_execute() | ||
| Groups: | php.bugs | ||
| Request: | Send a blank email to php-bugs+get-252976@lists.php.net to get a copy of this message | ||
Issue: https://github.com/php/php-src/issues/24265
Author: iluuu1994
### Description
zend_fiber_execute() calls zend_clear_exception() but doesn't
transfer Unwind-/GracefulExits back to the calling context when the fiber
has been destroyed. This happens when the fiber is resumed for finally.
```php
<?php
$fiber = new Fiber(function () {
try {
Fiber::suspend();
} finally {
exit(1);
}
});
$fiber->start();
echo "Before destroy\n";
unset($fiber);
echo "Not reached\n";
```
Resulted in this output:
```
Before destroy
Not reached
```
But I expected this output instead:
```
Before destroy
```
### PHP Version
```plain
8.2+
```
### Operating System
_No response_