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

Issue 745891 link

Starred by 2 users

Issue metadata

Status: WontFix
Owner:
Closed: Oct 2017
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Mac
Pri: 3
Type: Bug
Hotlist-MemoryInfra



Sign in to add a comment

The callback passed to Coordinator::RequestGlobalMemoryDump() was never run.

Project Member Reported by dskiba@chromium.org, Jul 18 2017

Issue description

Release build (with dchecks) of Chrome ToT (1751c38ce080866d4eb5fa81315d269bb810bdd8) on macOS. What I did:

1. Started with native heap profiling
2. Opened 5 pages
3. Took a trace, saved it
4. Killed (Ctrl-C) the Chrome

What I got:

[1641:775:0718/111904.647508:FATAL:interface_endpoint_client.cc(32)] Check failed: !is_valid. The callback passed to Coordinator::RequestGlobalMemoryDump() was never run.
0   Chromium Framework                  0x000000010ace058c base::debug::StackTrace::StackTrace(unsigned long) + 28
1   Chromium Framework                  0x000000010ad04d10 logging::LogMessage::~LogMessage() + 224
2   Chromium Framework                  0x000000010bc912e4 mojo::(anonymous namespace)::DCheckIfInvalid(base::WeakPtr<mojo::InterfaceEndpointClient> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 324
3   Chromium Framework                  0x0000000108bd969d base::internal::BindState<void (memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ProxyToResponder::*)(bool, unsigned long long, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>), base::internal::PassedWrapper<std::__1::unique_ptr<memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ProxyToResponder, std::__1::default_delete<memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ProxyToResponder> > > >::~BindState() + 125
4   Chromium Framework                  0x0000000108bd9606 base::internal::BindState<void (memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ProxyToResponder::*)(bool, unsigned long long, mojo::StructPtr<memory_instrumentation::mojom::GlobalMemoryDump>), base::internal::PassedWrapper<std::__1::unique_ptr<memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ProxyToResponder, std::__1::default_delete<memory_instrumentation::mojom::Coordinator_RequestGlobalMemoryDump_ProxyToResponder> > > >::Destroy(base::internal::BindStateBase const*) + 22
5   Chromium Framework                  0x00000001095abeca memory_instrumentation::CoordinatorImpl::~CoordinatorImpl() + 218
6   Chromium Framework                  0x00000001095abf5e memory_instrumentation::CoordinatorImpl::~CoordinatorImpl() + 14
7   Chromium Framework                  0x0000000108fa1b6c content::BrowserMainLoop::~BrowserMainLoop() + 220
8   Chromium Framework                  0x0000000108fa1eae content::BrowserMainLoop::~BrowserMainLoop() + 14
9   Chromium Framework                  0x0000000108fa8dc1 content::BrowserMainRunnerImpl::Shutdown() + 609
10  Chromium Framework                  0x0000000108fa1758 content::BrowserMain(content::MainFunctionParams const&) + 136
11  Chromium Framework                  0x000000010a7387d0 content::ContentMainRunnerImpl::Run() + 528
12  Chromium Framework                  0x000000010c7fab7e service_manager::Main(service_manager::MainParams const&) + 2574
13  Chromium Framework                  0x000000010a737bc4 content::ContentMain(content::ContentMainParams const&) + 68
14  Chromium Framework                  0x00000001085ffb68 ChromeMain + 168
15  Chromium                            0x0000000105c52de4 main + 404
16  libdyld.dylib                       0x00007fff927e1235 start + 1
17  ???                                 0x0000000000000009 0x0 + 9
 

Comment 1 by tapted@chromium.org, Jul 21 2017

Owner: erikc...@chromium.org
Status: Assigned (was: Untriaged)
[mac triage] assigning based on git blame

a6e5f6832a2b9   (  erikchen     2017-05-12 13:39:20 -0700       132)  base::trace_event::MemoryDumpRequestArgs args = {
a6e5f6832a2b9   (  erikchen     2017-05-12 13:39:20 -0700       133)      0, base::trace_event::MemoryDumpType::SUMMARY_ONLY,
a6e5f6832a2b9   (  erikchen     2017-05-12 13:39:20 -0700       134)      base::trace_event::MemoryDumpLevelOfDetail::BACKGROUND};
a6e5f6832a2b9   (  erikchen     2017-05-12 13:39:20 -0700       135)  coordinator_->RequestGlobalMemoryDump(args, callback);
a6e5f6832a2b9   (  erikchen     2017-05-12 13:39:20 -0700       136)}


