Closed
Bug 552014
Opened 16 years ago
Closed 16 years ago
IPDL: The OnMaybeDequeueOne task shouldn't run in a nested (wrt RPC) context
Categories
(Core :: IPC, defect)
Core
IPC
Tracking
()
RESOLVED
FIXED
| Tracking | Status | |
|---|---|---|
| status1.9.2 | --- | .4-fixed |
People
(Reporter: cjones, Assigned: cjones)
References
Details
(Whiteboard: [fixed-lorentz])
Attachments
(3 files, 1 obsolete file)
|
4.31 KB,
patch
|
bent.mozilla
:
review+
|
Details | Diff | Splinter Review |
|
6.56 KB,
patch
|
Details | Diff | Splinter Review | |
|
1.71 KB,
patch
|
jimm
:
review+
|
Details | Diff | Splinter Review |
Otherwise we can dequeue tasks at inopportune times. For example:
A B
------------ -----------
spin send async A()
[enqueue Dequeue()]
CallFoo()
[wait]
dequeue A
[wait] send async B()
dequeue B reply to Foo()
do stuff
spin nested loop
Dequeue() runs
Incall(replyToFoo)
abort()
| Assignee | ||
Comment 1•16 years ago
|
||
I should add that by "nested (wrt RPC)" I meant that it's actually OK (wrt RPC) if this tasks runs in a nested context, there just can't be other RPC code on the stack when it runs.
| Assignee | ||
Comment 2•16 years ago
|
||
Yay?
(sleeping to wait for nonce ... sorry)
(sleeping to wait for reply to R ... sorry)
###!!! [RPCChannel][Parent][/home/cjones/mozilla/mozilla-central/ipc/glue/RPCChannel.cpp:410] Assertion (call.is_rpc() && !call.is_reply()) failed. wrong message type (triggered by rpc)
RPCChannel 'backtrace':
[(0) out async PTestNestedLoops::Msg_R(actor=32545) ]
[(1) in async PTestNestedLoops::Msg_Nonce(actor=2147483647) ]
[(2) in rpc ???(actor=2147483647) ]
remote RPC stack guess: 0
deferred stack size: 0
out-of-turn RPC replies stack size: 0
Pending queue size: 0, front to back:
###!!! ABORT: wrong message type: file /home/cjones/mozilla/mozilla-central/ipc/glue/RPCChannel.cpp, line 625
Trace/breakpoint trap
Assignee: nobody → jones.chris.g
| Assignee | ||
Comment 3•16 years ago
|
||
(sleeping to wait for nonce ... sorry)
(sleeping to wait for reply to R ... sorry)
NOTE: child process received `Goodbye', closing down
TEST-PASS | TestNestedLoops | ok
Also passes ipdl/cxx and mochitest-ipcplugins.
Attachment #432235 -
Flags: review?(bent.mozilla)
Comment on attachment 432235 [details] [diff] [review]
Don't run OnMaybeDequeueOne from a nested context
>+ // bail here, but ensure that each at exit point
"at each exit point"
Attachment #432235 -
Flags: review?(bent.mozilla) → review+
| Assignee | ||
Comment 5•16 years ago
|
||
(In reply to comment #2)
> RPCChannel 'backtrace':
> [(0) out async PTestNestedLoops::Msg_R(actor=32545) ]
> [(1) in async PTestNestedLoops::Msg_Nonce(actor=2147483647) ]
> [(2) in rpc ???(actor=2147483647) ]
Oh crap ... this is the wrong stack. I think I know what the problem is, will try to fix in bug 533055.
| Assignee | ||
Comment 6•16 years ago
|
||
Now with hg add.
Attachment #432232 -
Attachment is obsolete: true
| Assignee | ||
Updated•16 years ago
|
Blocks: LorentzBeta1
| Assignee | ||
Comment 7•16 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/7828c0055b2d
http://hg.mozilla.org/mozilla-central/rev/29f2eed187b7
Status: NEW → RESOLVED
Closed: 16 years ago
Resolution: --- → FIXED
| Assignee | ||
Comment 8•16 years ago
|
||
Jim reports that this majorly regressed video perf on windows because we stop processing messages in nested event loops.
Status: RESOLVED → REOPENED
Resolution: FIXED → ---
| Assignee | ||
Comment 9•16 years ago
|
||
Still passes the test, so this should be OK.
Attachment #433507 -
Flags: review?(jmathies)
Comment 10•16 years ago
|
||
Comment on attachment 433507 [details] [diff] [review]
Treat RPC replies received in an event loop nested inside the one from which the call was made as if they had arrived out of order
http://hg.mozilla.org/mozilla-central/rev/a135d2f38e1c
Attachment #433507 -
Flags: review?(jmathies) → review+
Updated•16 years ago
|
Status: REOPENED → RESOLVED
Closed: 16 years ago → 16 years ago
Resolution: --- → FIXED
Comment 11•16 years ago
|
||
http://hg.mozilla.org/projects/firefox-lorentz/rev/d3625fa8b843
http://hg.mozilla.org/projects/firefox-lorentz/rev/42a28a2c2859
http://hg.mozilla.org/projects/firefox-lorentz/rev/8c0cdfdaa1bb
Whiteboard: [fixed-lorentz]
Comment 12•16 years ago
|
||
Blanket approval for Lorentz merge to mozilla-1.9.2
a=beltzner for 1.9.2.4 - please make sure to mark status1.9.2:.4-fixed
Comment 13•16 years ago
|
||
Merged into 1.9.2 at http://hg.mozilla.org/releases/mozilla-1.9.2/rev/84ba4d805430
status1.9.2:
--- → .4-fixed
You need to log in
before you can comment on or make changes to this bug.
Description
•