New issue
Advanced search Search tips
Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: Dec 19
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Chrome
Pri: 2
Type: Bug

Blocking:
issue 905430



Sign in to add a comment
link

Issue 910241: Multi profile tests are failing with single process mash

Reported by est...@chromium.org, Nov 29 Project Member

Issue description

Tests that create a MultiUserWindowManagerChromeOS are crashing with --enable-features=SingleProcessMash. Most of the time the stack trace looks like:

[ RUN      ] MultiUserContextMenuChromeOSTest.UnownedWindow
[77235:77235:1128/175054.574415:1382792621569:WARNING:test_network_connection_tracker.cc(65)] Creating more than one TestNetworkConnectionTracker
[77235:77235:1128/175054.605127:1382792652278:WARNING:shelf_button.cc(362)] An icon of size 32x32is being scaled up and will look blurry.
[77235:77235:1128/175054.606135:1382792653284:WARNING:shelf_button.cc(362)] An icon of size 32x32is being scaled up and will look blurry.
Received signal 11 SEGV_MAPERR 0000000000e8
#0 0x7f5fe5f06eaf base::debug::StackTrace::StackTrace()
#1 0x7f5fe5f069b1 base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7f5fda8d10c0 <unknown>
#3 0x55845f9e5397 MultiUserWindowManagerChromeOS::MultiUserWindowManagerChromeOS()
#4 0x55845c0d599c ash::MultiUserContextMenuChromeOSTest::SetUp()
#5 0x55845d251310 testing::Test::Run()
#6 0x55845d2520af testing::TestInfo::Run()
#7 0x55845d2525d7 testing::TestCase::Run()
#8 0x55845d25e947 testing::internal::UnitTestImpl::RunAllTests()
#9 0x55845d25e4bd testing::UnitTest::Run()
#10 0x55845e257621 base::TestSuite::Run()
#11 0x55845e25975d base::(anonymous namespace)::LaunchUnitTestsInternal()
#12 0x55845e2595c1 base::LaunchUnitTests()
#13 0x55845e24c9bf main
#14 0x7f5fd8ff72b1 __libc_start_main
#15 0x55845b3dc78a _start
  r8: 0000000000000000  r9: 0000000000000001 r10: 8080808080808080 r11: 00007f5fd9140e00
 r12: 0000274537b6a780 r13: 0000274537f2bc50 r14: 0000274537f2bdb8 r15: 0000274537f2bda0
  di: 0000000000000000  si: 0000274537a4c3a2  bp: 00007ffff68025a0  bx: 0000274537f2bc40
  dx: 0000000000000068  ax: 0000000000000000  cx: 0000000000000002  sp: 00007ffff6802520
  ip: 000055845f9e5397 efl: 0000000000010202 cgf: 002b000000000033 erf: 0000000000000004
 trp: 000000000000000e msk: 0000000000000000 cr2: 00000000000000e8
[end of stack trace]
Calling _exit(1). Core file will not be generated.

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

For MultiUserWindowManagerChromeOSMashTest.* the problem seems to be that we're just creating two MusClients.

[ RUN      ] MultiUserWindowManagerChromeOSMashTest.SingleProcessMashWindowOrdering
[112266:112266:1128/175350.398711:1382968445970:WARNING:test_network_connection_tracker.cc(65)] Creating more than one TestNetworkConnectionTracker
[112266:112266:1128/175350.473364:1382968520515:FATAL:env.cc(226)] Check failed: !window_tree_client_. 
#0 0x7f7712a42eaf base::debug::StackTrace::StackTrace()
#1 0x7f77129728ab logging::LogMessage::~LogMessage()
#2 0x7f770ecd27d0 aura::Env::SetWindowTreeClient()
#3 0x7f770cc08175 views::MusClient::MusClient()
#4 0x55602947c3e2 ash::MultiUserWindowManagerChromeOSMashTest::SetUp()
#5 0x55602a5d6310 testing::Test::Run()
#6 0x55602a5d70af testing::TestInfo::Run()
#7 0x55602a5d75d7 testing::TestCase::Run()
#8 0x55602a5e3947 testing::internal::UnitTestImpl::RunAllTests()
#9 0x55602a5e34bd testing::UnitTest::Run()
#10 0x55602b5dc621 base::TestSuite::Run()
#11 0x55602b5de75d base::(anonymous namespace)::LaunchUnitTestsInternal()
#12 0x55602b5de5c1 base::LaunchUnitTests()
#13 0x55602b5d19bf main
#14 0x7f7705b332b1 __libc_start_main
#15 0x55602876178a _start
 

Comment 1 by est...@chromium.org, Nov 29

Here's another, perhaps different, stack trace:

