Closed Bug 398892 Opened 17 years ago Closed 7 years ago

Reloading about:bloat causes negative nsRunnable leaks

Categories

(Core :: Networking, defect, P5)

x86
macOS
defect

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: jruderman, Unassigned)

Details

(Keywords: memory-leak, Whiteboard: [necko-would-take])

Attachments

(1 file)

Steps to reproduce:
1. Run a debug build with XPCOM_MEM_LEAK_LOG=2
2. Load about:bloat
3. Reload a bunch of times, quickly (with Cmd+R)
4. Quit.

Result: trace-refcnt reports that a negative number of nsRunnables remain at shutdown.  Sometimes, other objects have leaked, too.
It looks like there's an nsRunnable implementation somewhere that doesn't log its initial AddRef -- probably in increments mRefCnt manually or assigns 1 to it.  I logged all the AddRef/Release stacks for nsRunnable objects, and there were a bunch that got only AddRef to 2, Release to 1, Release to 0, without getting the initial AddRef to 1.  Unfortunately, none of the stacks tell anything about what type of nsRunnable it is, except... that the weird thing is that the pointers of the problematic nsRunnables are all very close together, and are all replayed multiple times for nsRunnable instances.  The other uses of these pointers are all nsTimerEvents.

This could just be something that's not threadsafe about the nsTraceRefcnt logging code, though. 
See also bug 610094.
Whiteboard: [necko-would-take]
Bulk change to priority: https://bugzilla.mozilla.org/show_bug.cgi?id=1399258
Priority: -- → P5
I removed about:bloat.
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → WORKSFORME
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Creator:
Created:
Updated:
Size: