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

Issue 603280 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
please use my google.com address
Closed: Apr 2016
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Bug



Sign in to add a comment

Build failure in mojo_system_unittests

Project Member Reported by rjkroege@chromium.org, Apr 13 2016

Issue description

Transient build

mojo_system_unittests

Revision range:
chromium 387074 : 387077

Failing builders:
Win10 Tests x64: https://build.chromium.org/p/chromium.win/builders/Win10%20Tests%20x64

Direct link to the failure
https://build.chromium.org/p/chromium.win/builders/Win10%20Tests%20x64/builds/383/steps/mojo_system_unittests

yzshen@ can you look?
 

Comment 1 by yzshen@chromium.org, Apr 14 2016

Cc: yzshen@chromium.org amistry@chromium.org
Owner: roc...@chromium.org
Ken and Anand may be more familiar with this test. Would you please take a look?
It seems mojo_system_unittests is fairly flaky. I noticed this test suite failed 4 out of the last 200 runs on  the same bot.


============================================================================

[ RUN      ] MultiprocessMessagePipeTest.SendPipeWithClosedPeerBetweenChildren

[3200:3356:0413/070559:1229390:WARNING:test_suite.cc(195)] Test launcher output path C:\Users\CHROME~2\AppData\Local\Temp\1536_772\test_results.xml exists. Not adding test launcher result printer.

[5576:5984:0413/070559:1229390:WARNING:test_suite.cc(195)] Test launcher output path C:\Users\CHROME~2\AppData\Local\Temp\1536_772\test_results.xml exists. Not adding test launcher result printer.

[3200:3356:0413/070559:1229390:FATAL:mojo_test_base.cc(125)] Check failed: MojoWait(mp, MOJO_HANDLE_SIGNAL_READABLE, MOJO_DEADLINE_INDEFINITE, nullptr) == MOJO_RESULT_OK (9 vs. 0)

Backtrace:

	base::debug::StackTrace::StackTrace [0x00007FF68AB830A1+33]

	logging::LogMessage::~LogMessage [0x00007FF68AB6F99C+76]

	mojo::edk::test::MojoTestBase::ReadMessageWithHandles [0x00007FF68ABD7013+131]

	mojo::edk::test::MojoTestBase::ReadMessage [0x00007FF68ABD6F84+20]

	testing::internal::ParameterizedTestCaseInfo<mojo::edk::`anonymous namespace'::MultiprocessMessagePipeTestWithPipeCount>::GetTestCaseTypeId [0x00007FF68AB434CD+22973]

	std::_Func_impl<<lambda_d041b4a64e678ccfb5ef865794cbf53d>,std::allocator<int>,int,unsigned int>::_Do_call [0x00007FF68ABD5E1A+26]

	mojo::edk::test::MultiprocessTestHelper::ChildSetup [0x00007FF68ABD4FCB+539]

	mojo::edk::test::MultiprocessTestHelper::RunClientTestMain [0x00007FF68ABD50EF+95]

	base::internal::Invoker<base::IndexSequence<0>,base::internal::BindState<base::internal::RunnableAdapter<int (__cdecl mojo::edk::`anonymous namespace'::ChannelEchoClient_MainFixture::*)(unsigned int) __ptr64>,int __cdecl(mojo::edk::`anonymous namespace':: [0x00007FF68AB45223+1363]

	multi_process_function_list::InvokeChildProcessTest [0x00007FF68ABC94EB+91]

	base::TestSuite::Run [0x00007FF68AC2D000+160]

	base::LaunchUnitTests [0x00007FF68AC29B92+1074]

	base::LaunchUnitTests [0x00007FF68AC297EC+140]

	main [0x00007FF68AC27F5F+351]

	__scrt_common_main_seh [0x00007FF68ABFAE4C+292] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:255)

	BaseThreadInitThunk [0x00007FFEA6612D92+34]

	RtlUserThreadStart [0x00007FFEA67C9F64+52]



[3096:5432:0413/070559:1229390:FATAL:mojo_test_base.cc(110)] Check failed: MojoWriteMessage(mp, message.data(), static_cast<uint32_t>(message.size()), handles, num_handles, MOJO_WRITE_MESSAGE_FLAG_NONE) == MOJO_RESULT_OK (9 vs. 0)

