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

Issue 722052 link

Starred by 1 user

Issue metadata

Status: Fixed
Owner:
Closed: May 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug
Hotlist-MemoryInfra



Sign in to add a comment

FATAL:memory_allocator_dump.cc(89)] Check failed: false.

Project Member Reported by erikc...@chromium.org, May 13 2017

Issue description

[80194:41475:0513/102942.379106:FATAL:memory_allocator_dump.cc(89)] Check failed: false. 
0   libbase.dylib                       0x0000000106d1661e base::debug::StackTrace::StackTrace(unsigned long) + 174
1   libbase.dylib                       0x0000000106d166bd base::debug::StackTrace::StackTrace(unsigned long) + 29
2   libbase.dylib                       0x0000000106d14b4c base::debug::StackTrace::StackTrace() + 28
3   libbase.dylib                       0x0000000106db3acf logging::LogMessage::~LogMessage() + 479
4   libbase.dylib                       0x0000000106db1445 logging::LogMessage::~LogMessage() + 21
5   libbase.dylib                       0x00000001070413f4 base::trace_event::MemoryAllocatorDump::AddString(char const*, char const*, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 180
6   libcontent.dylib                    0x000000011f83598a content::LevelDBDatabase::OnMemoryDump(base::trace_event::MemoryDumpArgs const&, base::trace_event::ProcessMemoryDump*) + 874
7   libbase.dylib                       0x000000010704aad4 base::trace_event::MemoryDumpManager::InvokeOnMemoryDump(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*) + 1220
8   libbase.dylib                       0x0000000107057668 void base::internal::FunctorTraits<void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), void>::Invoke<base::trace_event::MemoryDumpManager*, base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*>(void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), base::trace_event::MemoryDumpManager*&&, base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*&&) + 152
9   libbase.dylib                       0x000000010705755f void base::internal::InvokeHelper<false, void>::MakeItSo<void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), base::trace_event::MemoryDumpManager*, base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*>(void (base::trace_event::MemoryDumpManager::*&&)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), base::trace_event::MemoryDumpManager*&&, base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*&&) + 95
10  libbase.dylib                       0x00000001070574d0 void base::internal::Invoker<base::internal::BindState<void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager>, base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> >, void ()>::RunImpl<void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), std::__1::tuple<base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager>, base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> >, 0ul, 1ul>(void (base::trace_event::MemoryDumpManager::*&&)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), std::__1::tuple<base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager>, base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> >&&, base::IndexSequence<0ul, 1ul>) + 144
11  libbase.dylib                       0x00000001070573d9 base::internal::Invoker<base::internal::BindState<void (base::trace_event::MemoryDumpManager::*)(base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState*), base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager>, base::internal::UnretainedWrapper<base::trace_event::MemoryDumpManager::ProcessMemoryDumpAsyncState> >, void ()>::RunOnce(base::internal::BindStateBase*) + 57
12  libbase.dylib                       0x0000000106cb401f base::Callback<void (), (base::internal::CopyMode)0, (base::internal::RepeatMode)0>::Run() + 95
13  libbase.dylib                       0x0000000106d18b60 base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) + 1024
14  libbase.dylib                       0x0000000106e0af2e base::MessageLoop::RunTask(base::PendingTask*) + 894
15  libbase.dylib                       0x0000000106e0b480 base::MessageLoop::DeferOrRunPendingTask(base::PendingTask) + 64
16  libbase.dylib                       0x0000000106e0bbcc base::MessageLoop::DoWork() + 668
17  libbase.dylib                       0x0000000106e1bcb8 base::MessagePumpCFRunLoopBase::RunWork() + 104
18  libbase.dylib                       0x0000000106e1bc3c ___ZN4base24MessagePumpCFRunLoopBase13RunWorkSourceEPv_block_invoke + 28
19  libbase.dylib                       0x0000000106dbbe2a base::mac::CallWithEHFrame(void () block_pointer) + 10
20  libbase.dylib                       0x0000000106e1b1a5 base::MessagePumpCFRunLoopBase::RunWorkSource(void*) + 101
21  CoreFoundation                      0x00007fffb56dd3c1 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
22  CoreFoundation                      0x00007fffb56be2cd __CFRunLoopDoSources0 + 557
23  CoreFoundation                      0x00007fffb56bd7c6 __CFRunLoopRun + 934
24  CoreFoundation                      0x00007fffb56bd1c4 CFRunLoopRunSpecific + 420
25  libbase.dylib                       0x0000000106e1c34c base::MessagePumpCFRunLoop::DoRun(base::MessagePump::Delegate*) + 76
26  libbase.dylib                       0x0000000106e1b9fa base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 122
27  libbase.dylib                       0x0000000106e0a9c5 base::MessageLoop::RunHandler() + 453
28  libbase.dylib                       0x0000000106ef9f4b base::RunLoop::Run() + 267
29  libbase.dylib                       0x0000000106ff97b5 base::Thread::Run(base::RunLoop*) + 405
30  libbase.dylib                       0x0000000106ffa593 base::Thread::ThreadMain() + 2403
31  libbase.dylib                       0x0000000106fd2f18 base::(anonymous namespace)::ThreadFunc(void*) + 632
32  libsystem_pthread.dylib             0x00007fffcb0399af _pthread_body + 180
33  libsystem_pthread.dylib             0x00007fffcb0398fb _pthread_body + 0
34  libsystem_pthread.dylib             0x00007fffcb039101 thread_start + 13