[ RUN      ] ChromeLauncherControllerMultiProfileWithArcTest.ArcMultiUser
[121332:121332:1128/175955.789919:1383333837072:FATAL:interface_endpoint_client.cc(227)] Check failed: !handle_.pending_association(). 
#0 0x7fd94455eeaf base::debug::StackTrace::StackTrace()
#1 0x7fd94448e8ab logging::LogMessage::~LogMessage()
#2 0x7fd94709da6b mojo::InterfaceEndpointClient::Accept()
#3 0x7fd93ea12666 ash::mojom::MultiUserWindowManagerProxy::SetClient()
#4 0x55e746f1c4c7 MultiUserWindowManagerChromeOS::MultiUserWindowManagerChromeOS()
#5 0x55e746f1c0aa MultiUserWindowManager::CreateInstance()
#6 0x55e746f0b3f2 ChromeLauncherController::ChromeLauncherController()
#7 0x55e7435fdcb7 TestChromeLauncherController::TestChromeLauncherController()
#8 0x55e7435cbe30 ChromeLauncherControllerMultiProfileWithArcTest_ArcMultiUser_Test::TestBody()
#9 0x55e744788461 testing::Test::Run()
#10 0x55e7447890af testing::TestInfo::Run()
#11 0x55e7447895d7 testing::TestCase::Run()
#12 0x55e744795947 testing::internal::UnitTestImpl::RunAllTests()
#13 0x55e7447954bd testing::UnitTest::Run()
#14 0x55e74578e621 base::TestSuite::Run()
#15 0x55e74579075d base::(anonymous namespace)::LaunchUnitTestsInternal()
#16 0x55e7457905c1 base::LaunchUnitTests()
#17 0x55e7457839bf main
#18 0x7fd93764f2b1 __libc_start_main
#19 0x55e74291378a _start

Comment 2 by sky@chromium.org, Nov 29

Owner: sky@chromium.org
Status: Started (was: Available)

Comment 3 by osh...@chromium.org, Nov 30

Components: UI>Shell>MultipleProfile

Comment 4 by bugdroid1@chromium.org, Dec 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/7935e447796ae74eb3018c6de963a3d3f66e411a

commit 7935e447796ae74eb3018c6de963a3d3f66e411a
Author: Scott Violet <sky@chromium.org>
Date: Thu Dec 13 18:29:46 2018

chromeos: adds ability for AshTestHelper to create MusClient

This is useful for tests targetting single-process-mash. This also
exposes a function on AshTestBase to create MusClient, which is useful
for tests outside of ash that still use AshTestBase. The later is needed
to ensure unit_tests work with SingleProcessMash.

BUG= 910241 
TEST=test only changes

Change-Id: I97d095b55eba1ba0f19fa59358a999436fd9dc73
Reviewed-on: https://chromium-review.googlesource.com/c/1375454
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: James Cook <jamescook@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616369}
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ash/test/ash_test_base.cc
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ash/test/ash_test_base.h
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ash/test/ash_test_helper.cc
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ash/test/ash_test_helper.h
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ash/ws/ash_window_manager_unittest.cc
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ash/ws/window_lookup_unittest.cc
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ui/aura/test/env_test_helper.cc
[modify] https://crrev.com/7935e447796ae74eb3018c6de963a3d3f66e411a/ui/aura/test/env_test_helper.h

Comment 5 by bugdroid1@chromium.org, Dec 13

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/01208718fb14954d7e93da0c900968b8707c3b67

commit 01208718fb14954d7e93da0c900968b8707c3b67
Author: Scott Violet <sky@chromium.org>
Date: Thu Dec 13 19:11:29 2018

WindowService: makes SetWindowVisibility() return false on failure

In particular, ash has WindowObservers that override OnWindowVisibilityChanged()
and force the window visibility back to what it was. This patch makes the
WindowService deal with this.

BUG= 910241 
TEST=covered by tests

Change-Id: I4fcd26cd8283aa38ee157f0d9c7831af68e867db
Reviewed-on: https://chromium-review.googlesource.com/c/1375993
Commit-Queue: Scott Violet <sky@chromium.org>
Reviewed-by: Michael Wasserman <msw@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616381}
[modify] https://crrev.com/01208718fb14954d7e93da0c900968b8707c3b67/services/ws/window_tree.cc
[modify] https://crrev.com/01208718fb14954d7e93da0c900968b8707c3b67/services/ws/window_tree_test_helper.cc
[modify] https://crrev.com/01208718fb14954d7e93da0c900968b8707c3b67/services/ws/window_tree_test_helper.h
[modify] https://crrev.com/01208718fb14954d7e93da0c900968b8707c3b67/services/ws/window_tree_unittest.cc

