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.
It took us a few weeks to nail down this repro because it was so incredibly finicky.
I recently switched from an execution context which ran one eval with all the code into it, into multiple evals on the same context. Because of this, we ran into this crucial and very hard to isolate issue where the GC callback was happening between
IsolateData::Init
andIsolateData::Set
-- when the GC callback was hit, the 'max memory' field was 0 meaning the check ofcurrent memory > max memory
would always trigger.In this incredibly hard to reproduce (we were never able to create a mini_racer cross-machine portable repro) case, it would erroneously report an out of memory.
The fix for this is to move the setter and callback right next to the data init call.
We've run this change on the production servers and verified all the live repro cases we had previously and by the time you take a look at this, it will have baked for a while.
Please let me know if you have any questions.