Issue metadata
Sign in to add a comment
|
IdentityManager doesn't close its connection on shutdown, which can trigger not-run callbacks to DCHECK |
||||||||||||||||||||
Issue descriptionGetting this crash on exit in ToT with dcheck enabled. Repro steps: this seems to crash consistently: 1. install Keep extension (https://chrome.google.com/webstore/detail/google-keep-chrome-extens/lpcaedmchfhocbbapmcbpinfpgnhiddi) 2. notice sign-in tab opens 3. exit Chrome by closing the window [124872:124872:0918/143402.346191:FATAL:interface_endpoint_client.cc(32)] Check failed: !is_valid. The callback passed to IdentityManager::GetPrimaryAccountWhenAvailable() was never run. #0 0x7f1dae57d787 base::debug::StackTrace::StackTrace() #1 0x7f1dae5a4ac1 logging::LogMessage::~LogMessage() #2 0x7f1dad74c30b mojo::(anonymous namespace)::DCheckIfInvalid() #3 0x5627aaf42a62 _ZN4base8internal9BindStateIMN8identity5mojom63IdentityManager_GetPrimaryAccountWhenAvailable_ProxyToResponderEFvRK11AccountInfoRKNS2_12AccountStateEEJNS0_13PassedWrapperINSt3__110unique_ptrIS4_NSE_14default_deleteIS4_EEEEEEEED2Ev #4 0x5627aaf429b1 _ZN4base8internal9BindStateIMN8identity5mojom63IdentityManager_GetPrimaryAccountWhenAvailable_ProxyToResponderEFvRK11AccountInfoRKNS2_12AccountStateEEJNS0_13PassedWrapperINSt3__110unique_ptrIS4_NSE_14default_deleteIS4_EEEEEEEE7DestroyEPKNS0_13BindStateBaseE #5 0x5627aafa6cc8 identity::IdentityManager::~IdentityManager() #6 0x5627aafa6db9 identity::IdentityManager::~IdentityManager() #7 0x5627ab6bcbb6 SigninManagerBase::Shutdown() #8 0x5627ab121422 SigninManagerFactory::BrowserContextShutdown() #9 0x7f1da9ed781c DependencyManager::DestroyContextServices() #10 0x5627ab2722af ProfileImpl::~ProfileImpl() #11 0x5627ab2724c9 ProfileImpl::~ProfileImpl() #12 0x5627ab26b7c5 ProfileDestroyer::DestroyProfileWhenAppropriate() #13 0x5627ab10e93b std::__1::__tree<>::destroy() #14 0x5627ab10e870 ProfileManager::~ProfileManager() #15 0x5627ab105609 ProfileManager::~ProfileManager() #16 0x5627ab398c39 BrowserProcessImpl::StartTearDown() #17 0x5627ab30eff8 ChromeBrowserMainParts::PostMainMessageLoopRun() #18 0x7f1dab8df89b content::BrowserMainLoop::ShutdownThreadsAndCleanUp() #19 0x7f1dab8e25b1 content::BrowserMainRunnerImpl::Shutdown() #20 0x7f1dab8da7b3 content::BrowserMain() #21 0x7f1dac1a6bbf content::RunNamedProcessTypeMain() #22 0x7f1dac1a7657 content::ContentMainRunnerImpl::Run() #23 0x7f1daeac9290 service_manager::Main() #24 0x7f1dac1a5f82 content::ContentMain() #25 0x5627aac1401c ChromeMain #26 0x7f1da1a8df45 __libc_start_main #27 0x5627aac13e6f <unknown> Received signal 6 #0 0x7f1dae57d787 base::debug::StackTrace::StackTrace() #1 0x7f1dae57d25f base::debug::(anonymous namespace)::StackDumpSignalHandler() #2 0x7f1dae702330 <unknown> #3 0x7f1da1aa2c37 gsignal #4 0x7f1da1aa6028 abort #5 0x7f1dae57b372 base::debug::BreakDebugger() #6 0x7f1dae5a4f94 logging::LogMessage::~LogMessage() #7 0x7f1dad74c30b mojo::(anonymous namespace)::DCheckIfInvalid() #8 0x5627aaf42a62 _ZN4base8internal9BindStateIMN8identity5mojom63IdentityManager_GetPrimaryAccountWhenAvailable_ProxyToResponderEFvRK11AccountInfoRKNS2_12AccountStateEEJNS0_13PassedWrapperINSt3__110unique_ptrIS4_NSE_14default_deleteIS4_EEEEEEEED2Ev #9 0x5627aaf429b1 _ZN4base8internal9BindStateIMN8identity5mojom63IdentityManager_GetPrimaryAccountWhenAvailable_ProxyToResponderEFvRK11AccountInfoRKNS2_12AccountStateEEJNS0_13PassedWrapperINSt3__110unique_ptrIS4_NSE_14default_deleteIS4_EEEEEEEE7DestroyEPKNS0_13BindStateBaseE #10 0x5627aafa6cc8 identity::IdentityManager::~IdentityManager() #11 0x5627aafa6db9 identity::IdentityManager::~IdentityManager() #12 0x5627ab6bcbb6 SigninManagerBase::Shutdown() #13 0x5627ab121422 SigninManagerFactory::BrowserContextShutdown() #14 0x7f1da9ed781c DependencyManager::DestroyContextServices() #15 0x5627ab2722af ProfileImpl::~ProfileImpl() #16 0x5627ab2724c9 ProfileImpl::~ProfileImpl() #17 0x5627ab26b7c5 ProfileDestroyer::DestroyProfileWhenAppropriate() #18 0x5627ab10e93b std::__1::__tree<>::destroy() #19 0x5627ab10e870 ProfileManager::~ProfileManager() #20 0x5627ab105609 ProfileManager::~ProfileManager() #21 0x5627ab398c39 BrowserProcessImpl::StartTearDown() #22 0x5627ab30eff8 ChromeBrowserMainParts::PostMainMessageLoopRun() #23 0x7f1dab8df89b content::BrowserMainLoop::ShutdownThreadsAndCleanUp() #24 0x7f1dab8e25b1 content::BrowserMainRunnerImpl::Shutdown() #25 0x7f1dab8da7b3 content::BrowserMain() #26 0x7f1dac1a6bbf content::RunNamedProcessTypeMain() #27 0x7f1dac1a7657 content::ContentMainRunnerImpl::Run() #28 0x7f1daeac9290 service_manager::Main() #29 0x7f1dac1a5f82 content::ContentMain() #30 0x5627aac1401c ChromeMain #31 0x7f1da1a8df45 __libc_start_main #32 0x5627aac13e6f <unknown> r8: ffff99cafbe71dd0 r9: ffff99cafbe71dc0 r10: 0000000000000008 r11: 0000000000000202 r12: 00007ffda1fc3fa0 r13: 00000000000000ba r14: 00007ffda1fc3f98 r15: 00007ffda1fc3f90 di: 000000000001e7c8 si: 000000000001e7c8 bp: 00007ffda1fc3b50 bx: 00007ffda1fc3b50 dx: 0000000000000006 ax: 0000000000000000 cx: 00007f1da1aa2c37 sp: 00007ffda1fc39a8 ip: 00007f1da1aa2c37 efl: 0000000000000202 cgf: 0014000000000033 erf: 0000000000000000 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000 [end of stack trace] Calling _exit(1). Core file will not be generated.
,
Sep 18 2017
,
Sep 19 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/f9792c073b3c79a5133462c0da01263db74ce375 commit f9792c073b3c79a5133462c0da01263db74ce375 Author: Colin Blundell <blundell@chromium.org> Date: Tue Sep 19 18:02:53 2017 [Identity Service] Close binding on IdentityManager shutdown IdentityManager was not closing its binding on its shutdown, which causes a DCHECK to fire in the case where it is holding onto a pending callback from a consumer request. One example where this occurs is the case where a consumer has called GetPrimaryAccountWhenAvailable() and the browser subsequently shuts down without the user ever having signed in. This CL fixes the glitch and adds a unittest that causes the relevant DCHECK to fire without the fix. See crbug.com/766338 for repro steps that exercise this behavior in production (note that DCHECKs must be enabled to actually see evidence of the prior buggy behavior). Bug: 766338 Change-Id: If1cf9e03111cb7825f0311b4f971d38d5c31bca7 Reviewed-on: https://chromium-review.googlesource.com/672546 Reviewed-by: Ken Rockot <rockot@chromium.org> Commit-Queue: Colin Blundell <blundell@chromium.org> Cr-Commit-Position: refs/heads/master@{#502893} [modify] https://crrev.com/f9792c073b3c79a5133462c0da01263db74ce375/services/identity/identity_manager.cc [modify] https://crrev.com/f9792c073b3c79a5133462c0da01263db74ce375/services/identity/identity_manager_unittest.cc
,
Sep 19 2017
|
|||||||||||||||||||||
►
Sign in to add a comment |
|||||||||||||||||||||
Comment 1 by blundell@chromium.org
, Sep 18 2017Summary: IdentityManager doesn't close its connection on shutdown, which can trigger not-run callbacks to shut down (was: DCHECK failure in interface_endpoint_client.cc: callback never run)