Comment 6 by bugdroid1@chromium.org, Dec 14

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

commit e5d5506e80a81b7b6078c976887d66507cf0786f
Author: Scott Violet <sky@chromium.org>
Date: Fri Dec 14 17:11:49 2018

chromeos: updates BrowserWithTestWindowTest for mash

makes it call to AshTestHelper to create MusClient. This also moves
creation slightly earlier as some tests may need MusClient earlier.

BUG= 910241 
TEST=covered by tests

Change-Id: I434716e8cbdf91a2af27330f53b7ddef331b6c82
Reviewed-on: https://chromium-review.googlesource.com/c/1377721
Reviewed-by: James Cook <jamescook@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616718}
[modify] https://crrev.com/e5d5506e80a81b7b6078c976887d66507cf0786f/chrome/test/base/browser_with_test_window_test.cc

Comment 7 by bugdroid1@chromium.org, Dec 15

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/32ab520f603b9ca4de0809ea54d9336b6e48b8f3

commit 32ab520f603b9ca4de0809ea54d9336b6e48b8f3
Author: Scott Violet <sky@chromium.org>
Date: Sat Dec 15 00:35:39 2018

chromeos: gets a bunch of MultiUserWindowManager related tests passing

MultiUserWindowManagerClientImpl, when running in single-process mash mode,
expects a MusClient. So, tests that end up using AshTestBase/Helper *and*
calling into MultiUserWindowManager need to ensure there is a MusClient.

This also adds some calls to FlushBindings() at key points to ensure ash has
completed processing. This is necessary as ash may change visibility of
registered windows.

BUG= 910241 
TEST=covered by tests

Change-Id: Ie7bcba3772284d0c2b53ab26b0e3ad50c3153928
Reviewed-on: https://chromium-review.googlesource.com/c/1378411
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#616897}
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/ash/ws/multi_user_window_manager_bridge.cc
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/launcher/chrome_launcher_controller_unittest.cc
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/launcher/extension_app_window_launcher_controller.cc
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/DEPS
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/multi_user_context_menu_chromeos_unittest.cc
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/multi_user_window_manager_client_impl.cc
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/multi_user_window_manager_client_impl.h
[add] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/multi_user_window_manager_client_impl_test_helper.cc
[add] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/multi_user_window_manager_client_impl_test_helper.h
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/browser/ui/ash/multi_user/multi_user_window_manager_client_impl_unittest.cc
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/chrome/test/BUILD.gn
[modify] https://crrev.com/32ab520f603b9ca4de0809ea54d9336b6e48b8f3/testing/buildbot/filters/chromeos.single_process_mash.unit_tests.filter

Comment 8 by bugdroid1@chromium.org, Dec 19

Project Member
The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/445d9eb4484577b2219d8d8e67dbedcee9804219

commit 445d9eb4484577b2219d8d8e67dbedcee9804219
Author: Scott Violet <sky@chromium.org>
Date: Wed Dec 19 21:23:19 2018

chromeos: fixes BrowserFinderChromeOSTest.FindBrowserOwnedByAnotherProfile

for mash. This test was creating an aura window, which is problematic for
the mash case and MultiUserWindowManager. In particular, MultiUserWindowManager
calls over mojo, and the ash side ignores calls to non-top-level windows.
Because the test creates an aura::Window directly the window isn't a top-level
and ash was ignoring the MultiUserWindowManager calls. The fix is to create
a views::Widget, which is a top-level, so that ash doesn't ignore the request.

This also adds a call to FlushBindings() to ensure some async processing
completes before the assertions.

I would like to replace usage of TestBrowserWindowAura, with
TestBrowserWindowViews, but that can be done separately.

BUG= 910241 
TEST=test only change

Change-Id: I2e6ccd86c4c39ae441c99efad82de43308ff4ae8
Reviewed-on: https://chromium-review.googlesource.com/c/1384657
Reviewed-by: Xiyuan Xia <xiyuan@chromium.org>
Commit-Queue: Scott Violet <sky@chromium.org>
Cr-Commit-Position: refs/heads/master@{#617950}
[modify] https://crrev.com/445d9eb4484577b2219d8d8e67dbedcee9804219/chrome/browser/ui/browser_finder_chromeos_unittest.cc
[modify] https://crrev.com/445d9eb4484577b2219d8d8e67dbedcee9804219/chrome/test/base/test_browser_window_aura.cc
[modify] https://crrev.com/445d9eb4484577b2219d8d8e67dbedcee9804219/chrome/test/base/test_browser_window_aura.h

Comment 9 by sky@chromium.org, Dec 19

Status: Fixed (was: Started)

Sign in to add a comment