Closed Bug 1515216 Opened 10 months ago Closed 6 months ago

Intermittent leakcheck | tab 48 bytes leaked (DOMGCSliceCallback::InterSliceGCRunner, nsTArray_base)

Categories

(Core :: XPCOM, defect, P5)

defect

Tracking

()

RESOLVED FIXED
mozilla68
Tracking Status
firefox-esr60 --- wontfix
firefox66 --- wontfix
firefox67 --- wontfix
firefox68 --- fixed

People

(Reporter: intermittent-bug-filer, Assigned: smaug)

References

Details

(Keywords: intermittent-failure, memory-leak)

Attachments

(1 file)

Filed by: btara [at] mozilla.com

https://treeherder.mozilla.org/logviewer.html#?job_id=217790150&repo=autoland

https://queue.taskcluster.net/v1/task/BpRxovFCTpyRZs9NJV33Zw/runs/0/artifacts/public/logs/live_backing.log

14:58:07     INFO - nsTraceRefcnt::DumpStatistics: 1134 entries
14:58:07     INFO - TEST-INFO | leakcheck | tab leaked 1 DOMGCSliceCallback::InterSliceGCRunner
14:58:07     INFO - TEST-INFO | leakcheck | tab leaked 1 nsTArray_base
14:58:07     INFO - TEST-UNEXPECTED-FAIL | leakcheck | tab 48 bytes leaked (DOMGCSliceCallback::InterSliceGCRunner, nsTArray_base)
14:58:07     INFO - 
14:58:07     INFO - leakcheck | Processing leak log file /var/folders/vb/9v_3dvdd6x188q0l5l3_wdb000000x/T/tmp6YDLyR.mozrunner/runtests_leaks_tab_pid850.log
14:58:07     INFO - 
14:58:07     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 850
14:58:07     INFO - 
14:58:07     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
14:58:07     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
14:58:07     INFO -    0 |TOTAL                                 |       29        0|  544896        0|
14:58:07     INFO - 
14:58:07     INFO - nsTraceRefcnt::DumpStatistics: 997 entries
14:58:07     INFO - TEST-PASS | leakcheck | tab no leaks detected!
14:58:07     INFO - leakcheck | Processing leak log file /var/folders/vb/9v_3dvdd6x188q0l5l3_wdb000000x/T/tmp6YDLyR.mozrunner/runtests_leaks_tab_pid851.log
14:58:08     INFO - 
14:58:08     INFO - == BloatView: ALL (cumulative) LEAK AND BLOAT STATISTICS, tab process 851
14:58:08     INFO - 
14:58:08     INFO -      |<----------------Class--------------->|<-----Bytes------>|<----Objects---->|
14:58:08     INFO -      |                                      | Per-Inst   Leaked|   Total      Rem|
14:58:08     INFO -    0 |TOTAL                                 |       37        0| 3177665        0|
14:58:08     INFO - 
14:58:08     INFO - nsTraceRefcnt::DumpStatistics: 1188 entries
14:58:08     INFO - TEST-PASS | leakcheck | tab no leaks detected!
14:58:08     INFO - leakcheck | Processing leak log file /var/folders/vb/9v_3dvdd6x188q0l5l3_wdb000000x/T/tmp6YDLyR.mozrunner/runtests_leaks_tab_pid852.log
Duplicate of this bug: 1427525

Interestingly, this leak seems to happen fairly consistently in web platform tests. To trigger this, you have to disable leak-threshold everywhere for WPT, by renaming its usage in the harness to something else. It seems to happen on various encoding directories that have tons of tests, like /encoding/legacy-mb-japanese/euc-jp.

Status: NEW → RESOLVED
Closed: 7 months ago
Resolution: --- → INCOMPLETE

I think I see the issue.
We end up adding the same runnable multiple times to the array, but remove only once.

Status: RESOLVED → REOPENED
Resolution: INCOMPLETE → ---

Will use the same naming as nsINode use for adding nsIMutationObserver "*UnlessExists"

(and as far as I see, the leak is just temporary during runtime. The array is cleared when RefreshDriver runs, but that may not happen during shutdown.)

Pushed by opettay@mozilla.com:
https://hg.mozilla.org/integration/autoland/rev/debaeed47505
ensure IdleTaskRunners are added only once to RefreshDriver's idle runnable list, r=mccr8
Status: REOPENED → RESOLVED
Closed: 7 months ago6 months ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla68

Are there wpt leak annotations we can remove now?

Flags: needinfo?(continuation)
Keywords: memory-leak

It doesn't look like it. This leak was rare enough that it probably wasn't getting autowhitelisted by the import scripts.

Flags: needinfo?(continuation)

Yeah, I just happened to notice this once in a try run.

You need to log in before you can comment on or make changes to this bug.