Repository navigation
Conversation
05a744b to
fb6a7d8
Compare
|
I believe that this is fixed by 8.4.27. Could you confirm? |
|
I don't think so, I can still reproduce the issue in 8.4 and 8.5. |
|
Could you share the exact command you use to execute the reproducer (preferably with |
|
I ran the reproducer with:
The test passed, but it exhausted memory in Could you point me to the change in 8.4.27 that fixes this? |
|
I also verified the original reproducer with and without this change on PHP 8.4. Without the fix, it fails while allocating GC traversal storage; with the fix, it gets past that point. This confirms the fix addresses the issue I also checked the PHP-8.4 branch and the 8.4.27 tag: both still use emalloc() for GC traversal storage, so this fix is not included there yet. The change in this PR replaces it with pemalloc(). |
The graceful OOM handling introduced in 3584a98 is supposed to fix this. The OOM you are observing is not an issue if this doesn't interrupt the GC anymore. |
Fixes #23586 by allocating GC traversal storage outside the request memory limit and freeing it on normal return or bailout. Adds regression coverage for memory exhaustion, wide graphs, and destructor bailouts.