Open Bug 1790360 Opened 2 years ago Updated 2 years ago

Verify if we can interrupt GC if mozilla::ipc::ProcessChild::ExpectingShutdown()

Categories

(Core :: DOM: Content Processes, task)

task

Tracking

()

People

(Reporter: jstutte, Unassigned)

References

(Blocks 1 open bug)

Details

https://crash-stats.mozilla.org/report/index/8df6bbb4-eb7a-4e9e-b318-f46710220908 is a case of running a JS GC: nsJSContext::RunIncrementalGCSlice.

We assume that we see here a situation where the GC is already running on the main thread when NotifiedImpendingShutdown happens on the IPC I/O thread. We want to interrupt this run to ensure, the scheduled shutdown message will be executed.

It seems from bug 1789425 comment 10 that we have some infrastructure for interrupting GC we could use here.

See Also: → 1789425
Summary: Verify if we can interrupt CC if mozilla::ipc::ProcessChild::ExpectingShutdown() → Verify if we can interrupt GC if mozilla::ipc::ProcessChild::ExpectingShutdown()

If we need to worry about correctness in case of leak checking: I think in those cases we do a full XPCOM shutdown and that implies a FinishAnyIncrementalGCInProgress(). So IIUC we should just find a way to interrupt an ongoing GC once, but not to make it bail out always if we are expecting shutdown.

:mccr8, am I getting this right?

Flags: needinfo?(continuation)

Yes, that sounds right. The shutdown GC mechanism exists outside of the regular GC scheduler in the browser, and happens long after IPC is shut down entirely.

Flags: needinfo?(continuation)
You need to log in before you can comment on or make changes to this bug.