When a process dies, any outstanding endpoints that have not been opened will fail to be opened by IPDL. However, it still creates a transport object, and so we get a MessageChannel that assumes no error has occurred. The result is that no messages are ever sent, and the first sync message will cause a deadlock (as we'll wait for a reply that never comes).
Created attachment 8809241 [details] [diff] [review] fix This patch fixes MessageLink so that if the Transport is dead on arrivel, we fire off an error notification. I added a new OnChannelError function since the old one has an assert that would otherwise trigger. It might be okay to just remove that assert though.
Attachment #8809241 - Flags: review?(wmccloskey)
Attachment #8809241 - Flags: review?(wmccloskey) → review+
Pushed by email@example.com: https://hg.mozilla.org/integration/mozilla-inbound/rev/10f112105ab2 Fix MessageChannel when constructed with a broken Transport. (bug 1316473, r=billm)
Status: ASSIGNED → RESOLVED
Last Resolved: 2 years ago
status-firefox53: --- → fixed
Resolution: --- → FIXED
Target Milestone: --- → mozilla53
You need to log in before you can comment on or make changes to this bug.