New issue
Advanced search Search tips

Issue 612837 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2016
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux
Pri: 2
Type: Bug



Sign in to add a comment

Crash in ~WindowTreeClientImpl on views_mus_unittests shutdown

Project Member Reported by jamescook@chromium.org, May 18 2016

Issue description

Scott, I just noticed this crash in views_mus_shutdown and bisected it to your CL "Random fixes for mash bridge classes"  https://codereview.chromium.org/1984293002 -- I must have missed something in review.

The tests still pass, but the client process crashes in cleanup. It happens once per block of tests, but running a single test will repro it.

jamescook@rubella2:/w/chrome/src$ cat out_linux/args.gn 
# Build arguments go here. Examples:
#   is_component_build = true
#   is_debug = false
# See "gn args <out_dir> --list" for available build arguments.
is_component_build = true
use_goma = true
enable_nacl = false

jamescook@rubella2:/w/chrome/src$ git co 990b86fe4ea3085e6df6dd58316a2d2c34aad241
HEAD is now at 990b86f... Random fixes for mash bridge classes

jamescook@rubella2:/w/chrome/src$ gclient sync > /dev/null

jamescook@rubella2:/w/chrome/src$ ninja -C out_linux -j 500 -l 20 views_mus_unittests && out_linux/views_mus_unittests --gtest_filter="WidgetTest.GetName"

