Issue metadata
Sign in to add a comment
|
IPCChannelMojoTest.SendFailAfterClose flaked under Fuchsia/x64/Release FYI bot |
||||||||||||||||||||||||
Issue descriptionTest 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).
,
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 |
|||||||||||||||||||||||||
Comment 1 by w...@chromium.org
, Feb 26 2018Status: Duplicate (was: Assigned)