Open Bug 450812 Opened 12 years ago Updated 9 years ago

nsExceptionManager objects destroyed long before threads are

Categories

(Core :: XPCOM, defect)

x86
macOS
defect
Not set

Tracking

()

mozilla1.9.1a2

People

(Reporter: sdwilsh, Unassigned)

References

Details

Attachments

(1 file)

nsExcpetionService releases all nsExceptionManagers during xpcom-shutdown.  The problem is that threads are not shutdown until xpcom-shutdown-threads, so the nsExceptionMnager object is released before the thread would normally free it.

There are two possible solutions here:
1) Add a new topic that runs after xpcom-shutdown-threads called something like xpcom-all-threads-shutdown and the nsExceptionService listens to.
2) Move nsExceptionService's shutodwn code to NS_ShutdownXPCOM like the timer service and thread manager.

I'm going to implement (1) for the time being to unblock myself.  I'll need some help if we were to do (2).
Attached patch v0.1Splinter Review
This doesn't actually pass make check.  There are some weird errors that I don't really understand :(
Blocks: 450913
No longer blocks: 429988
Assignee: sdwilsh → nobody
Status: ASSIGNED → NEW
Duplicate of this bug: 603509
Duplicate of this bug: 567560
Duping some other bugs here, since this at least has a swing at a patch....  We should figure this out, though, since it prevents bug 570619 from doing the Right Thing.
I threw this at a try run, and it was all green except for known oranges.  Shawn, do you recall at all what the errors you saw were?  I think this is blocking the httpd.js gc() work, so I'd like to clear this bug up.
Uh, no idea to be honest.  Turns out threads + JS was a bad idea and I didn't need this patch because we ended up not going with that approach.
You need to log in before you can comment on or make changes to this bug.