This issue is split from crbug.com/707226. Chrome_Android seems to crash inside mallinfo().
However the number of crashes seems very small after merging the patches for fixing crbug.com/707226.
Since the metrics reported by GetRendererMemoryMetrics is important for memory reduction, we would like to avoid disabling GetRendererMemoryMetrics now. And the GetRendererMemoryMetrics will be replaced when new memory metrics is available.
I think, such crashes will be fixed at the time.
So I would like to keep track of the mallinfo() crashes. If the number becomes large, I will disable the metrics at Chrome_Android.
Crashes:
https://crash.corp.google.com/browse?q=product.name%3D%27Chrome_Android%27%20AND%20custom_data.ChromeCrashProto.magic_signature_1.name%3D%27content%3A%3ARenderThreadImpl%3A%3AGetRendererMemoryMetrics%27%20AND%20crash.reason!%3D%27SIGFPE%27&ignore_case=false&enable_rewrite=true&omit_field_name=&omit_field_value=&omit_field_opt=%3D#samplereports:5,stablesignature:1000,crashreason,crashaddress,month,day
A stacktrace of one example (report id: 21ab130c80000000)
0xb6e3f331 (libc.so + 0x00012331 )
0x97e2f447 (libchrome.so -render_thread_impl.cc:1709 ) content::RenderThreadImpl::GetRendererMemoryMetrics(content::RenderThreadImpl::RendererMemoryMetrics*) const
0x97e2e9a7 (libchrome.so -render_frame_impl.cc:3940 ) content::RenderFrameImpl::didFinishLoad(blink::WebLocalFrame*)
0x97d08bd9 (libchrome.so -FrameLoader.cpp:741 ) blink::FrameLoader::checkCompleted()
0x97d1be33 (libchrome.so -IncrementLoadEventDelayCount.cpp:29 ) blink::IncrementLoadEventDelayCount::clearAndCheckLoadEvent()
0x97d1bd49 (libchrome.so -bind_internal.h:214 ) base::internal::Invoker<base::internal::BindState<void (blink::HTMLLinkElement::*)(std::__ndk1::unique_ptr<blink::IncrementLoadEventDelayCount, std::__ndk1::default_delete<blink::IncrementLoadEventDelayCount> >), blink::Persistent<blink::HTMLLinkElement>, WTF::PassedWrapper<std::__ndk1::unique_ptr<blink::IncrementLoadEventDelayCount, std::__ndk1::default_delete<blink::IncrementLoadEventDelayCount> > > >, void ()>::Run(base::internal::BindStateBase*)
0x97a00f65 (libchrome.so -callback.h:68 ) base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)
0x97ba6203 (libchrome.so -task_queue_manager.cc:533 ) blink::scheduler::TaskQueueManager::ProcessTaskFromWorkQueue(blink::scheduler::internal::WorkQueue*, bool, blink::scheduler::LazyNow, base::TimeTicks*)
0x97ba56c5 (libchrome.so -task_queue_manager.cc:331 ) blink::scheduler::TaskQueueManager::DoWork(bool)
0x97a00f65 (libchrome.so -callback.h:68 ) base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*)
0x97a00cfb (libchrome.so -message_loop.cc:423 ) base::MessageLoop::RunTask(base::PendingTask*)
0x97a00c1f (libchrome.so -message_loop.cc:434 ) base::MessageLoop::DeferOrRunPendingTask(base::PendingTask)
0x97a00449 (libchrome.so -message_loop.cc:527 ) base::MessageLoop::DoWork()
0x97a06cc5 (libchrome.so -message_pump_default.cc:33 ) base::MessagePumpDefault::Run(base::MessagePump::Delegate*)
0x97a00215 (libchrome.so -run_loop.cc:37 ) base::RunLoop::Run()
0x97b5d965 (libchrome.so -renderer_main.cc:200 ) content::RendererMain(content::MainFunctionParams const&)
0x9786a5cf (libchrome.so -content_main_runner.cc:836 ) content::ContentMainRunnerImpl::Run()
1708 tasak 6 months #if defined(OS_LINUX) || defined(OS_ANDROID)
1709 tasak 6 months struct mallinfo minfo = mallinfo(); // crash here.
1710 tasak 6 months #if defined(USE_TCMALLOC)
1711 tasak 6 months size_t malloc_usage = minfo.uordblks;
1712 tasak 6 months #else
Comment 1 by sheriffbot@chromium.org
, Jul 20 2017