Closed Bug 1033577 Opened 10 years ago Closed 7 years ago

Re-enable Nuwa's exit-time assertion that the sAllThreads list is empty

Categories

(Core :: IPC, defect)

Other Branch
All
Gonk (Firefox OS)
defect
Not set
normal

Tracking

()

RESOLVED WONTFIX

People

(Reporter: bjacob, Unassigned)

References

Details

MFBT LinkedList's destructor asserts that the list is empty. Nuwa has a global LinkedList of all threads, sAllThreads. Consequently, Nuwa used to assert on exit that all threads had previously been destroyed. That assertion was intermittently (near permanently) failing as we don't properly ensure that that is the case.

In bug 1008254, we disabled that assertion by clearing the list just before it would run. See the AllThreadsListType destructor. This also dumps the list of outstanding threads on logcat.

Assuming that that assertion ever made sense, we should go over that list (which randomly varies between runs) and fix all threads to be properly destroy them before we hit global destructors.

Will file individual bugs for each such thread.
Depends on: 1033589
Depends on: 1033597
QA Whiteboard: tlee@mozilla.com, pwang@mozilla.com,
Depends on: 1033601
QA Whiteboard: tlee@mozilla.com, pwang@mozilla.com,
Depends on: 1033604
Depends on: 1033606
Depends on: 1033608
Depends on: 1033610
This is now reported on logcat (even in release builds), and logcat as you know is now downloadable directly from tbpl (see that emulator-5554.log link in the bottom pane ) so it's very easy to check the current status of this issue.

Sample log:

07-02 20:59:16.171   864   864 W Nuwa    : Threads remaining at exit:
07-02 20:59:16.181   864   864 W Nuwa    :   Chrome_ChildThr (origNativeThreadID=852 recreatedNativeThreadID=865)
07-02 20:59:16.181   864   864 W Nuwa    :   Analysis Helper (origNativeThreadID=853 recreatedNativeThreadID=866)
07-02 20:59:16.181   864   864 W Nuwa    :   Analysis Helper (origNativeThreadID=854 recreatedNativeThreadID=868)
07-02 20:59:16.181   864   864 W Nuwa    :   Analysis Helper (origNativeThreadID=855 recreatedNativeThreadID=869)
07-02 20:59:16.181   864   864 W Nuwa    :   Analysis Helper (origNativeThreadID=856 recreatedNativeThreadID=870)
07-02 20:59:16.181   864   864 W Nuwa    :   Analysis Helper (origNativeThreadID=857 recreatedNativeThreadID=871)
07-02 20:59:16.181   864   864 W Nuwa    :   Socket Thread (origNativeThreadID=858 recreatedNativeThreadID=872)
07-02 20:59:16.181   864   864 W Nuwa    :   MemoryPressure (origNativeThreadID=860 recreatedNativeThreadID=873)
07-02 20:59:16.181   864   864 W Nuwa    :   Timer (origNativeThreadID=861 recreatedNativeThreadID=874)
07-02 20:59:16.181   864   864 W Nuwa    :   ImageBridgeChil (origNativeThreadID=862 recreatedNativeThreadID=875)
07-02 20:59:16.181   864   864 W Nuwa    :   BufferMgrChild (origNativeThreadID=863 recreatedNativeThreadID=876)
07-02 20:59:16.191   864   864 W Nuwa    : total: 11 outstanding threads. Please fix them so they're destroyed before this point!
07-02 20:59:16.191   864   864 W Nuwa    : note: sThreadCount=11, sThreadFreezeCount=11
So I should have realized this at the time, but some of these threads are still around because we're leaking them ...

Once we fixed all of the dependent bugs (some of which are not yet filed) on bug 1038943 a lot of these will go away.
(In reply to Benoit Jacob [:bjacob] from comment #1)
> This is now reported on logcat (even in release builds), and logcat as you
> know is now downloadable directly from tbpl (see that emulator-5554.log link
> in the bottom pane ) so it's very easy to check the current status of this
> issue.

We appear to have changed something so that this doesn't show up in logcat anymore, unfortunately.
I removed the |clear()| call and pushed to try to run mochitest on debug build, but I don't see the failure or log. Would elaborate more on how to reproduce it?
Flags: needinfo?(bjacob)
It was an intermittend. Retrigger at least 10 times this test job on your try push on TBPL. If they are all green, we can consider removing it, though it would be nice to get a confirmation that the threads listed in comment 1 are indeed fixed --- maybe Kyle could comment on that.
Flags: needinfo?(bjacob)
Nuwa is gone after bug 1284674.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WONTFIX
You need to log in before you can comment on or make changes to this bug.