Closed Bug 1122045 Opened 9 years ago Closed 8 years ago

Leaks in MessageLoop::MessageLoop

Categories

(Core :: IPC, defect, P2)

defect

Tracking

()

RESOLVED DUPLICATE of bug 1215265
Tracking Status
e10s + ---

People

(Reporter: mccr8, Unassigned)

References

(Blocks 1 open bug)

Details

(Whiteboard: [MemShrink:P2])

Attachments

(1 file)

Attached file example leak stacks
The stacks are slightly odd here, but it looks like there's some kind of leak involving MessageLoop and queues.  This was detected by LSan.  The odd thing is that it is only affecting some child processes, in a few non-e10s Mochitests, plus e10s bc1, bc2 and bc3.  I'll try to narrow down locally which tests are actually triggering this leak.

try run: https://treeherder.mozilla.org/#/jobs?repo=try&revision=28013e3191a4
The odd stacks are the direct leaks, which seem to be saying that doing a ++ of a mozilla::Atomic is allocating a std::Deque.
(In reply to Andrew McCreight [:mccr8] from comment #1)
> The odd stacks are the direct leaks, which seem to be saying that doing a ++
> of a mozilla::Atomic is allocating a std::Deque.

The next field is |TaskQueue work_queue_;|, so I suppose the default ctor for queues is somehow calling queue ++, which is why it is showing up like that.
Whiteboard: [MemShrink]
Version: 32 Branch → Trunk
These leaks also show up without bug 1090570.  They likely aren't showing up in the e10s M1-M5 because LSan isn't running.
Whiteboard: [MemShrink] → [MemShrink:P2]
No longer blocks: 1089816
This is still happening.

Bill said these are probably due to a Chromium Thread leaking, and that I could log the name of the threads when they are created to figure out what is leaking. I'm going to try that.
tracking-e10s: --- → ?
I added some logging for the Chromium base::Thread, and we leak one iff we leak a PImageBridgeChild. The leaked threads also seem to be named ImageBridgeChild (aside from Chrome_ChildThread and ProcessHangMonitor that seem to "leak" in tests where we crash the process), so for now I'm going to assume these leaks are all somehow related to ImageBridgeChild. The work queue data structures must not be reachable from the stack like the other ImageBridgeChild structures seem to be, and so they show up in the LSan log.
Depends on: 1117203
Priority: -- → P2
I can remove the MessageLoop::MessageLoop, base::WaitableEvent::TimedWait and MessageLoop::PostTask_Helper suppressions now, so I'm going to call this a dupe of bug 1215265.
Status: NEW → RESOLVED
Closed: 8 years ago
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: