Closed
Bug 548069
Opened 15 years ago
Closed 3 years ago
IPDL: "State divergence" errors reported in cases where synchronous messages prevent it
Categories
(Core :: IPC, defect)
Core
IPC
Tracking
()
RESOLVED
WORKSFORME
People
(Reporter: cjones, Unassigned)
Details
Attachments
(3 files)
(deleted),
patch
|
Details | Diff | Splinter Review | |
(deleted),
patch
|
benjamin
:
review+
|
Details | Diff | Splinter Review |
(deleted),
patch
|
Details | Diff | Splinter Review |
The basic problem is, two racing async messages can cause parent/child state to diverge for >1 steps if the two initial diverging states allow parent/child to send messages which might allow state to change again, before the other side's racing message has been received. Currently, the type checker ensures that if sending a racing message could cause the parent to transition to state P, then the parent can only receive messages in state P (and similarly for the child). (|discard| is a partial workaround for this problem.) However, there's an important case in which synchronous messages prevent state divergence; rather than describe it, I'll post a test protocol. The type checker should account for this.
Reporter | ||
Comment 1•15 years ago
|
||
State "S3" is what makes the current IPDL compiler complain: it allows the child to send _B or call _R from a state that is reached if A_ and _R race from state S1. The bug is that if A_ and _R *did* race, then because state S2 forces the parent to wait on the child, and because _R is rpc
* parent must receive _R before sending any other message (see state S2)
* child must receive A_ while waiting on the reply to _R
* child must receive A_ before the next message from the parent
This means that the error IPDL reports is too conservative, because child/parent state can't diverge on an A_/_R race.
Reporter | ||
Comment 2•15 years ago
|
||
Attachment #428547 -
Flags: review?(benjamin)
Reporter | ||
Comment 3•15 years ago
|
||
Going to ride this patch along with this bug, r=trivial.
Updated•15 years ago
|
Attachment #428547 -
Flags: review?(benjamin) → review+
Comment 4•3 years ago
|
||
The bug assignee didn't login in Bugzilla in the last 7 months.
:jld, could you have a look please?
For more information, please visit auto_nag documentation.
Assignee: cjones.bugs → nobody
Flags: needinfo?(jld)
Comment 5•3 years ago
|
||
Actor states no longer exist.
Status: NEW → RESOLVED
Closed: 3 years ago
Flags: needinfo?(jld)
Resolution: --- → WORKSFORME
You need to log in
before you can comment on or make changes to this bug.
Description
•