Trace/BPT trap: 5

 
Running with a ToT build with MVP.
Status: WontFix (was: Untriaged)
I think that the NOTREACHED() just shouldn't be there. It fails into the anti-pattern of NOTREACHED, then continue to function correctly.
Owner: primiano@chromium.org
Status: Assigned (was: WontFix)
Don't see a problem with #2, notreached == dcheck(false). 
The real problem here is that some mdp is doing something wrong that it shouldn't do. 
It doesn't have to be a fatal failure, perhaps the consequences is just spamming the trace or injecting things that will be dropped on the floor. 
In any case we want the notreached, as that is the only way to spot these problems, and want to fix the root cause. 
I am trying to catch up with the train of cls, did you remove the notreached somewhere in your cls ?  
Yes, I did. But yo uhaven't reviewed it yet. Still waiting for a review on https://codereview.chromium.org/2883693002/
ok I see the problem, LevelDBDatabase::OnMemoryDump in content/browser/indexed_db/leveldb/leveldb_database.cc is missing a BACKGROUND check (similar to the one in components/leveldb_proto/leveldb_database.cc), so it's actually spamming BACKGROUND traces with extra stuff.

The only thing I can't understand is why the TracingBrowserTest.MAYBE_TestBackgroundMemoryInfra didn't hit this? Maybe browsertests are not built with dcheck_always_enabled, and that's on only for unittests?
dunno.

Anyways, you can comment out and put a TODO + bug (although honestly this rush is accumulating a storm of todos and bugs which is becoming non-trivial), but we should really fix that leveldb code.
Status: Started (was: Assigned)
https://codereview.chromium.org/2880973002/ on its way

Project Member

Comment 7 by bugdroid1@chromium.org, May 15 2017

The following revision refers to this bug:
  https://chromium.googlesource.com/chromium/src.git/+/a8b7cbcec01902e7b7f558e4816577e497828c33

commit a8b7cbcec01902e7b7f558e4816577e497828c33
Author: primiano <primiano@chromium.org>
Date: Mon May 15 18:14:20 2017

memory-infra: skip IndexedDB file name in BACKGROUND dumps

Strings are not allowed in BACKGROUND dumps and suballocations
are skipped anyways. Omitting it as the code is hitting a DCHECK.

BUG= 722052 

Review-Url: https://codereview.chromium.org/2880973002
Cr-Commit-Position: refs/heads/master@{#471831}

[modify] https://crrev.com/a8b7cbcec01902e7b7f558e4816577e497828c33/content/browser/indexed_db/leveldb/leveldb_database.cc

Status: Fixed (was: Started)

Sign in to add a comment