Skip to content

[pull] master from php:master#815

Merged
pull[bot] merged 8 commits intoturkdevops:masterfrom
php:master
Mar 26, 2026
Merged

[pull] master from php:master#815
pull[bot] merged 8 commits intoturkdevops:masterfrom
php:master

Conversation

@pull
Copy link
Copy Markdown

@pull pull bot commented Mar 26, 2026

See Commits and Changes for more details.


Created by pull[bot] (v2.0.0-alpha.4)

Can you help keep this open source service alive? 💖 Please sponsor : )

iliaal and others added 8 commits March 26, 2026 11:01
…ctors

When GC runs inside a fiber handling an exception (e.g. during
zend_fiber_object_destroy), EG(exception) is set.
gc_call_destructors_in_fiber() saved and cleared the exception after
creating the destructor fiber. Since zend_call_function() returns early
when EG(exception) is set, the destructor fiber's handler never ran,
leaving DTOR_GARBAGE entries in the root buffer. On the next GC cycle,
gc_collect_roots() hit an alignment assertion on these stale entries.

Move remember_prev_exception() before the destructor fiber
creation/resume so EG(exception) is cleared before zend_call_function()
runs inside the fiber.

Closes GH-21529
* PHP-8.4:
  Fix GH-19983: GC assertion failure with fibers, generators and destructors
* PHP-8.5:
  Fix GH-19983: GC assertion failure with fibers, generators and destructors
Make the helpers private and remove a lot of unnecessary computation and code that was effectively dead.
The fix for this was to take hold of a pointer of the bucket, something that should not be done as it causes memory corruptions

Closes GH-21532, GH-21520, GH-21499
* PHP-8.5:
  Revert 49b2ff5 to fix bug GH-21499
@pull pull bot locked and limited conversation to collaborators Mar 26, 2026
@pull pull bot added the ⤵️ pull label Mar 26, 2026
@pull pull bot merged commit b3f2a3d into turkdevops:master Mar 26, 2026
1 check failed
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants