Open Bug 1380785 Opened 7 years ago Updated 2 years ago

nsProfiler can fail to gather profiles for content processes that have just started to shut down

Categories

(Core :: Gecko Profiler, defect, P3)

defect

Tracking

()

Tracking Status
firefox57 --- fix-optional

People

(Reporter: mconley, Unassigned)

References

(Blocks 1 open bug)

Details

I noticed this while working on bug 1374333. The tps Talos test opens a new window, loads a bunch of tabs in it, switches between those tabs, records timing results and then exits. Talos attempts to gather profiles after timing is recorded, but the tps test was closing the tabs and window before the profile was done being gathered. I suspect there is a race where the ProfilerParent::SendGatherProfile Promise can fail if the shutdown message has been sent by ContentParent. This means that exit profiles are on their way, but the gatherer is going to hear about the rejected Promises first and decrement the mPendingProfiles counter (with empty profiles) before the exit profiles can arrive. I worked around this for tps by adding some Talos goop to wait for the profile to finish being collected before cleaning up the window, but I can see this (rare) case probably biting us in the wild and wanted to get it on file.
Priority: -- → P3
Blocks: 1431175
Severity: normal → S3
You need to log in before you can comment on or make changes to this bug.