New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 765759 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows , Mac
Pri: 1
Type: Bug



Sign in to add a comment

Template URLs crash during merge on ToT

Project Member Reported by s...@chromium.org, Sep 15 2017

Issue description

I 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>

 

Comment 1 by s...@chromium.org, Sep 15 2017

sync_guid is d2188520-4e3b-4540-9f81-56b8ba10aabe. Not sure how useful that is. Doesn't look like this crash is very common https://crash.corp.google.com/browse?stbtiq=IsLocalTemplateURLBetter&sql_dialect=googlesql

Comment 2 by s...@chromium.org, Sep 15 2017

Summary: Template URLs crash during merge on ToT (was: Typed URLs crash during merge on ToT)

Comment 3 by s...@chromium.org, Sep 15 2017

Components: -UI>Browser>History UI>Browser>Search
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?

Comment 4 by s...@chromium.org, Sep 19 2017

Cc: pnoland@chromium.org
 Issue 766760  has been merged into this issue.

Comment 5 by s...@chromium.org, Sep 19 2017

Cc: brettw@chromium.org pkasting@chromium.org
Labels: -Pri-3 OS-Mac OS-Windows Pri-1
Owner: pnoland@chromium.org
Status: Started (was: Assigned)
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
Project Member

Comment 8 by bugdroid1@chromium.org, 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

Status: Fixed (was: Started)

Sign in to add a comment