New issue
Advanced search Search tips

Issue 738449 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Mar 2018
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug



Sign in to add a comment

Fix content_package_serivces in mash_browser_tests

Project Member Reported by jonr...@chromium.org, Jun 30 2017

Issue description

MojoTestState registers the content_package_services as a service of the  BackgroundServiceManager created to run the test case.

MojoTestConnector::ServiceProcessLauncherDelegateImpl::AdjustCommandLineArgumentsForTarget eventually handles a request to launch the content_package_service. This launch has a CommandLine of the following form:

--test-launcher-filter-file=testing/buildbot/filters/mash.browser_tests.filter --service-name=content_packaged_services --u=51ec3e58-c2ef-4380-b0d1-2e914243aab1 --mojo-platform-channel-handle=3 --service-pipe-token=44066EADB7595FF0AE512697690EF635

In RunMashBrowserTests, which is used to launch this child process, the lack of --run-in-mash leads to rejecting the mash path. Falling back on LaunchChromeTests. However the existence of the --service-pipe tells Aura that it is not running locally.

This child continues the test path, sees the --test-launcher-filter-file and begins to spin up the entire test suite again.

This leads to all the tests being ran an additional time. However they are in a weird mixed state, with Aura non-local, but Ash is local.

This is the cause of the following stack trace:
[3711:3711:0630/060854.689632:FATAL:ozone_platform.cc(69)] Check failed: instance_. OzonePlatform is not initialized
#0 0x0000037c1fdc base::debug::StackTrace::StackTrace()
#1 0x0000037dab81 logging::LogMessage::~LogMessage()
#2 0x000001ec7d42 ui::OzonePlatform::GetInstance()
#3 0x0000062a733e ash::ShellPortClassic::CreateNativeDisplayDelegate()
#4 0x0000062e24fc ash::Shell::Init()
#5 0x0000062e1fe9 ash::Shell::CreateInstance()
#6 0x00000679dbed AshInit::AshInit()
#7 0x00000659dd60 ChromeBrowserMainExtraPartsAsh::PreProfileInit()
#8 0x0000038f277a ChromeBrowserMainParts::PreProfileInit()
#9 0x0000038f37d0 ChromeBrowserMainPartsLinux::PreProfileInit()
#10 0x0000019749c3 chromeos::ChromeBrowserMainPartsChromeos::PreProfileInit()
#11 0x0000038f19fa ChromeBrowserMainParts::PreMainMessageLoopRunImpl()
#12 0x0000038f137d ChromeBrowserMainParts::PreMainMessageLoopRun()
#13 0x0000019745f0 chromeos::ChromeBrowserMainPartsChromeos::PreMainMessageLoopRun()
#14 0x000002371e41 content::BrowserMainLoop::PreMainMessageLoopRun()
#15 0x00000275e4b7 content::StartupTaskRunner::RunAllTasksNow()
#16 0x0000023702cf content::BrowserMainLoop::CreateStartupTasks()
#17 0x000002374722 content::BrowserMainRunnerImpl::Initialize()
#18 0x00000236d8e7 content::BrowserMain()
#19 0x00000376b35c content::ContentMainRunnerImpl::Run()
#20 0x00000566b1a4 service_manager::Main()
#21 0x00000376a1a4 content::ContentMain()
#22 0x000003e61812 content::BrowserTestBase::SetUp()
#23 0x0000038b0753 InProcessBrowserTest::SetUp()
#24 0x000001c75b41 testing::Test::Run()
#25 0x000001c76650 testing::TestInfo::Run()
#26 0x000001c76b87 testing::TestCase::Run()
#27 0x000001c7dd27 testing::internal::UnitTestImpl::RunAllTests()
#28 0x000001c7d9ab testing::UnitTest::Run()
#29 0x0000038c4b86 base::TestSuite::Run()
#30 0x0000037b4b83 ChromeTestSuiteRunner::RunTestSuite()
#31 0x000003e94c82 content::LaunchTests()
#32 0x0000037b27d3 main
#33 0x7faf41ae7f45 __libc_start_main
#34 0x00000062360e <unknown>

However this nested test suite does not affect the results of the original, so the tests keep passing.

Meanwhile, the actual test cases being ran have a different CommandLine from the one seen for content_package_services. Of the form:

./out/oxygen/browser_tests --gtest_also_run_disabled_tests --gtest_filter=ExperimentalAppWindowApiTest.SetIcon --is_test --mojo-platform-channel-handle=3 --mus-config=mash --run-in-mash --service-pipe-token=5B02DFB89A65AFDA48B530DEB59F366D --single_process --test-launcher-filter-file=testing/buildbot/filters/mash.browser_tests.filter --user-data-dir=/tmp/.org.chromium.Chromium.lWdjC3/dRjXgFg

This results in the individual test case being ran, in the correct non-local Ash and Aura config. It also doesn't cause a nested test state.

For now I plan to disable RunMashBrowserTests from nesting further test suite runs, by simply absorbing the launch of content_package_services. For the current filter set, this does not appear to cause any new failures.

Afterwards I'll hunt down what is attempting to connect to content_package_services, and then see about properly launching it.
 

Comment 1 Deleted

Comment 2 Deleted

Status: Assigned (was: WontFix)
posted comments/closed wrong bug.
Project Member

Comment 4 by bugdroid1@chromium.org, Jul 5 2017

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

commit 08d64457d9385f3f976ba57108a6fe1946b90029
Author: jonross <jonross@chromium.org>
Date: Wed Jul 05 13:37:45 2017

Stop Nesting Test Suites in mash_browser_tests

MojoTestState registers content_package_services as a service of the
BackgroundServiceManager.

MojoTestConnector::ServiceProcessLauncherDelegateImpl::AdjustCommandLineArgumentsForTarget
eventually handles a request to launch the content_package_services.

This leads to RunMashBrowserTests relaunching the test suite, as a child of the
original suite. This time with a mixed state of a local-Ash and non-local-Aura.

This causes OzonePlatform to crash, and the test suite to have a long run time.

This patch updates RunMashBrowserTests to not act when asked to launch
content_package_services. Follow up changes will find the source, and setup an
appropriate launch mechanism within RunMashBrowserTests.

TEST=mash_browser_tests
BUG= 738449 

Review-Url: https://codereview.chromium.org/2966563005
Cr-Commit-Position: refs/heads/master@{#484259}

[modify] https://crrev.com/08d64457d9385f3f976ba57108a6fe1946b90029/chrome/test/base/mash_browser_tests_main.cc

Status: Untriaged (was: Assigned)
Components: -MUS Internals>Services>WindowService

Comment 7 by sky@chromium.org, Mar 22 2018

Status: WontFix (was: Untriaged)
I'm pretty sure this is stale. Closing out.

Sign in to add a comment