(IMO, this might not be interesting. I'm not surprised callbacks are not run when killing Chrome with Ctrl+C..)

Comment 2 by hjd@chromium.org, Jul 21 2017

I this is a bug it is likely to be the recent changes to MDM I was making. diskiba@ have you seen this again?

Comment 3 Deleted

Status: WontFix (was: Assigned)
kenorb: The crash you saw is from a different cause:

"""
0   libbase.dylib                 	0x0000000123713754 base::debug::BreakDebugger() + 20 (debugger_posix.cc:269)
1   libbase.dylib                 	0x00000001237ad801 logging::LogMessage::~LogMessage() + 4513 (logging.cc:793)
2   libbase.dylib                 	0x00000001237aa1a5 logging::LogMessage::~LogMessage() + 21 (logging.cc:794)
3   libbindings.dylib             	0x00000001262cc8f5 mojo::(anonymous namespace)::DCheckIfInvalid(base::WeakPtr<mojo::InterfaceEndpointClient> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 277
4   libbindings.dylib             	0x00000001262cbbc2 mojo::(anonymous namespace)::ResponderThunk::DCheckInvalid(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 98 (interface_endpoint_client.cc:97)
5   libchrome_dll.dylib           	0x000000010ed9340b chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder::~EmbeddedSearch_HistorySyncCheck_ProxyToResponder() + 363 (search.mojom.cc:526)
6   libchrome_dll.dylib           	0x000000010ed93295 chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder::~EmbeddedSearch_HistorySyncCheck_ProxyToResponder() + 21 (search.mojom.cc:533)
7   libchrome_dll.dylib           	0x000000010ed93268 base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > >::~PassedWrapper() + 184 (memory:2233)
8   libchrome_dll.dylib           	0x000000010ed920e5 base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > >::~PassedWrapper() + 21 (bind_helpers.h:267)
9   libchrome_dll.dylib           	0x000000010ed92df5 std::__1::__tuple_leaf<0ul, base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > >, false>::~__tuple_leaf() + 21 (tuple:170)
10  libchrome_dll.dylib           	0x000000010ed92dd5 std::__1::__tuple_impl<std::__1::__tuple_indices<0ul>, base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::~__tuple_impl() + 21 (tuple:369)
11  libchrome_dll.dylib           	0x000000010ed92db5 std::__1::__tuple_impl<std::__1::__tuple_indices<0ul>, base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::~__tuple_impl() + 21 (tuple:369)
12  libchrome_dll.dylib           	0x000000010ed92d95 std::__1::tuple<base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::~tuple() + 21 (tuple:474)
13  libchrome_dll.dylib           	0x000000010ed92d75 std::__1::tuple<base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::~tuple() + 21 (tuple:474)
14  libchrome_dll.dylib           	0x000000010ed92d43 base::internal::BindState<void (chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder::*)(bool), base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::~BindState() + 35 (bind_internal.h:469)
15  libchrome_dll.dylib           	0x000000010ed92d15 base::internal::BindState<void (chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder::*)(bool), base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::~BindState() + 21 (bind_internal.h:469)
16  libchrome_dll.dylib           	0x000000010ed92cb7 base::internal::BindState<void (chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder::*)(bool), base::internal::PassedWrapper<std::__1::unique_ptr<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder, std::__1::default_delete<chrome::mojom::EmbeddedSearch_HistorySyncCheck_ProxyToResponder> > > >::Destroy(base::internal::BindStateBase const*) + 39 (bind_internal.h:472)
"""

I filed https://bugs.chromium.org/p/chromium/issues/detail?id=777474 to track this.

Comment 5 by dskiba@chromium.org, Oct 23 2017

Why this is WontFix?
hjd asked if you saw this again on 7/21. There's been no response for over 30 days. Since this was likely an issue with change hjd was making around July, but has since fixed, I closed the bug. Sorry for lack of explanation.

Sign in to add a comment