|ShelfDelegaeMus::app_id_to_shelf_id_| keeps growing |
|||
Issue descriptionIt looks like we never remove any entry from |ShelfDelegaeMus::app_id_to_shelf_id_|. This means it continually grows, and also leads to flaky crashes like this: [32634:32634:0427/145613:1639352612373:FATAL:shelf_delegate_mus.cc(333)] Check failed: item_delegate. #0 0x7f5ea30e593e base::debug::StackTrace::StackTrace() #1 0x7f5ea313b5fc logging::LogMessage::~LogMessage() #2 0x7f5e8a48d0e0 ash::sysui::ShelfDelegateMus::OnUserWindowAdded() #3 0x7f5e8a60e468 mash::wm::mojom::UserWindowObserverStub::Accept() #4 0x7f5e8a5a39b6 mojo::internal::Router::HandleMessageInternal() #5 0x7f5e8a5a2228 mojo::internal::Router::HandleIncomingMessage() #6 0x7f5e8a5a1f31 mojo::internal::Router::HandleIncomingMessageThunk::Accept() #7 0x7f5e8a60f2f2 mash::wm::mojom::UserWindowObserverRequestValidator::Accept() #8 0x7f5e8a59183d mojo::internal::MessageHeaderValidator::Accept() #9 0x7f5e8a582ec8 mojo::internal::Connector::ReadSingleMessage() #10 0x7f5e8a583a2c mojo::internal::Connector::ReadAllAvailableMessages() #11 0x7f5e8a583953 mojo::internal::Connector::OnHandleReadyInternal() #12 0x7f5e8a58382b mojo::internal::Connector::OnWatcherHandleReady() #13 0x7f5e8a584800 _ZN4base8internal15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEE3RunIJjEEEvPS4_DpOT_ #14 0x7f5e8a584751 _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEEEE8MakeItSoIJPS5_jEEEvS8_DpOT_ #15 0x7f5e8a5846fd _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0EEEENS0_9BindStateINS0_15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEEEFvPS8_jEJNS0_17UnretainedWrapperIS8_EEEEENS0_12InvokeHelperILb0EvSB_EEFvjEE3RunEPNS0_13BindStateBaseEOj #16 0x7f5e8a5aae02 base::Callback<>::Run() #17 0x7f5e8a5b0021 mojo::Watcher::OnHandleReady() #18 0x7f5e8a584c20 _ZN4base8internal15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEE3RunIJRKjEEEvPS4_DpOT_ #19 0x7f5e8a584b75 _ZN4base8internal12InvokeHelperILb1EvNS0_15RunnableAdapterIMN4mojo8internal9ConnectorEFvjEEEE8MakeItSoINS_7WeakPtrIS5_EEJRKjEEEvS8_T_DpOT0_ #20 0x7f5e8a5b0738 _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0ELm1EEEENS0_9BindStateINS0_15RunnableAdapterIMN4mojo7WatcherEFvjEEEFvPS7_jEJRNS_7WeakPtrIS7_EERjEEENS0_12InvokeHelperILb1EvSA_EEFvvEE3RunEPNS0_13BindStateBaseE #21 0x7f5ea30c98ae base::Callback<>::Run() #22 0x7f5ea30eb0ee base::debug::TaskAnnotator::RunTask() #23 0x7f5ea3156d91 base::MessageLoop::RunTask() #24 0x7f5ea3157018 base::MessageLoop::DeferOrRunPendingTask() #25 0x7f5ea31571e2 base::MessageLoop::DoWork() #26 0x7f5ea3167064 base::MessagePumpDefault::Run() #27 0x7f5ea315680a base::MessageLoop::RunHandler() #28 0x7f5ea31edf94 base::RunLoop::Run() #29 0x7f5e8a5bd5a2 shell::ApplicationRunner::Run() #30 0x7f5e8a5bd66c shell::ApplicationRunner::Run() #31 0x7f5e8a482012 MojoMain #32 0x0000065f92ff shell::RunNativeApplication() #33 0x0000065f245e shell::(anonymous namespace)::RunNativeLibrary() #34 0x000001998e55 _ZN4base8internal15RunnableAdapterIPFvPN7content15RenderFrameHostEN4mojo16InterfaceRequestIN16password_manager5mojom17CredentialManagerEEEEE3RunIJRKS4_SA_EEEvDpOT_ #35 0x0000019993aa _ZN4base8internal12InvokeHelperILb0EvNS0_15RunnableAdapterIPFvPN7content15RenderFrameHostEN4mojo16InterfaceRequestIN6device3usb13DeviceManagerEEEEEEE8MakeItSoIJRKS5_SB_EEEvSE_DpOT_ #36 0x0000065f3569 _ZN4base8internal7InvokerINS_13IndexSequenceIJLm0EEEENS0_9BindStateINS0_15RunnableAdapterIPFvPvN4mojo16InterfaceRequestIN5shell5mojom11ShellClientEEEEEESD_JRS6_EEENS0_12InvokeHelperILb0EvSF_EEFvSC_EE3RunEPNS0_13BindStateBaseEOSC_ #37 0x000000941e23 base::Callback<>::Run() #38 0x0000065f8b18 shell::ChildProcessMain() #39 0x0000065f2288 shell::ChildProcessMain() #40 0x00000174d4fe RunMashBrowserTests() #41 0x0000007c80dd main #42 0x7f5e8d042ec5 __libc_start_main #43 0x0000007c7fe4 <unknown> I added a DCHECK(item_delegate) to shelf_delegate_mus.cc:333. Without that, the actual crash happens in ShelfDelegateItemMus::AddWindow(), since |this| is null. This crash sometimes shows up when running browser-tests in mash.
,
Apr 28 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4875d4b179e246bdc4a903bc3d20c831727eecca commit 4875d4b179e246bdc4a903bc3d20c831727eecca Author: msw <msw@chromium.org> Date: Thu Apr 28 03:32:40 2016 Fix mash shelf id mapping and removal. Add ShelfID to app_id mapping, to complement the inverse map. (these are 1-to-1 mappings, but two maps eases usage) Remove mappings when shelf items are removed. Implement the ShelfDelegate interface mapping functions. TODO: Add unit/shell testing of ShelfDelegateMus. BUG= 607271 TEST=|ShelfDelegaeMus::app_id_to_shelf_id_| shrinks as appropriate. R=sadrul@chromium.org,sky@chromium.org Review-Url: https://codereview.chromium.org/1932503002 Cr-Commit-Position: refs/heads/master@{#390289} [modify] https://crrev.com/4875d4b179e246bdc4a903bc3d20c831727eecca/ash/mus/shelf_delegate_mus.cc [modify] https://crrev.com/4875d4b179e246bdc4a903bc3d20c831727eecca/ash/mus/shelf_delegate_mus.h
,
Apr 28 2016
Should be fixed, let me know if not.
,
Feb 26 2018
|
|||
►
Sign in to add a comment |
|||
Comment 1 by sadrul@chromium.org
, Apr 27 2016Labels: -Pri-3 Pri-2