New issue
Advanced search Search tips

Issue 754755 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Jul 22
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 2
Type: Bug

Blocking:
issue 738275



Sign in to add a comment

IPCSyncChannelTest.RestrictedDispatch failed on Fuchsia in ipc_tests

Project Member Reported by scottmg@chromium.org, Aug 11 2017

Issue description

https://build.chromium.org/p/chromium.fyi/builders/Fuchsia/builds/8642

[00009.438] 02834.02895> [ RUN      ] IPCSyncChannelTest.RestrictedDispatch
[00009.438] 02834.02895> [3:1741421360:0811/041544.306385:8289862:ERROR:ipc_sync_channel_unittest.cc(1279)] Send failed to dispatch incoming message on same channel
[00009.438] 02834.02895> [3:1741421360:0811/041544.332067:8315090:ERROR:ipc_sync_channel_unittest.cc(1301)] Send dispatched message from restricted channel
[00009.438] 02834.02895> ../../ipc/ipc_sync_channel_unittest.cc:1378: Failure
[00009.438] 02834.02895>       Expected: 4
[00009.438] 02834.02895> To be equal to: success
[00009.438] 02834.02895>       Which is: 2
[00009.438] 02834.02895> [  FAILED  ] IPCSyncChannelTest.RestrictedDispatch (487 ms)
 

Comment 2 by w...@chromium.org, Sep 1 2017

Cc: scottmg@chromium.org
Inspecting the test code, it appears that it is making the assumption that all Chrome IPC is serialized via the IPC thread, so that if we post a Task to the IPC thread and signal an event, then when we see the event the IPC must have been received by the peer (see https://cs.chromium.org/chromium/src/ipc/ipc_sync_channel_unittest.cc?type=cs&l=1189).

Now that Chrome IPC runs on Mojo, the Mojo and Chrome IPC threads differ:
- Mojo's is a TestIOThread created at https://cs.chromium.org/chromium/src/ipc/run_all_unittests.cc?dr&l=21
- Chrome's is a member of the Worker test helper class (see https://cs.chromium.org/chromium/src/ipc/ipc_sync_channel_unittest.cc?gsn=ipc_thread&l=251).

So I think that this test is now inherently racey, and needs updating to post a message to the Worker ipc_thread_ that then posts a message to the (process-wide) Mojo IPC thread to signal the event.

Comment 3 by w...@chromium.org, Sep 1 2017

Except that this is in-process IPC, which I think Mojo can shortcut to pass directly between threads?

Comment 4 by roc...@chromium.org, Sep 18 2017

Yeah, Mojo's IPC thread is never relevant for in-process message passing.


Comment 5 by w...@chromium.org, Feb 26 2018

Labels: -Pri-3 M-66 Pri-2

Comment 6 by w...@chromium.org, Mar 6 2018

Labels: -M-66 M-67

Comment 7 by w...@chromium.org, May 23 2018

Labels: -M-67 M-69
Status: WontFix (was: Untriaged)
No sign of this flaking any more, so closing as obsolete.

Sign in to add a comment