We have a lot of intermittent oranges (bug 1224831, 1223508, etc) in GC code marking JitActivations. The problem is JitActivation's constructor calling JSCompartment::wrap(), which can trigger GC, while the stack is in an invalid state between the constructor linking the activation and entering JIT code.
Created attachment 8688060 [details] [diff] [review] Patch This patch moves the AutoEntryMonitor code out of Activation and into a new class, ActivationEntryMonitor. This way, we call compartment->wrap() before we start modifying the activation list etc. I considered using AutoSuppressGC instead of this, but it's possible we'll end up walking the stack for other reasons, so just moving the code out of the constructor seemed safest.
Attachment #8688060 - Flags: review?(nfitzgerald)
Attachment #8688060 - Flags: review?(nfitzgerald) → review+
Status: ASSIGNED → RESOLVED
Last Resolved: 3 years ago
status-firefox45: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla45
You need to log in before you can comment on or make changes to this bug.