Backtrace:

	base::debug::StackTrace::StackTrace [0x00007FF68AB830A1+33]

	logging::LogMessage::~LogMessage [0x00007FF68AB6F99C+76]

	mojo::edk::test::MojoTestBase::WriteMessage [0x00007FF68ABD7A0C+124]

	testing::internal::ParameterizedTestCaseInfo<mojo::edk::`anonymous namespace'::MultiprocessMessagePipeTestWithPipeCount>::TestInfo::~TestInfo [0x00007FF68AB37B82+15634]

	mojo::edk::test::MojoTestBase::StartClientWithHandler<<lambda_2cb31e535758d3df225e8f7548ceb6f9> > [0x00007FF68AB313CF+63]

	base::internal::Invoker<base::IndexSequence<0>,base::internal::BindState<base::internal::RunnableAdapter<int (__cdecl mojo::edk::`anonymous namespace'::ChannelEchoClient_MainFixture::*)(unsigned int) __ptr64>,int __cdecl(mojo::edk::`anonymous namespace':: [0x00007FF68AB46DE6+8470]

	testing::Test::Run [0x00007FF68ABC4B16+278]

	testing::TestInfo::Run [0x00007FF68ABC4EBB+267]

	testing::TestCase::Run [0x00007FF68ABC4CC4+308]

	testing::internal::UnitTestImpl::RunAllTests [0x00007FF68ABC536E+670]

	testing::UnitTest::Run [0x00007FF68ABC508E+254]

	base::TestSuite::Run [0x00007FF68AC2D011+177]

	base::LaunchUnitTests [0x00007FF68AC29B92+1074]

	base::LaunchUnitTests [0x00007FF68AC297EC+140]

	main [0x00007FF68AC27F5F+351]

	__scrt_common_main_seh [0x00007FF68ABFAE4C+292] (f:\dd\vctools\crt\vcstartup\src\startup\exe_common.inl:255)

	BaseThreadInitThunk [0x00007FFEA6612D92+34]

	RtlUserThreadStart [0x00007FFEA67C9F64+52]



[119/119] MultiprocessMessagePipeTest.SendPipeWithClosedPeerBetweenChildren (CRASHED)
1 test crashed:
    MultiprocessMessagePipeTest.SendPipeWithClosedPeerBetweenChildren (c:\b\build\slave\win_x64_builder\build\src\mojo\edk\system\multiprocess_message_pipe_unittest.cc:1252)

Comment 2 by roc...@chromium.org, Apr 14 2016

I've seen this flake locally on Windows, but it's good (I guess?) to have it reproing on a builder. I'm pretty sure this is an issue with some of the tests themselves, where pipe events race with child process shutdown. I'll take another look soon.
Project Member

Comment 3 by bugdroid1@chromium.org, Apr 26 2016

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

commit 0bcc20b48b02c2a84396f3e484da40303be0d5a4
Author: rockot <rockot@chromium.org>
Date: Tue Apr 26 04:23:22 2016

[mojo-edk] Fix lifetime management of rewritten Windows HANDLEs

HANDLE values are carried in Channel messages as PlatformHandles.
At various points in its lifetime, a PlaformHandle may actually
correspond to a HANDLE in another process's handle table - for example
when sending an outgoing message containing a handle, the handle is
duplicated to the target process and then serialized.

In some cases, a duplicated handle is never sent to the target
process (e.g. an outgoing message queued on a Channel but not
sent before the Channel is torn down). In such cases we were
blindly calling CloseHandle which is incorrect (see comments inside
CL).

This CL adds a field to PlatformHandle to track the process to
which the HANDLE belongs. In addition to being used for sanity
checks in RewriteHandles, this is also used to allow
PlatformHandle to do the right thing when closing a handle owned
by another process.

BUG= 603280 
R=amistry@chromium.org

Review URL: https://codereview.chromium.org/1914053003

Cr-Commit-Position: refs/heads/master@{#389693}

[modify] https://crrev.com/0bcc20b48b02c2a84396f3e484da40303be0d5a4/mojo/edk/embedder/platform_handle.cc
[modify] https://crrev.com/0bcc20b48b02c2a84396f3e484da40303be0d5a4/mojo/edk/embedder/platform_handle.h
[modify] https://crrev.com/0bcc20b48b02c2a84396f3e484da40303be0d5a4/mojo/edk/system/channel.cc
[modify] https://crrev.com/0bcc20b48b02c2a84396f3e484da40303be0d5a4/mojo/edk/system/node_channel.cc
[modify] https://crrev.com/0bcc20b48b02c2a84396f3e484da40303be0d5a4/mojo/edk/system/node_controller.cc

Project Member

Comment 4 by bugdroid1@chromium.org, Apr 26 2016

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

commit d582e6542b8e590ffbfcaf0b2a21afc83b2166d8
Author: rockot <rockot@chromium.org>
Date: Tue Apr 26 04:31:54 2016

[mojo-edk] Fix some multiprocess test expectations

Some of the shared buffer tests were waiting for child processes
to respond to "quit" messages with an "ok" before exiting, but
delivery of that message can race with child process exit, leading
to MojoWait failures.

This extra synchronization step is unnecessary, so this CL removes
it.

BUG= 603280 
R=amistry@chromium.org

Review URL: https://codereview.chromium.org/1919103002

Cr-Commit-Position: refs/heads/master@{#389695}

[modify] https://crrev.com/d582e6542b8e590ffbfcaf0b2a21afc83b2166d8/mojo/edk/system/shared_buffer_unittest.cc

Comment 5 by roc...@chromium.org, Apr 26 2016

Status: Fixed (was: Available)
mojo_system_unittests flake should be fixed now.

Sign in to add a comment