Template URLs crash during merge on ToT |
||||||
Issue descriptionI signed into my @google.com on a tip of tree build. You have permission to look at server side data. [55921:55921:0915/113553.605386:FATAL:template_url_service.cc(2149)] Check failed: GetTemplateURLForGUID(local_turl->sync_guid()). #0 0x7f5f35cf5f2d base::debug::StackTrace::StackTrace() #1 0x7f5f35cf42fc base::debug::StackTrace::StackTrace() #2 0x7f5f35d8537a logging::LogMessage::~LogMessage() #3 0x559f96707c7e TemplateURLService::IsLocalTemplateURLBetter() #4 0x559f966ff04b TemplateURLService::MergeInSyncTemplateURL() #5 0x559f966fdb1d TemplateURLService::MergeDataAndStartSyncing() #6 0x559f96700509 TemplateURLService::MergeDataAndStartSyncing() #7 0x559f96045016 syncer::SharedChangeProcessor::StartAssociation() #8 0x559f9604109d _ZN4base8internal13FunctorTraitsIMN6syncer21SharedChangeProcessorEFvNS_17RepeatingCallbackIFvNS2_18DataTypeController15ConfigureResultERKNS2_15SyncMergeResultES9_EEEPNS2_10SyncClientEPNS2_29GenericChangeProcessorFactoryEPNS2_9UserShareENSt3__110unique_ptrINS2_20DataTypeErrorHandlerENSI_14default_deleteISK_EEEEEvE6InvokeIRK13scoped_refptrIS3_EJRKSB_RKSD_RKSF_RKSH_SN_EEEvSP_OT_DpOT0_ #9 0x559f96040de3 _ZN4base8internal12InvokeHelperILb0EvE8MakeItSoIRKMN6syncer21SharedChangeProcessorEFvNS_17RepeatingCallbackIFvNS4_18DataTypeController15ConfigureResultERKNS4_15SyncMergeResultESB_EEEPNS4_10SyncClientEPNS4_29GenericChangeProcessorFactoryEPNS4_9UserShareENSt3__110unique_ptrINS4_20DataTypeErrorHandlerENSK_14default_deleteISM_EEEEEJRK13scoped_refptrIS5_ERKSD_RKSF_RKSH_RKSJ_SP_EEEvOT_DpOT0_ #10 0x559f96040c14 _ZN4base8internal7InvokerINS0_9BindStateIMN6syncer21SharedChangeProcessorEFvNS_17RepeatingCallbackIFvNS3_18DataTypeController15ConfigureResultERKNS3_15SyncMergeResultESA_EEEPNS3_10SyncClientEPNS3_29GenericChangeProcessorFactoryEPNS3_9UserShareENSt3__110unique_ptrINS3_20DataTypeErrorHandlerENSJ_14default_deleteISL_EEEEEJ13scoped_refptrIS4_ESC_SE_SG_SI_NS0_13PassedWrapperISO_EEEEEFvvEE7RunImplIRKSQ_RKNSJ_5tupleIJSS_SC_SE_SG_SI_SU_EEEJLm0ELm1ELm2ELm3ELm4ELm5EEEEvOT_OT0_NSJ_16integer_sequenceImJXspT1_EEEE #11 0x559f9604099c _ZN4base8internal7InvokerINS0_9BindStateIMN6syncer21SharedChangeProcessorEFvNS_17RepeatingCallbackIFvNS3_18DataTypeController15ConfigureResultERKNS3_15SyncMergeResultESA_EEEPNS3_10SyncClientEPNS3_29GenericChangeProcessorFactoryEPNS3_9UserShareENSt3__110unique_ptrINS3_20DataTypeErrorHandlerENSJ_14default_deleteISL_EEEEEJ13scoped_refptrIS4_ESC_SE_SG_SI_NS0_13PassedWrapperISO_EEEEEFvvEE3RunEPNS0_13BindStateBaseE #12 0x7f5f35ca1201 _ZNO4base12OnceCallbackIFvvEE3RunEv #13 0x7f5f35cfab82 base::debug::TaskAnnotator::RunTask() #14 0x7f5f35da9d28 base::internal::IncomingTaskQueue::RunTask() #15 0x7f5f35daf124 base::MessageLoop::RunTask() #16 0x7f5f35daf3a7 base::MessageLoop::DeferOrRunPendingTask() #17 0x7f5f35db0090 base::MessageLoop::DoWork() #18 0x7f5f35db7966 base::MessagePumpGlib::Run() #19 0x7f5f35dae8e4 base::MessageLoop::Run() #20 0x7f5f35e65ebd base::RunLoop::Run() #21 0x559f957ce95d ChromeBrowserMainParts::MainMessageLoopRun() #22 0x7f5f2f4eb036 content::BrowserMainLoop::RunMainMessageLoopParts() #23 0x7f5f2f4f382f content::BrowserMainRunnerImpl::Run() #24 0x7f5f2f4df1bb content::BrowserMain() #25 0x7f5f31132e34 content::RunNamedProcessTypeMain() #26 0x7f5f31135b0e content::ContentMainRunnerImpl::Run() #27 0x7f5f3113060d content::ContentServiceManagerMainDelegate::RunEmbedderProcess() #28 0x7f5f365ff835 service_manager::Main() #29 0x7f5f31131caf content::ContentMain() #30 0x559f9392328e ChromeMain #31 0x559f939231a2 main #32 0x7f5f1cd75f45 __libc_start_main #33 0x559f93923084 <unknown>
,
Sep 15 2017
,
Sep 15 2017
There seems to be two problems
1. prepopulate_id is meaningless when it is zero, yet we're still looking up by id. Seemingly making almost random decisions based on last modified timestamps of two unrelated templates.
2. |template_urls_| is out of sync with |guid_to_turl_|. If the random lookup by prepopulate_id returns a result that's not in |guid_to_turl_|, then we hit this DCHECK. I'm currently seeing a turl with url of "chrome-extension://pnhechapfaindjhompbnflcldabbghjo/?q={searchTerms}" and guid of "96cf73f8-fd4f-458c-b3d9-7c8f77d986da". I don't see any turl with this url in my sync data, so maybe it's special in some way?
,
Sep 19 2017
,
Sep 19 2017
,
Sep 25 2017
,
Sep 25 2017
The problematic sequence of events seems to be: 1) Sign in and start syncing 2) Install a synced extension with a keyword(in my case, ssh). This won't get added to guid_to_turl_ because we don't sync omnibox extension keywords. But it will still get added. 3) Attempt to merge remote search engines into the local model 4) Look for a local search engine with prepopulate_id 0, and find the keyword added in step 2. 5) Look for this guid in guid_to_turl_ and fail the DCHECK
,
Oct 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/c878eecd2b178d8280dc10ab3b2c14e9f5351c43 commit c878eecd2b178d8280dc10ab3b2c14e9f5351c43 Author: Patrick Noland <pnoland@google.com> Date: Mon Oct 02 17:32:53 2017 [sync] Ignore id 0 when merging pre-populated turls There are scenarios where an existing local turl can exist and have prepopulate_id 0, but this isn't a meaningful conflict. We should ignore these cases. BUG= 765759 R=skym@chromium.org, vasilii@chromium.org Change-Id: I5b7daa295fb7d3f1bad8edf6dea059b6bd0f7001 Reviewed-on: https://chromium-review.googlesource.com/683319 Reviewed-by: Vasilii Sukhanov <vasilii@chromium.org> Reviewed-by: Sky Malice <skym@chromium.org> Commit-Queue: Patrick Noland <pnoland@google.com> Cr-Commit-Position: refs/heads/master@{#505663} [modify] https://crrev.com/c878eecd2b178d8280dc10ab3b2c14e9f5351c43/chrome/browser/search_engines/template_url_service_sync_unittest.cc [modify] https://crrev.com/c878eecd2b178d8280dc10ab3b2c14e9f5351c43/components/search_engines/template_url_service.cc
,
Oct 2 2017
|
||||||
►
Sign in to add a comment |
||||||
Comment 1 by s...@chromium.org
, Sep 15 2017