New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 816606 link

Starred by 1 user

Issue metadata

Status: Duplicate
Merged: issue 816620
Owner:
Closed: Feb 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Fuchsia
Pri: 3
Type: Bug



Sign in to add a comment

IPCChannelMojoTest.SendFailAfterClose flaked under Fuchsia/x64/Release FYI bot

Project Member Reported by w...@chromium.org, Feb 26 2018

Issue description

Test failed in https://ci.chromium.org/buildbot/chromium.fyi/Fuchsia/14405 with a hang:

[00456.576] 08675.08701> Backtrace of threads of process 4327: ipc_tests__exec
[00456.576] 08675.08701> arch: x86_64
[00456.576] 08675.08701> 2 thread(s)
...

[00456.581] 08675.08701> <== Thread initial-thread[4370] ==>
...
#01: pc 0x69f159ff985b sp 0x6c11bd8455d8 (<vDSO>,0x685b)
#02: pc 0x69f159ff9579 sp 0x6c11bd8455e0 (<vDSO>,0x6579)
#03: pc 0x4eedc78db911 sp 0x6c11bd845600 (libc.so,0x3c911)
#04: pc 0x4eedc78af348 sp 0x6c11bd845640 (libc.so,0x10348)
#05: base::ConditionVariable::Wait() at ??:?
#06: base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) at ??:?
#07: base::WaitableEvent::Wait() at ??:?
#08: base::MessagePumpDefault::Run(base::MessagePump::Delegate*) at ??:?
#09: base::RunLoop::Run() at ??:?
#10: (anonymous namespace)::IPCChannelMojoTest_SendFailAfterClose_Test::TestBody() at ??:?
#11: testing::Test::Run() at ??:?
#12: testing::TestInfo::Run() at ??:?
#13: testing::TestCase::Run() at ??:?
#14: testing::internal::UnitTestImpl::RunAllTests() at ??:?
#15: testing::UnitTest::Run() at ??:?
#16: base::TestSuite::Run() at ??:?
#17: base::(anonymous namespace)::LaunchUnitTestsInternal(base::RepeatingCallback<int ()> const&, unsigned long, int, bool, base::RepeatingCallback<void ()> const&) at ??:?
#18: base::LaunchUnitTests(int, char**, base::RepeatingCallback<int ()> const&) at ??:?
#19: main at ??:?
#20: pc 0x4eedc78b250e sp 0x6c11bd845fe0 (libc.so,0x1350e)
#21: pc 0 sp 0x6c11bd846000

[00456.605] 08675.08701> <== Thread test_io_thread[4484] ==>
...
#01: pc 0x69f159ff9889 sp 0x3864b27fe98 (<vDSO>,0x6889)
#02: pc 0x69f159ff95b7 sp 0x3864b27fea0 (<vDSO>,0x65b7)
#03: base::MessagePumpFuchsia::Run(base::MessagePump::Delegate*) at ??:?
#04: base::RunLoop::Run() at ??:?
#05: base::Thread::ThreadMain() at ??:?
#06: base::(anonymous namespace)::ThreadFunc(void*) at ??:?
#07: pc 0x4eedc78afc76 sp 0x3864b27ffe0 (libc.so,0x10c76)
#08: pc 0x4eedc7925d19 sp 0x3864b27fff0 (libc.so,0x86d19)
#09: pc 0 sp 0x3864b280000

The test Run()s until an "OK" message is received from the child process.

For it to hang would suggest that the OK message is being dropped when the child process exits, as appears to sometimes be the case for other IPC tests.  The ListenerThatExpectsOK does include an OnChannelError() handler which asserts that the OK message has been received by the time it is called, but the assertion is implemented as a DCHECK, so will not be in effect on our Release bots (though it would kick in on our Release trybots, IIRC).
 

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

Mergedinto: 816620
Status: Duplicate (was: Assigned)
Project Member

Comment 2 by bugdroid1@chromium.org, Feb 26 2018

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/d95d4804ffb0644c2bdc32a1b890a9473b45be1e

commit d95d4804ffb0644c2bdc32a1b890a9473b45be1e
Author: Wez <wez@chromium.org>
Date: Mon Feb 26 20:50:47 2018

Add OnChannelError() handler to QuitListener rather than hang on close.

Without an OnChannelError() handler on the QuitListener, the test can
hang if the IPC channel disconnects before the Quit message is received.
Adding an explicit handler will make it easier to diagnose this failure
mode.

Also migrates DCHECK()s in some existing OnChannelError() handlers in
tests to use CHECK(), to avoid those tests potentially hanging in
Release builds.

Bug:  816606 ,  816620 ,  764015 
Change-Id: Ibe6ffc7ecd02f6029c74a7b3c1190030b656056f
Reviewed-on: https://chromium-review.googlesource.com/936427
Reviewed-by: Ken Rockot <rockot@chromium.org>
Commit-Queue: Wez <wez@chromium.org>
Cr-Commit-Position: refs/heads/master@{#539262}
[modify] https://crrev.com/d95d4804ffb0644c2bdc32a1b890a9473b45be1e/ipc/ipc_channel_mojo_unittest.cc
[modify] https://crrev.com/d95d4804ffb0644c2bdc32a1b890a9473b45be1e/ipc/ipc_channel_proxy_unittest.cc

Sign in to add a comment