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)

defect
Not set
normal

Tracking

()

RESOLVED WORKSFORME

People

(Reporter: cjones, Unassigned)

Details

Attachments

(3 files)

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.
Attached patch Test case (deleted) — Splinter Review
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.
Going to ride this patch along with this bug, r=trivial.
Attachment #428547 - Flags: review?(benjamin) → review+

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)

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.

Attachment

General

Created:
Updated:
Size: