DCHECK when recreating an entities after deletion in WorkerEntityTracker::RequestCommit |
||
Issue description
com.apple.WebKit.WebContent: 113: Could not find specified service
[0102/103841.360923:FATAL:worker_entity_tracker.cc(53)] Check failed: data.base_version >= base_version_ (-1 vs. 1483349724202669)Base version should never decrease
(lldb) bt
* thread #32: tid = 0x300678, 0x00000001010a2ce4 Chromium`base::debug::BreakDebugger() + 24 at debugger_posix.cc:251, name = 'Chrome_SyncThread', stop reason = EXC_BREAKPOINT (code=1, subcode=0x1010a2ce4)
frame #0: 0x00000001010a2ce4 Chromium`base::debug::BreakDebugger() + 24 at debugger_posix.cc:251
frame #1: 0x00000001010fe0a0 Chromium`logging::LogMessage::~LogMessage(this=0x000000016ebd7550) + 3072 at logging.cc:759
frame #2: 0x00000001010fb538 Chromium`logging::LogMessage::~LogMessage(this=0x000000016ebd7550) + 28 at logging.cc:533
* frame #3: 0x0000000102b5b3dc Chromium`syncer::WorkerEntityTracker::RequestCommit(this=0x00000001742f5680, data=0x000000017464d890) + 220 at worker_entity_tracker.cc:53
frame #4: 0x0000000102af7a04 Chromium`syncer::ModelTypeWorker::EnqueueForCommit(this=0x0000000109be04e0, list=size=1) + 968 at model_type_worker.cc:256
frame #5: 0x0000000102af32f8 Chromium`void base::internal::FunctorTraits<void (syncer::ModelTypeWorker::*)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), void>::Invoke<base::WeakPtr<syncer::ModelTypeWorker> const&, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&>(method=40 00 00 00 00 00 00 00 01 00 00 00 00 00 00 00, receiver_ptr=0x00000001742b0950, args=size=1)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), base::WeakPtr<syncer::ModelTypeWorker> const&&&, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&&&) + 164 at bind_internal.h:214
frame #6: 0x0000000102af3174 Chromium`void base::internal::InvokeHelper<true, void>::MakeItSo<void (functor=0x00000001742b0940, weak_ptr=0x00000001742b0950, args=size=1)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), base::WeakPtr<syncer::ModelTypeWorker> const&, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&>(void (syncer::ModelTypeWorker::* const&&&)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), base::WeakPtr<syncer::ModelTypeWorker> const&&&, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&&&) + 120 at bind_internal.h:305
frame #7: 0x0000000102af30f0 Chromium`void base::internal::Invoker<base::internal::BindState<void (syncer::ModelTypeWorker::*)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), base::WeakPtr<syncer::ModelTypeWorker>, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > >, void ()>::RunImpl<void (functor=0x00000001742b0940, bound=0x00000001742b0950, (null)=IndexSequence<0, 1> @ 0x000000016ebd7d10)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), std::__1::tuple<base::WeakPtr<syncer::ModelTypeWorker>, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > > const&, 0ul, 1ul>(void (syncer::ModelTypeWorker::* const&&&)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), std::__1::tuple<base::WeakPtr<syncer::ModelTypeWorker>, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > > const&&&, base::IndexSequence<0ul, 1ul>) + 112 at bind_internal.h:361
frame #8: 0x0000000102af3008 Chromium`base::internal::Invoker<base::internal::BindState<void (syncer::ModelTypeWorker::*)(std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > const&), base::WeakPtr<syncer::ModelTypeWorker>, std::__1::vector<syncer::CommitRequestData, std::__1::allocator<syncer::CommitRequestData> > >, void ()>::Run(base=0x00000001742b0920) + 44 at bind_internal.h:339
frame #9: 0x000000010126cd80 Chromium`base::internal::RunMixin<base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0> >::Run(this=0x000000016ebd8350) + 88 at callback.h:68
frame #10: 0x00000001010a4ffc Chromium`base::debug::TaskAnnotator::RunTask(this=0x0000000109dbf560, queue_function="MessageLoop::PostTask", pending_task=0x000000016ebd8338) + 616 at task_annotator.cc:52
frame #11: 0x000000010111c780 Chromium`base::MessageLoop::RunTask(this=0x0000000109dbf430, pending_task=0x000000016ebd8338) + 748 at message_loop.cc:421
frame #12: 0x000000010111cbc8 Chromium`base::MessageLoop::DeferOrRunPendingTask(this=0x0000000109dbf430, pending_task=PendingTask @ 0x000000016ebd8338) + 68 at message_loop.cc:430
frame #13: 0x000000010111d418 Chromium`base::MessageLoop::DoWork(this=0x0000000109dbf430) + 540 at message_loop.cc:523
frame #14: 0x00000001013480e4 Chromium`base::MessagePumpCFRunLoopBase::RunWork(this=0x000000017438c8b0) + 88 at message_pump_mac.mm:302
frame #15: 0x000000010134807c Chromium`::___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke(.block_descriptor=<unavailable>) + 32 at message_pump_mac.mm:279
frame #16: 0x0000000101337548 Chromium`base::mac::CallWithEHFrame(block=0x000000010134805c) block_pointer) + 44 at call_with_eh_frame.cc:18
frame #17: 0x00000001013477cc Chromium`base::MessagePumpCFRunLoopBase::RunWorkSource(info=0x000000017438c8b0) + 92 at message_pump_mac.mm:278
frame #18: 0x000000019358a278 CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 24
frame #19: 0x0000000193589bc0 CoreFoundation`__CFRunLoopDoSources0 + 524
frame #20: 0x00000001935877c0 CoreFoundation`__CFRunLoopRun + 804
frame #21: 0x00000001934b6048 CoreFoundation`CFRunLoopRunSpecific + 444
frame #22: 0x0000000101348794 Chromium`base::MessagePumpCFRunLoop::DoRun(this=0x000000017438c8b0, delegate=0x0000000109dbf430) + 72 at message_pump_mac.mm:526
frame #23: 0x0000000101347ea0 Chromium`base::MessagePumpCFRunLoopBase::Run(this=0x000000017438c8b0, delegate=0x0000000109dbf430) + 96 at message_pump_mac.mm:210
frame #24: 0x000000010111c320 Chromium`base::MessageLoop::RunHandler(this=0x0000000109dbf430) + 596 at message_loop.cc:386
frame #25: 0x00000001011ab2a0 Chromium`base::RunLoop::Run(this=0x000000016ebda6f0) + 276 at run_loop.cc:37
frame #26: 0x000000010125d600 Chromium`base::Thread::Run(this=0x0000000109d68f70, run_loop=0x000000016ebda6f0) + 400 at thread.cc:245
frame #27: 0x000000010125e3a4 Chromium`base::Thread::ThreadMain(this=0x0000000109d68f70) + 2612 at thread.cc:328
frame #28: 0x00000001012426c0 Chromium`base::(anonymous namespace)::ThreadFunc(params=0x000000017400e0b0) + 512 at platform_thread_posix.cc:71
frame #29: 0x000000019266f860 libsystem_pthread.dylib`_pthread_body + 240
frame #30: 0x000000019266f770 libsystem_pthread.dylib`_pthread_start + 284
frame #31: 0x000000019266cdbc libsystem_pthread.dylib`thread_start + 4
(lldb)
,
Jan 9 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/a110d353ecca5d521ce7ec513e0493c98f0b37ed commit a110d353ecca5d521ce7ec513e0493c98f0b37ed Author: pavely <pavely@chromium.org> Date: Mon Jan 09 21:24:26 2017 [Sync] ModelTypeWorker should delete tracker for entity deleted on the server The issue is that when entity is deleted, worker retains entity tracker object. Later when entity is recreated information from old tracker object is used. I'm changing worker to delete tracker object when it receives commit response about deleted entity. BUG= 677792 R=maxbogue@chromium.org Review-Url: https://codereview.chromium.org/2611123005 Cr-Commit-Position: refs/heads/master@{#442350} [modify] https://crrev.com/a110d353ecca5d521ce7ec513e0493c98f0b37ed/components/sync/engine_impl/model_type_worker.cc [modify] https://crrev.com/a110d353ecca5d521ce7ec513e0493c98f0b37ed/components/sync/engine_impl/model_type_worker_unittest.cc [modify] https://crrev.com/a110d353ecca5d521ce7ec513e0493c98f0b37ed/components/sync/engine_impl/worker_entity_tracker.cc [modify] https://crrev.com/a110d353ecca5d521ce7ec513e0493c98f0b37ed/components/sync/engine_impl/worker_entity_tracker.h [modify] https://crrev.com/a110d353ecca5d521ce7ec513e0493c98f0b37ed/components/sync/test/engine/mock_model_type_processor.cc [modify] https://crrev.com/a110d353ecca5d521ce7ec513e0493c98f0b37ed/components/sync/test/engine/mock_model_type_processor.h
,
Jan 9 2017
,
Jan 10 2017
Issue 679659 has been merged into this issue. |
||
►
Sign in to add a comment |
||
Comment 1 by pav...@chromium.org
, Jan 4 2017