Closed
Bug 552014
Opened 14 years ago
Closed 14 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•14 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•14 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•14 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•14 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•14 years ago
|
||
Now with hg add.
Attachment #432232 -
Attachment is obsolete: true
Assignee | ||
Updated•14 years ago
|
Blocks: LorentzBeta1
Assignee | ||
Comment 7•14 years ago
|
||
http://hg.mozilla.org/mozilla-central/rev/7828c0055b2d http://hg.mozilla.org/mozilla-central/rev/29f2eed187b7
Status: NEW → RESOLVED
Closed: 14 years ago
Resolution: --- → FIXED
Assignee | ||
Comment 8•14 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•14 years ago
|
||
Still passes the test, so this should be OK.
Attachment #433507 -
Flags: review?(jmathies)
Comment 10•14 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•14 years ago
|
Status: REOPENED → RESOLVED
Closed: 14 years ago → 14 years ago
Resolution: --- → FIXED
Comment 11•14 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•14 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•14 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
•