Closed Bug 1322758 Opened 8 years ago Closed 7 years ago

ProfileGatherer might resolve before all subprocesses have finished gathering

Categories

(Core :: Gecko Profiler, defect)

50 Branch
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla53
Tracking Status
firefox53 --- fixed

People

(Reporter: mconley, Unassigned)

References

Details

Attachments

(1 file)

Consider this scenario: Along with the main process, we have 2 content processes, and 1 plugin process.

All processes are profiling, and then the ProfileGatherer is invoked to try to do an async gather.

The ProfileGatherer sends out an observer notification asking "hey, who's going to give me a profile", and the 3 subprocesses respond "I will", giving us a count of 3. Each actor in the parent for those subprocesses is then responsible for doing the necessary messaging to get the profiles sent up to the parent.

So Content Process 1 sends up its profile, and ContentParent goes, "Okay, got my profile", so the ProfileGatherer decrements its internal counter.

Then the Plugin Process sends up its profile, and the ProfileGatherer decrements its internal counter.

We're still waiting for Content Process 2's profile at this point. But while we're waiting, Content Process 1 exits. When it does that, it tells the ProfileGatherer - "Here, hold on to this, since I'm going away" (OOPExitProfile), and then we decrement the counter _again_.

Now the counter is at 0, and ProfileGatherer then requests the profiles from everybody - _even though_ Content Process 2 hasn't yet sent up its profile.

So we miss out on Content Process 2's profile in this scenario. This case is what we're often hitting when dealing with tps regressions for e10s-multi. We should fix this so that we can get some useful profiles here.
Comment on attachment 8817700 [details]
Bug 1322758 - Stop decrementing ProfileGatherer counter when receiving an exit profile.

https://reviewboard.mozilla.org/r/97932/#review99526

Your reasoning makes sense.
Attachment #8817700 - Flags: review?(mstange) → review+
Pushed by mconley@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/dc7e50632df1
Stop decrementing ProfileGatherer counter when receiving an exit profile. r=mstange
https://hg.mozilla.org/mozilla-central/rev/dc7e50632df1
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: