Closed Bug 1306086 Opened 8 years ago Closed 7 years ago

Add assertions checking for excessive calls to TraceChildren during cycle collection

Categories

(Core :: XPCOM, defect)

51 Branch
defect
Not set
normal

Tracking

()

RESOLVED INCOMPLETE
Tracking Status
firefox50 --- unaffected
firefox51 --- affected
firefox52 --- affected

People

(Reporter: mccr8, Assigned: mccr8)

References

Details

As seen in bug 1301301, adding a new GC kind can cause cycle collection to get very slow if the new GC thing gets repeatedly traced by different objects. We should add some regression testing to make sure we aren't spending too much time on these objects. My current idea for checking this is to track the ratio of Traversed GC things to calls to TraceChildren. I have spun this into a separate patch because selecting a ratio is tricky because you want it to fail in bad cases but not fail in good cases. I should also add debugging logging that prints out the ration to make it easier to figure out what is going on when the threshold is exceeded.
I retriggered some of the original tests that caused issues, but they didn't go orange. I'll try some more.
https://treeherder.mozilla.org/#/jobs?repo=try&revision=088f123387a4
This attempt to retrigger did not find any either:
  https://treeherder.mozilla.org/#/jobs?repo=try&revision=cd092dfb6bbb
I did managed to trigger the failures on the weird video test, but my debugging output does not appear in the log.
Unfortunately, I don't think this is fixable. The ratio seems like it is all over the place.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → INCOMPLETE
You need to log in before you can comment on or make changes to this bug.