Closed Bug 1274886 Opened 3 years ago Closed 3 years ago

Abort in IPCError-content | (msgtype=0x800017,name=???) Route error: message sent to unknown actor ID

Categories

(Core :: Networking, defect, critical)

Unspecified
Windows 10
defect
Not set
critical

Tracking

()

RESOLVED FIXED
mozilla50
Tracking Status
e10s m9+ ---
firefox48 --- fixed
firefox49 --- fixed
firefox50 --- fixed

People

(Reporter: njn, Assigned: valentin)

References

Details

(Keywords: crash, Whiteboard: [necko-active])

Crash Data

Attachments

(1 file)

Well, the message seems to be PHttpChannel::Redirect1Begin. It seems like this message is being sent by the parent. By the time it's received in the child, the HTTP channel actor has been destroyed. This could happen because the child side already did Send__delete__. Or the channel could be getting destroyed because the process is shutting down. I don't see any evidence that this is happening during shutdown, though.

I'll send this to Necko.
Component: IPC → Networking
Flags: needinfo?(wmccloskey)
See Also: → 1277582
(In reply to Bill McCloskey (:billm) from comment #1)
> Well, the message seems to be PHttpChannel::Redirect1Begin. It seems like
> this message is being sent by the parent. By the time it's received in the
> child, the HTTP channel actor has been destroyed. This could happen because
> the child side already did Send__delete__. Or the channel could be getting
> destroyed because the process is shutting down. I don't see any evidence
> that this is happening during shutdown, though.
> 
> I'll send this to Necko.

So, right now HttpChannelParent calls SendDeleteSelf() [step 1], which the child receives, and processes then calls Send__delete__(this) [step 2], which will trigger HttpChannelParent::ActorDestroy() being called - which sets mIPCClosed = true [step 3].

Should the parent avoid to sending messages after [step 1]?
Flags: needinfo?(wmccloskey)
Correct, the parent needs to avoid sending any messages after SendDeleteSelf.
Flags: needinfo?(wmccloskey)
Valentin, the e10s team felt this could cause problems down the road if popular sites manage to trigger it. Hence we're thinking it should block e10s rollout. It also sounds like it should be pretty easy to fix. Does the necko team concur and if so, can you all pick this up and get it fixed and uplifted to 48?
Flags: needinfo?(valentin.gosu)
Definitely. I'll upload a patch and nominate 48 after review. Thanks.
Assignee: nobody → valentin.gosu
Flags: needinfo?(valentin.gosu)
Whiteboard: [necko-active]
MozReview-Commit-ID: 4EE91hvErM7
Attachment #8761691 - Flags: review?(jduell.mcbugs)
Comment on attachment 8761691 [details] [diff] [review]
Don't send any more IPC messages after calling PHttpChannelParent::SendDeleteSelf()

Review of attachment 8761691 [details] [diff] [review]:
-----------------------------------------------------------------

Nominating for uplift.  Simple patch that prevents an e10s-only crash.
Attachment #8761691 - Flags: review?(jduell.mcbugs)
Attachment #8761691 - Flags: review+
Attachment #8761691 - Flags: approval-mozilla-beta?
Attachment #8761691 - Flags: approval-mozilla-aurora?
https://hg.mozilla.org/integration/mozilla-inbound/rev/c109d0b45e8aa440b588c1a862b0ca5b83ee050e
Bug 1274886 - Don't send any more IPC messages after calling PHttpChannelParent::SendDeleteSelf() r=jduell
https://hg.mozilla.org/mozilla-central/rev/c109d0b45e8a
Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla50
Jason, could you fill the uplift form? I cannot evaluate the impact without it.
Thanks
Flags: needinfo?(jduell.mcbugs)
Comment on attachment 8761691 [details] [diff] [review]
Don't send any more IPC messages after calling PHttpChannelParent::SendDeleteSelf()

Approval Request Comment
[Feature/regressing bug #]: old
[User impact if declined]:  e10s crashes
[Describe test coverage new/current, TreeHerder]: lots of existing tests
[Risks and why]:  extremely low
[String/UUID change made/needed]: none
Flags: needinfo?(jduell.mcbugs)
Comment on attachment 8761691 [details] [diff] [review]
Don't send any more IPC messages after calling PHttpChannelParent::SendDeleteSelf()

Fix a crash, taking it
Should be in 48 beta 3
Attachment #8761691 - Flags: approval-mozilla-beta?
Attachment #8761691 - Flags: approval-mozilla-beta+
Attachment #8761691 - Flags: approval-mozilla-aurora?
Attachment #8761691 - Flags: approval-mozilla-aurora+
You need to log in before you can comment on or make changes to this bug.