MessageChannels deadlock when instantiated with broken transports

RESOLVED FIXED in Firefox 53

Status

()

Core
IPC
RESOLVED FIXED
2 years ago
2 years ago

People

(Reporter: dvander, Assigned: dvander)

Tracking

(Blocks: 1 bug)

unspecified
mozilla53
Points:
---
Dependency tree / graph

Firefox Tracking Flags

(firefox53 fixed)

Details

Attachments

(1 attachment)

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+

Comment 2

2 years ago
Pushed by danderson@mozilla.com:
https://hg.mozilla.org/integration/mozilla-inbound/rev/10f112105ab2
Fix MessageChannel when constructed with a broken Transport. (bug 1316473, r=billm)

Comment 3

2 years ago
bugherder
https://hg.mozilla.org/mozilla-central/rev/10f112105ab2
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.