Closed Bug 1385252 Opened 7 years ago Closed 7 years ago

Prevent shutdown crashes from the preallocated process

Categories

(Core :: DOM: Content Processes, defect)

defect
Not set
normal

Tracking

()

RESOLVED FIXED

People

(Reporter: gkrizsanits, Assigned: gkrizsanits)

References

Details

(Keywords: nightly-community, topcrash)

Crash Data

Attachments

(1 file)

Blocks: 1385249
(In reply to Blake Kaplan (:mrbkap) from comment #26) > Comment on attachment 8890877 [details] [diff] [review] > ppm shutdownfix. v1 > > Review of attachment 8890877 [details] [diff] [review]: > ----------------------------------------------------------------- > ::: dom/ipc/PreallocatedProcessManager.cpp > @@ +134,5 @@ > > os->RemoveObserver(this, "profile-change-teardown"); > > } > > + // Let's prevent any new preallocated processes to start, but also, > > + // we should let the ConentParent to handle the shutdown of the existing > > + // process at this point. > > "Let's prevent any new preallocated processes from starting." > "ContentParent". Thanks :) > > Do we have to worry about the strong ref to mPreallocatedProcess not getting > cleared any more and holding the ContentParent alive through shutdown? So this is a great question. I thought about this, we have a ClearOnShutdown(&sSingleton); on the preallocated process manager which should clear that reference soon after we hit this code, so it should not be a problem I think. The alternative approach would be to keep the the "ipc:content-shutdown" listener and let that reset the reference, when it detects that the child process is gone. Then later we have to clean that listener too, but I think I could do that in the "xpcom-shutdown" and the rest during "profile-change-teardown". Would you prefer that approach? Or should I keep the original one?
Flags: needinfo?(mrbkap)
(In reply to Gabor Krizsanits [:krizsa :gabor] from comment #1) > So this is a great question. I thought about this, we have a > ClearOnShutdown(&sSingleton); on the preallocated process manager which > should clear that reference soon after we hit this code, so it should not be > a problem I think. I completely forgot about that ClearOnShutdown! I think that's fine (maybe just add a comment somewhere that we're relying on it near the call to Shutdown() in the xpcom-shutdown case. I can r+ the patch in the other bug if you'd like or re-attach it here and I'll stamp it here.
Flags: needinfo?(mrbkap) → needinfo?(gkrizsanits)
(In reply to Blake Kaplan (:mrbkap) from comment #2) > (In reply to Gabor Krizsanits [:krizsa :gabor] from comment #1) > > So this is a great question. I thought about this, we have a > > ClearOnShutdown(&sSingleton); on the preallocated process manager which > > should clear that reference soon after we hit this code, so it should not be > > a problem I think. > > I completely forgot about that ClearOnShutdown! I think that's fine (maybe > just add a comment somewhere that we're relying on it near the call to > Shutdown() in the xpcom-shutdown case. I can r+ the patch in the other bug > if you'd like or re-attach it here and I'll stamp it here. Yeah I think it's really not obvious so it should be mentioned in the comment. (I hope I have not added any extra typos this time...)
Assignee: nobody → gkrizsanits
Flags: needinfo?(gkrizsanits)
Attachment #8891936 - Flags: review?(mrbkap)
Comment on attachment 8891936 [details] [diff] [review] ppm shutdown fix. v2 Looks good.
Attachment #8891936 - Flags: review?(mrbkap) → review+
I accidentally landed it under Bug 1363601 because I forgot to update the patch comment after moving it over here :(
Status: NEW → RESOLVED
Closed: 7 years ago
Resolution: --- → FIXED
Crash Signature: [@ mozilla::ipc::MessageChannel::Clear | mozilla::ipc::MessageChannel::~MessageChannel | mozilla::dom::PContentParent::~PContentParent ] [@ mozilla::dom::ContentParent::~ContentParent ]
See Also: → 1363601
See Also: → 1423261
Depends on: 1349699
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: