When I work in ToT, I keep getting a DCHECK failure in ClientUsageTracker::UpdateUsageCache. I trash my profile and restart, and it keeps working for a few hours or days. And then it crashes again with a DCHECK.
I shouldn't have to keep trashing my profile.
[87052:36099:0609/111059.217188:FATAL:client_usage_tracker.cc(152)] Check failed: cached_usage_by_host_[host][origin] >= 0 (-1181438 vs. 0)
0 libbase.dylib 0x0000000118ca29ce base::debug::StackTrace::StackTrace(unsigned long) + 174
1 libbase.dylib 0x0000000118ca2a6d base::debug::StackTrace::StackTrace(unsigned long) + 29
2 libbase.dylib 0x0000000118ca0cec base::debug::StackTrace::StackTrace() + 28
3 libbase.dylib 0x0000000118d40bcf logging::LogMessage::~LogMessage() + 479
4 libbase.dylib 0x0000000118d3e545 logging::LogMessage::~LogMessage() + 21
5 libstorage_browser.dylib 0x000000012e5117f8 storage::ClientUsageTracker::UpdateUsageCache(GURL const&, long long) + 984
6 libstorage_browser.dylib 0x000000012e5a86ac storage::UsageTracker::UpdateUsageCache(storage::QuotaClient::ID, GURL const&, long long) + 252
7 libstorage_browser.dylib 0x000000012e540f26 storage::QuotaManager::NotifyStorageModifiedInternal(storage::QuotaClient::ID, GURL const&, storage::StorageType, long long, base::Time) + 310
8 libstorage_browser.dylib 0x000000012e540dc9 storage::QuotaManager::NotifyStorageModified(storage::QuotaClient::ID, GURL const&, storage::StorageType, long long) + 393
9 libstorage_browser.dylib 0x000000012e5825d0 storage::QuotaManagerProxy::NotifyStorageModified(storage::QuotaClient::ID, GURL const&, storage::StorageType, long long) + 384
10 libcontent.dylib 0x000000011fb61e77 content::CacheStorage::DeleteCacheDidGetSize(content::CacheStorageCache*, long long) + 151
11 libcontent.dylib 0x000000011fb9560d void base::internal::FunctorTraits<void (content::CacheStorage::*)(content::CacheStorageCache*, long long), void>::Invoke<base::WeakPtr<content::CacheStorage> const&, content::CacheStorageCache* const&, long long>(void (content::CacheStorage::*)(content::CacheStorageCache*, long long), base::WeakPtr<content::CacheStorage> const&&&, content::CacheStorageCache* const&&&, long long&&) + 173
12 libcontent.dylib 0x000000011fb95525 void base::internal::InvokeHelper<true, void>::MakeItSo<void (content::CacheStorage::* const&)(content::CacheStorageCache*, long long), base::WeakPtr<content::CacheStorage> const&, content::CacheStorageCache* const&, long long>(void (content::CacheStorage::* const&&&)(content::CacheStorageCache*, long long), base::WeakPtr<content::CacheStorage> const&&&, content::CacheStorageCache* const&&&, long long&&) + 133
13 libcontent.dylib 0x000000011fb9548d void base::internal::Invoker<base::internal::BindState<void (content::CacheStorage::*)(content::CacheStorageCache*, long long), base::WeakPtr<content::CacheStorage>, content::CacheStorageCache*>, void (long long)>::RunImpl<void (content::CacheStorage::* const&)(content::CacheStorageCache*, long long), std::__1::tuple<base::WeakPtr<content::CacheStorage>, content::CacheStorageCache*> const&, 0ul, 1ul>(void (content::CacheStorage::* const&&&)(content::CacheStorageCache*, long long), std::__1::tuple<base::WeakPtr<content::CacheStorage>, content::CacheStorageCache*> const&&&, base::IndexSequence<0ul, 1ul>, long long&&) + 141
14 libcontent.dylib 0x000000011fb95394 base::internal::Invoker<base::internal::BindState<void (content::CacheStorage::*)(content::CacheStorageCache*, long long), base::WeakPtr<content::CacheStorage>, content::CacheStorageCache*>, void (long long)>::Run(base::internal::BindStateBase*, long long&&) + 68
15 libcontent.dylib 0x000000011f8bcaee base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>::Run(long long) const + 94
16 libcontent.dylib 0x000000011fb88c28 void content::CacheStorageScheduler::RunNextContinuation<long long>(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long) + 88
17 libcontent.dylib 0x000000011fb88fda void base::internal::FunctorTraits<void (content::CacheStorageScheduler::*)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), void>::Invoke<base::WeakPtr<content::CacheStorageScheduler> const&, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long>(void (content::CacheStorageScheduler::*)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), base::WeakPtr<content::CacheStorageScheduler> const&&&, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&&&, long long&&) + 170
18 libcontent.dylib 0x000000011fb88f25 void base::internal::InvokeHelper<true, void>::MakeItSo<void (content::CacheStorageScheduler::* const&)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), base::WeakPtr<content::CacheStorageScheduler> const&, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long>(void (content::CacheStorageScheduler::* const&&&)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), base::WeakPtr<content::CacheStorageScheduler> const&&&, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&&&, long long&&) + 133
19 libcontent.dylib 0x000000011fb88e8d void base::internal::Invoker<base::internal::BindState<void (content::CacheStorageScheduler::*)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), base::WeakPtr<content::CacheStorageScheduler>, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >, void (long long)>::RunImpl<void (content::CacheStorageScheduler::* const&)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), std::__1::tuple<base::WeakPtr<content::CacheStorageScheduler>, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> > const&, 0ul, 1ul>(void (content::CacheStorageScheduler::* const&&&)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), std::__1::tuple<base::WeakPtr<content::CacheStorageScheduler>, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> > const&&&, base::IndexSequence<0ul, 1ul>, long long&&) + 141
20 libcontent.dylib 0x000000011fb88d64 base::internal::Invoker<base::internal::BindState<void (content::CacheStorageScheduler::*)(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long), base::WeakPtr<content::CacheStorageScheduler>, base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> >, void (long long)>::Run(base::internal::BindStateBase*, long long&&) + 68
21 libcontent.dylib 0x000000011f8bcaee base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>::Run(long long) const + 94
22 libcontent.dylib 0x000000011fb7fa24 void base::internal::FunctorTraits<base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>, void>::Invoke<base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long const&>(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&&&, long long const&&&) + 244
23 libcontent.dylib 0x000000011fb7f91d void base::internal::InvokeHelper<false, void>::MakeItSo<base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, long long const&>(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&&&, long long const&&&) + 45
24 libcontent.dylib 0x000000011fb7f8e0 void base::internal::Invoker<base::internal::BindState<base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>, long long>, void ()>::RunImpl<base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&, std::__1::tuple<long long> const&, 0ul>(base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1> const&&&, std::__1::tuple<long long> const&&&, base::IndexSequence<0ul>) + 80
25 libcontent.dylib 0x000000011fb7f82c base::internal::Invoker<base::internal::BindState<base::Callback<void (long long), (base::internal::CopyMode)1, (base::internal::RepeatMode)1>, long long>, void ()>::Run(base::internal::BindStateBase*) + 44
26 libbase.dylib 0x0000000118c3eeef base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() + 95
27 libbase.dylib 0x0000000118ca4f10 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) + 1024
28 libbase.dylib 0x0000000118d9d76e base::MessageLoop::RunTask(base::PendingTask*) + 894
29 libbase.dylib 0x0000000118d9dcc7 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) + 71
30 libbase.dylib 0x0000000118d9ebab base::MessageLoop::DoWork() + 715
31 libbase.dylib 0x0000000118dac7ef base::MessagePumpLibevent::Run(base::MessagePump::Delegate*) + 271
32 libbase.dylib 0x0000000118d9d02b base::MessageLoop::Run() + 299
33 libbase.dylib 0x0000000118e9063e base::RunLoop::Run() + 286
34 libbase.dylib 0x0000000118f92705 base::Thread::Run(base::RunLoop*) + 405
35 libcontent.dylib 0x000000011fb068f7 content::BrowserThreadImpl::IOThreadRun(base::RunLoop*) + 71
36 libcontent.dylib 0x000000011fb06bfc content::BrowserThreadImpl::Run(base::RunLoop*) + 588
37 libbase.dylib 0x0000000118f934e3 base::Thread::ThreadMain() + 2403
38 libbase.dylib 0x0000000118f6bf48 base::(anonymous namespace)::ThreadFunc(void*) + 632
39 libsystem_pthread.dylib 0x00007fff9885a99d _pthread_body + 131
40 libsystem_pthread.dylib 0x00007fff9885a91a _pthread_body + 0
41 libsystem_pthread.dylib 0x00007fff98858351 thread_start + 13
Comment 1 by a...@chromium.org
, Jun 9 2017