Mitigate stack-overflow issue take 2 #302
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We had a tentative fix for large stack consumption for setjmp by #235, but it's just a workaround by increasing stack size and not a permanent fix. This PR improves the stack consumption for setjmp, which is the root problem, by allocating buffer in heap instead of stack space.
The fix is going to be applied to the CRuby head, so 3.2 package still has the same issue yet. The tentative larger stack size fix broke some of mobile browsers due to OOM?, so this PR also makes the fiber stack size in 3.2 packages smaller to avoid crash. (note that head package no longer needs larger stack size)
Related issues:
CRuby PR: ruby/ruby#8902