ninja: Entering directory `out_linux'
[988/988] LINK ./views_mus_unittests
IMPORTANT DEBUGGING NOTE: batches of tests are run inside their
own process. For debugging a test inside a debugger, use the
--gtest_filter=<your_test_name> flag along with
--single-process-tests.
Using sharding settings from environment. This is shard 0/1
Using 1 parallel jobs.
Note: Google Test filter = WidgetTest.GetName
[==========] Running 1 test from 1 test case.
[----------] Global test environment set-up.
[----------] 1 test from WidgetTest
[ RUN      ] WidgetTest.GetName
[10437:10437:0518/084031:84669964613:ERROR:screen_mus.cc(126)] Not implemented reached in virtual gfx::Point views::ScreenMus::GetCursorScreenPoint()
[       OK ] WidgetTest.GetName (1085 ms)
[----------] 1 test from WidgetTest (1086 ms total)

[----------] Global test environment tear-down
[==========] 1 test from 1 test case ran. (1086 ms total)
[  PASSED  ] 1 test.
Received signal 11 <unknown> 000000000000
#0 0x7ff59721082e base::debug::StackTrace::StackTrace()
#1 0x7ff59721036f base::debug::(anonymous namespace)::StackDumpSignalHandler()
#2 0x7ff5900e5340 <unknown>
#3 0x7ff5891a7dd7 mus::WindowTreeClientImpl::~WindowTreeClientImpl()
#4 0x7ff5891a8059 mus::WindowTreeClientImpl::~WindowTreeClientImpl()
#5 0x7ff5891af2ee mus::WindowTreeClientImpl::OnEmbed()::$_0::operator()()
#6 0x7ff5891af2b9 mojo::Callback<>::FunctorAdapter<>::Run()
#7 0x7ff58912787c mojo::Callback<>::Run()
#8 0x7ff58928dab9 mojo::internal::InterfaceEndpointClient::NotifyError()
#9 0x7ff58929be7c mojo::internal::MultiplexRouter::ProcessNotifyErrorTask()
#10 0x7ff589299b56 mojo::internal::MultiplexRouter::ProcessTasks()
#11 0x7ff58929a9e8 mojo::internal::MultiplexRouter::OnPipeConnectionError()
#12 0x7ff58929c6e8 mojo::internal::MultiplexRouter::MultiplexRouter()::$_0::operator()()
#13 0x7ff58929c6c9 mojo::Callback<>::FunctorAdapter<>::Run()
#14 0x7ff58912787c mojo::Callback<>::Run()
#15 0x7ff589285193 mojo::internal::Connector::HandleError()
#16 0x7ff589286224 mojo::internal::Connector::OnHandleReadyInternal()
#17 0x7ff5892860eb mojo::internal::Connector::OnWatcherHandleReady()
#18 0x7ff58928711b _ZN4base8internal15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEE3RunIPS4_JjEEEvOT_DpOT0_
#19 0x7ff58928705e _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEEEE8MakeItSoIJPS5_jEEEvS8_DpOT_
#20 0x7ff58928700d _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0EEEENS0_9BindStateINS0_15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEEEFvPS8_jEJNS0_17UnretainedWrapperIS8_EEEEENS0_12InvokeHelperILb0EvSB_EEFvjEE3RunEPNS0_13BindStateBaseEOj
#21 0x7ff5892b3fb2 base::Callback<>::Run()
#22 0x7ff5892b9ef3 mojo::Watcher::OnHandleReady()
#23 0x7ff5892ba1d5 mojo::Watcher::MessageLoopObserver::WillDestroyCurrentMessageLoop()
#24 0x7ff59728e633 base::MessageLoop::~MessageLoop()
#25 0x7ff59728eaa9 base::MessageLoop::~MessageLoop()
#26 0x7ff58911d2af std::default_delete<>::operator()()
#27 0x7ff5892c9cac std::unique_ptr<>::reset()
#28 0x7ff5892c9861 shell::ApplicationRunner::Run()
#29 0x7ff5892c993c shell::ApplicationRunner::Run()
#30 0x7ff58911ce12 MojoMain
#31 0x0000007596aa shell::RunNativeApplication()
#32 0x000000750d47 shell::(anonymous namespace)::RunNativeLibrary()
#33 0x000000752375 _ZN4base8internal15RunnableAdapterIPFvPvN4mojo16InterfaceRequestIN5shell5mojom11ShellClientEEEEE3RunIJRKS2_S8_EEEvDpOT_
#34 0x0000007522fa _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIPFvPvN4mojo16InterfaceRequestIN5shell5mojom11ShellClientEEEEEEE8MakeItSoIJRKS3_S9_EEEvSC_DpOT_
#35 0x0000007522b9 _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0EEEENS0_9BindStateINS0_15RunnableAdapterIPFvPvN4mojo16InterfaceRequestIN5shell5mojom11ShellClientEEEEEESD_JRS6_EEENS0_12InvokeHelperILb0EvSF_EEFvSC_EE3RunEPNS0_13BindStateBaseEOSC_
#36 0x000000540de3 base::Callback<>::Run()
#37 0x000000758d95 shell::ChildProcessMain()
#38 0x000000750b45 shell::ChildProcessMain()
#39 0x000000550bcd shell::(anonymous namespace)::RunChildProcess()
#40 0x000000550b6b main
#41 0x7ff58fd31ec5 __libc_start_main
#42 0x0000004a6e49 <unknown>
  r8: 0000000000000000  r9: 00007ff58fe60e01 r10: 0000000000000028 r11: 00007ff58fe96870
 r12: 00000000004a6e20 r13: 00007ffc85aba9d0 r14: 0000000000000000 r15: 0000000000000000
  di: dca77f14aec68d00  si: dca77f14aec68d00  bp: 00007ffc85ab83b0  bx: 0000000000000000
  dx: 0000000000000002  ax: 0000323d005cac90  cx: cdcdcdcdcdcdcdcd  sp: 00007ffc85ab8270
  ip: 00007ff5891a7dd7 efl: 0000000000010206 cgf: 0000000000000033 erf: 0000000000000000
 trp: 000000000000000d msk: 0000000000000000 cr2: 0000000000000000
[end of stack trace]
[10438:10441:0518/084031:84670190844:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10436:10439:0518/084031:84670194285:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10436:10439:0518/084031:84670194920:ERROR:node_controller.cc(906)] Could not be introduced to peer C2A7901642BB60E9.6DFF165913CB072
[10438:10441:0518/084031:84670208997:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10438:10441:0518/084031:84670209292:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10438:10438:0518/084031:84670223060:ERROR:surface_factory.cc(28)] SurfaceFactory has 1 entries in map on destruction.
[10438:10441:0518/084031:84670225095:ERROR:node_controller.cc(906)] Could not be introduced to peer 8BC1FA5C360F8BA1.FE8D90AC2F4C4291
[10438:10441:0518/084031:84670226540:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10438:10441:0518/084031:84670226834:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10438:10441:0518/084031:84670227667:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10438:10441:0518/084031:84670228133:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[10438:10441:0518/084031:84670228447:ERROR:node_controller.cc(906)] Could not be introduced to peer 2F4030CC700A1E71.13892B13FA438A87
[1/1] WidgetTest.GetName (1085 ms)
SUCCESS: all tests passed.
Tests took 1 seconds.

 

Comment 1 by sky@chromium.org, May 18 2016

Status: Started (was: Assigned)
Project Member

Comment 2 by bugdroid1@chromium.org, May 18 2016

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

commit 546c4972a6173202f2b054abd77ecb7324e64672
Author: sky <sky@chromium.org>
Date: Wed May 18 18:04:21 2016

Fix dangling observer

UserWindowControllerImpl wasn't properly removing observers it
adds. This matters now that there is a call from WindowTreeClientImpls
destructor.

BUG= 612837 
TEST=covered by tests
R=jamescook@chromium.org, msw@chromium.org

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

[modify] https://crrev.com/546c4972a6173202f2b054abd77ecb7324e64672/mash/wm/user_window_controller_impl.cc
[modify] https://crrev.com/546c4972a6173202f2b054abd77ecb7324e64672/mash/wm/user_window_controller_impl.h

Comment 3 by sky@chromium.org, May 18 2016

Status: Fixed (was: Started)
Components: -MUS Internals>Services>WindowService

Sign in to add a comment