Weak ptr race in browser_data_remover_impl. |
||
Issue descriptionChrome Version: ToT with gn args target_os = "linux" is_debug = true is_component_build = true use_goma = true enable_nacl = false What steps will reproduce the problem? history->clear browsing data->clear browsing data. What is the expected result? browsing data is cleared. What happens instead? Stack trace [91367:91367:0327/165751.521631:FATAL:weak_ptr.cc(26)] Check failed: sequence_checker_.CalledOnValidSequence(). WeakPtrs must be checked on the same sequenced thread. #0 0x7fecf3358a6b base::debug::StackTrace::StackTrace() #1 0x7fecf335776c base::debug::StackTrace::StackTrace() #2 0x7fecf33c096f logging::LogMessage::~LogMessage() #3 0x7fecf33e3269 base::internal::WeakReference::Flag::IsValid() #4 0x7fecf33e33fb base::internal::WeakReference::is_valid() #5 0x7fecf44ed2cf base::WeakPtr<>::get() #6 0x7fecf44ed0e5 base::WeakPtr<>::operator bool() #7 0x7fecf59ee1e4 (anonymous namespace)::DoesOriginMatchMaskAndUrls() #8 0x7fecf59f5a6e _ZN4base8internal13FunctorTraitsIPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESA_PN7storage20SpecialStoragePolicyEEvE6InvokeIJS6_RKiSG_SA_SJ_EEEbSL_DpOT_ #9 0x7fecf59f597c _ZN4base8internal12InvokeHelperILb0EbE8MakeItSoIRKPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESC_PN7storage20SpecialStoragePolicyEEJS8_RKiSI_SC_SL_EEEbOT_DpOT0_ #10 0x7fecf59f58de _ZN4base8internal7InvokerINS0_9BindStateIPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESB_PN7storage20SpecialStoragePolicyEEJS5_iSF_EEEFbSB_SK_EE7RunImplIRKSM_RKSt5tupleIJS5_iSF_EEJLm0ELm1ELm2EEEEbOT_OT0_NS_13IndexSequenceIJXspT1_EEEESB_OSK_ #11 0x7fecf59f578e _ZN4base8internal7InvokerINS0_9BindStateIPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESB_PN7storage20SpecialStoragePolicyEEJS5_iSF_EEEFbSB_SK_EE3RunEPNS0_13BindStateBaseESB_OSK_ #12 0x7feced564daa _ZNKR4base8CallbackIFbRK4GURLPN7storage20SpecialStoragePolicyEELNS_8internal8CopyModeE1ELNS8_10RepeatModeE1EE3RunES3_S6_ #13 0x7feced563bb9 content::(anonymous namespace)::OnLocalStorageUsageInfo() #14 0x7feced56659a _ZN4base8internal13FunctorTraitsIPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS2_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPS9_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESO_RKNSD_IFvvELSJ_1ELSK_1EEERKNSt7__debug6vectorINS3_21LocalStorageUsageInfoESaISV_EEEEvE6InvokeIJS7_SC_SN_RKSO_S15_SS_SZ_EEEvS11_DpOT_ #15 0x7feced566437 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS4_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPSB_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESQ_RKNSF_IFvvELSL_1ELSM_1EEERKNSt7__debug6vectorINS5_21LocalStorageUsageInfoESaISX_EEEEJS9_SE_SP_RKSQ_S17_SU_S11_EEEvOT_DpOT0_ #16 0x7feced566362 _ZN4base8internal7InvokerINS0_9BindStateIPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS3_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPSA_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESP_RKNSE_IFvvELSK_1ELSL_1EEERKNSt7__debug6vectorINS4_21LocalStorageUsageInfoESaISW_EEEEJS6_SB_SM_SP_SP_SR_EEEFvS10_EE7RunImplIRKS12_RKSt5tupleIJS6_SB_SM_SP_SP_SR_EEJLm0ELm1ELm2ELm3ELm4ELm5EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEES10_ #17 0x7feced56615c _ZN4base8internal7InvokerINS0_9BindStateIPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS3_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPSA_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESP_RKNSE_IFvvELSK_1ELSL_1EEERKNSt7__debug6vectorINS4_21LocalStorageUsageInfoESaISW_EEEEJS6_SB_SM_SP_SP_SR_EEEFvS10_EE3RunEPNS0_13BindStateBaseES10_ #18 0x7fececb7e6d2 _ZNKR4base8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS4_EEEELNS_8internal8CopyModeE1ELNSA_10RepeatModeE1EE3RunES8_ #19 0x7fececb7d22d content::(anonymous namespace)::InvokeLocalStorageUsageCallbackHelper() #20 0x7fececb7e26f _ZN4base8internal13FunctorTraitsIPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS6_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPS9_EvE6InvokeIJSG_PS8_EEEvSJ_DpOT_ #21 0x7fececb7e1ad _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS8_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPSB_EJSI_PSA_EEEvOT_DpOT0_ #22 0x7fececb7e158 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS7_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPSA_EJSF_NS0_12OwnedWrapperIS9_EEEEEFvvEE7RunImplIRKSK_RKSt5tupleIJSF_SM_EEJLm0ELm1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #23 0x7fececb7e06c _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS7_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPSA_EJSF_NS0_12OwnedWrapperIS9_EEEEEFvvEE3RunEPNS0_13BindStateBaseE #24 0x7fecf335efae _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE0ELNS2_10RepeatModeE0EE3RunEv #25 0x7fecf335e6de base::debug::TaskAnnotator::RunTask() #26 0x7fecf33e917d base::MessageLoop::RunTask() #27 0x7fecf33e9414 base::MessageLoop::DeferOrRunPendingTask() #28 0x7fecf33e9704 base::MessageLoop::DoWork() #29 0x7fecf340120c base::MessagePumpGlib::HandleDispatch() #30 0x7fecf34019b1 base::(anonymous namespace)::WorkSourceDispatch() #31 0x7fece21e0e04 g_main_context_dispatch #32 0x7fece21e1048 <unknown> #33 0x7fece21e10ec g_main_context_iteration #34 0x7fecf340130f base::MessagePumpGlib::Run() #35 0x7fecf33e8d17 base::MessageLoop::RunHandler() #36 0x7fecf349442a base::RunLoop::Run() #37 0x7fecf5e3817e ChromeBrowserMainParts::MainMessageLoopRun() #38 0x7fecec9b11e8 content::BrowserMainLoop::RunMainMessageLoopParts() #39 0x7fecec9bfa86 content::BrowserMainRunnerImpl::Run() #40 0x7fecec9aa718 content::BrowserMain() #41 0x7fecee1e3aa6 content::RunNamedProcessTypeMain() #42 0x7fecee1e5cac content::ContentMainRunnerImpl::Run() #43 0x7fecee1e2e6a content::ContentServiceManagerMainDelegate::Run() #44 0x7fecde6b8be8 service_manager::Main() #45 0x7fecee1e34d3 content::ContentMain() #46 0x7fecf448c27a ChromeMain #47 0x7fecf448c1a2 main #48 0x7fecdf772f45 __libc_start_main #49 0x7fecf448c084 <unknown> Received signal 6 #0 0x7fecf3358a6b base::debug::StackTrace::StackTrace() #1 0x7fecf335776c base::debug::StackTrace::StackTrace() #2 0x7fecf335857f base::debug::(anonymous namespace)::StackDumpSignalHandler() #3 0x7fecf37ce330 <unknown> #4 0x7fecdf787c37 gsignal #5 0x7fecdf78b028 abort #6 0x7fecf3355766 base::debug::(anonymous namespace)::DebugBreak() #7 0x7fecf3355748 base::debug::BreakDebugger() #8 0x7fecf33c0d06 logging::LogMessage::~LogMessage() #9 0x7fecf33e3269 base::internal::WeakReference::Flag::IsValid() #10 0x7fecf33e33fb base::internal::WeakReference::is_valid() #11 0x7fecf44ed2cf base::WeakPtr<>::get() #12 0x7fecf44ed0e5 base::WeakPtr<>::operator bool() #13 0x7fecf59ee1e4 (anonymous namespace)::DoesOriginMatchMaskAndUrls() #14 0x7fecf59f5a6e _ZN4base8internal13FunctorTraitsIPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESA_PN7storage20SpecialStoragePolicyEEvE6InvokeIJS6_RKiSG_SA_SJ_EEEbSL_DpOT_ #15 0x7fecf59f597c _ZN4base8internal12InvokeHelperILb0EbE8MakeItSoIRKPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESC_PN7storage20SpecialStoragePolicyEEJS8_RKiSI_SC_SL_EEEbOT_DpOT0_ #16 0x7fecf59f58de _ZN4base8internal7InvokerINS0_9BindStateIPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESB_PN7storage20SpecialStoragePolicyEEJS5_iSF_EEEFbSB_SK_EE7RunImplIRKSM_RKSt5tupleIJS5_iSF_EEJLm0ELm1ELm2EEEEbOT_OT0_NS_13IndexSequenceIJXspT1_EEEESB_OSK_ #17 0x7fecf59f578e _ZN4base8internal7InvokerINS0_9BindStateIPFbRKNS_7WeakPtrI23BrowsingDataRemoverImplEEiRKNS_8CallbackIFbRK4GURLELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEESB_PN7storage20SpecialStoragePolicyEEJS5_iSF_EEEFbSB_SK_EE3RunEPNS0_13BindStateBaseESB_OSK_ #18 0x7feced564daa _ZNKR4base8CallbackIFbRK4GURLPN7storage20SpecialStoragePolicyEELNS_8internal8CopyModeE1ELNS8_10RepeatModeE1EE3RunES3_S6_ #19 0x7feced563bb9 content::(anonymous namespace)::OnLocalStorageUsageInfo() #20 0x7feced56659a _ZN4base8internal13FunctorTraitsIPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS2_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPS9_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESO_RKNSD_IFvvELSJ_1ELSK_1EEERKNSt7__debug6vectorINS3_21LocalStorageUsageInfoESaISV_EEEEvE6InvokeIJS7_SC_SN_RKSO_S15_SS_SZ_EEEvS11_DpOT_ #21 0x7feced566437 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS4_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPSB_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESQ_RKNSF_IFvvELSL_1ELSM_1EEERKNSt7__debug6vectorINS5_21LocalStorageUsageInfoESaISX_EEEEJS9_SE_SP_RKSQ_S17_SU_S11_EEEvOT_DpOT0_ #22 0x7feced566362 _ZN4base8internal7InvokerINS0_9BindStateIPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS3_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPSA_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESP_RKNSE_IFvvELSK_1ELSL_1EEERKNSt7__debug6vectorINS4_21LocalStorageUsageInfoESaISW_EEEEJS6_SB_SM_SP_SP_SR_EEEFvS10_EE7RunImplIRKS12_RKSt5tupleIJS6_SB_SM_SP_SP_SR_EEJLm0ELm1ELm2ELm3ELm4ELm5EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEES10_ #23 0x7feced56615c _ZN4base8internal7InvokerINS0_9BindStateIPFvRK13scoped_refptrIN7content24DOMStorageContextWrapperEERKS3_IN7storage20SpecialStoragePolicyEERKNS_8CallbackIFbRK4GURLPSA_ELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEENS_4TimeESP_RKNSE_IFvvELSK_1ELSL_1EEERKNSt7__debug6vectorINS4_21LocalStorageUsageInfoESaISW_EEEEJS6_SB_SM_SP_SP_SR_EEEFvS10_EE3RunEPNS0_13BindStateBaseES10_ #24 0x7fececb7e6d2 _ZNKR4base8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS4_EEEELNS_8internal8CopyModeE1ELNSA_10RepeatModeE1EE3RunES8_ #25 0x7fececb7d22d content::(anonymous namespace)::InvokeLocalStorageUsageCallbackHelper() #26 0x7fececb7e26f _ZN4base8internal13FunctorTraitsIPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS6_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPS9_EvE6InvokeIJSG_PS8_EEEvSJ_DpOT_ #27 0x7fececb7e1ad _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS8_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPSB_EJSI_PSA_EEEvOT_DpOT0_ #28 0x7fececb7e158 _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS7_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPSA_EJSF_NS0_12OwnedWrapperIS9_EEEEEFvvEE7RunImplIRKSK_RKSt5tupleIJSF_SM_EEJLm0ELm1EEEEvOT_OT0_NS_13IndexSequenceIJXspT1_EEEE #29 0x7fececb7e06c _ZN4base8internal7InvokerINS0_9BindStateIPFvRKNS_8CallbackIFvRKNSt7__debug6vectorIN7content21LocalStorageUsageInfoESaIS7_EEEELNS0_8CopyModeE1ELNS0_10RepeatModeE1EEEPSA_EJSF_NS0_12OwnedWrapperIS9_EEEEEFvvEE3RunEPNS0_13BindStateBaseE #30 0x7fecf335efae _ZNO4base8CallbackIFvvELNS_8internal8CopyModeE0ELNS2_10RepeatModeE0EE3RunEv #31 0x7fecf335e6de base::debug::TaskAnnotator::RunTask() #32 0x7fecf33e917d base::MessageLoop::RunTask() #33 0x7fecf33e9414 base::MessageLoop::DeferOrRunPendingTask() #34 0x7fecf33e9704 base::MessageLoop::DoWork() #35 0x7fecf340120c base::MessagePumpGlib::HandleDispatch() #36 0x7fecf34019b1 base::(anonymous namespace)::WorkSourceDispatch() #37 0x7fece21e0e04 g_main_context_dispatch #38 0x7fece21e1048 <unknown> #39 0x7fece21e10ec g_main_context_iteration #40 0x7fecf340130f base::MessagePumpGlib::Run() #41 0x7fecf33e8d17 base::MessageLoop::RunHandler() #42 0x7fecf349442a base::RunLoop::Run() #43 0x7fecf5e3817e ChromeBrowserMainParts::MainMessageLoopRun() #44 0x7fecec9b11e8 content::BrowserMainLoop::RunMainMessageLoopParts() #45 0x7fecec9bfa86 content::BrowserMainRunnerImpl::Run() #46 0x7fecec9aa718 content::BrowserMain() #47 0x7fecee1e3aa6 content::RunNamedProcessTypeMain() #48 0x7fecee1e5cac content::ContentMainRunnerImpl::Run() #49 0x7fecee1e2e6a content::ContentServiceManagerMainDelegate::Run() #50 0x7fecde6b8be8 service_manager::Main() #51 0x7fecee1e34d3 content::ContentMain() #52 0x7fecf448c27a ChromeMain #53 0x7fecf448c1a2 main #54 0x7fecdf772f45 __libc_start_main #55 0x7fecf448c084 <unknown> r8: fffffffffffffed8 r9: fffffffffffffec8 r10: 0000000000000008 r11: 0000000000000206 r12: 00000c0d21fa7d40 r13: 0000000000000000 r14: 00007fecf3401990 r15: 00000c0d22192520 di: 00000000000164e7 si: 00000000000164e7 bp: 00007ffe358ce9c0 bx: 0000000000000000 dx: 0000000000000006 ax: 0000000000000000 cx: ffffffffffffffff sp: 00007ffe358ce888 ip: 00007fecdf787c37 efl: 0000000000000206 cgf: 0000000000000033 erf: 0000000000000000 trp: 0000000000000000 msk: 0000000000000000 cr2: 0000000000000000 [end of stack trace] Calling _exit(1). Core file will not be generated. msramek: PTAL since you have been working on this class.
,
Mar 28 2017
,
Mar 31 2017
Issue 707235 has been merged into this issue.
,
Apr 6 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c9f101b745929a50b391abf446cefb6b2f4b4bd6 commit c9f101b745929a50b391abf446cefb6b2f4b4bd6 Author: msramek <msramek@chromium.org> Date: Thu Apr 06 17:29:51 2017 Fix the multi-threaded access to WeakPtr<BrowsingDataRemoverImpl> Previously, we depended on a WeakPtr to access BrowsingDataRemoverImpl to gain access to its delegate on which we called the embedder origin type matching method. With this CL, the delegate provides a callback to a static method, eliminating the need for any pointers. To prevent a similar bug from happening in the future, we proactively bind the WeakPtr<BrowsingDataRemoverImpl> to the UI thread, so it would immediately DCHECK if it was misused on the IO thread. BUG=705538,668114 Review-Url: https://codereview.chromium.org/2781083002 Cr-Commit-Position: refs/heads/master@{#462530} [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/browsing_data_remover_delegate.h [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/browsing_data_remover_impl.cc [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/browsing_data_remover_impl.h [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.cc [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/chrome_browsing_data_remover_delegate.h [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/mock_browsing_data_remover_delegate.cc [modify] https://crrev.com/c9f101b745929a50b391abf446cefb6b2f4b4bd6/chrome/browser/browsing_data/mock_browsing_data_remover_delegate.h |
||
►
Sign in to add a comment |
||
Comment 1 by msramek@chromium.org
, Mar 27 2017