How To Reproduce:
tools/perf/run_benchmark loading.desktop --browser=default --story-filter=Elmundo --pageset-repeat=1 --also-run-disabled-tests --extra-browser-args=--enable-features=NetworkService
First Failing Build:
https://ci.chromium.org/buildbot/chromium.perf.fyi/Mojo%20Linux%20Perf/6286
Suspect:
3492f24eeb286d5a1f10a00e238562bfa7e4c09f (Clone and pass RenderFrameImpl's subresource loader factories to Prefetch)
(Reverting the patch fixed the issue)
Sample Log:
```
********************************************************************************
Operating system: Linux
0.0.0 Linux 3.13.0-141-generic #190-Ubuntu SMP Fri Jan 19 12:52:38 UTC 2018 x86_64
CPU: amd64
family 6 model 94 stepping 3
1 CPU
GPU: UNKNOWN
Crash reason: SIGSEGV
Crash address: 0x18
Process uptime: not available
Thread 0 (crashed)
0 chrome!content::RenderFrameHostImpl::ConnectToPrefetchURLLoaderService(mojo::InterfaceRequest<blink::mojom::PrefetchURLLoaderService>) [__tree : 1089 + 0x0]
rax = 0x00007fff47b52991 rdx = 0x0000000000000004
rcx = 0x0000000000000018 rbx = 0x0000000000000004
rsi = 0x00007f9704c33bc5 rdi = 0x00007fff47b52991
rbp = 0x00007fff47b529e0 rsp = 0x00007fff47b52960
r8 = 0x00003a605ff74680 r9 = 0x00007fff47b52910
r10 = 0x00007fff47b52818 r11 = 0x00003a605ff74698
r12 = 0x0000000000000000 r13 = 0x00007fff47b52991
r14 = 0x00007fff47b529f8 r15 = 0x00003a6060568000
rip = 0x00007f9706aece15
Found by: given as instruction pointer in context
1 chrome!base::internal::Invoker<base::internal::BindState<base::internal::IgnoreResultHelper<content::WebBluetoothServiceImpl* (content::RenderFrameHostImpl::*)(mojo::InterfaceRequest<blink::mojom::WebBluetoothService>)>, base::internal::UnretainedWrapper<content::RenderFrameHostImpl> >, void (mojo::InterfaceRequest<blink::mojom::WebBluetoothService>)>::Run(base::internal::BindStateBase*, mojo::InterfaceRequest<blink::mojom::WebBluetoothService>&&) + 0x45
rbx = 0x00003a60607d1608 rbp = 0x00007fff47b52a00
rsp = 0x00007fff47b529f0 r12 = 0x00003a60607e3b20
r13 = 0x0000000000001c92 r14 = 0x0000000000000000
r15 = 0x00007fff47b52c50 rip = 0x00007f97063258e5
Found by: call frame info
2 chrome!service_manager::CallbackBinder<blink::mojom::PrefetchURLLoaderService>::BindInterface(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [callback.h : 125 + 0x2]
rbx = 0x00003a60607d1608 rbp = 0x00007fff47b52a60
rsp = 0x00007fff47b52a10 r12 = 0x00003a60607e3b20
r13 = 0x0000000000001c92 r14 = 0x0000000000000000
r15 = 0x00007fff47b52c50 rip = 0x00007f9706af7cd1
Found by: call frame info
3 chrome!service_manager::BinderRegistryWithArgs<>::BindInterface(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [binder_registry.h : 86 + 0x6]
rbx = 0x00003a60607d1608 rbp = 0x00007fff47b52bc0
rsp = 0x00007fff47b52a70 r12 = 0x00007fff47b52c78
r13 = 0x0000000000000001 r14 = 0x00007fff47b52bd0
r15 = 0x00007fff47b52c50 rip = 0x00007f9706006f86
Found by: call frame info
4 chrome!content::RenderFrameHostImpl::GetInterface(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, mojo::ScopedHandleBase<mojo::MessagePipeHandle>) [binder_registry.h : 115 + 0xb]
rbx = 0x00003a60607d1600 rbp = 0x00007fff47b52c00
rsp = 0x00007fff47b52bd0 r12 = 0x00007fff47b52c78
r13 = 0x0000000000000001 r14 = 0x00007fff47b52c50
r15 = 0x00003a6060568000 rip = 0x00007f9706af2a76
Found by: call frame info
5 chrome!service_manager::mojom::InterfaceProviderStubDispatch::Accept(service_manager::mojom::InterfaceProvider*, mojo::Message*) [interface_provider.mojom.cc : 118 + 0x6]
rbx = 0x00007fff47b52d08 rbp = 0x00007fff47b52ca0
rsp = 0x00007fff47b52c10 r12 = 0x00007fff47b52c10
r13 = 0x0000000000000001 r14 = 0x00003a6060568050
r15 = 0x00003a6060a9c9c0 rip = 0x00007f970874b037
Found by: call frame info
6 chrome!mojo::InterfaceEndpointClient::HandleIncomingMessageThunk::Accept(mojo::Message*) [interface_endpoint_client.cc : 419 + 0x6]
rbx = 0x00007fff47b52ea0 rbp = 0x00007fff47b52cf0
rsp = 0x00007fff47b52cb0 r12 = 0x00003a60607a9500
r13 = 0x0000000000000001 r14 = 0x00007fff47b52d08
r15 = 0x00003a6060789c00 rip = 0x00007f9707eb4c95
Found by: call frame info
7 chrome!mojo::internal::MultiplexRouter::ProcessIncomingMessage(mojo::internal::MultiplexRouter::MessageWrapper*, mojo::internal::MultiplexRouter::ClientCallBehavior, base::SequencedTaskRunner*) [multiplex_router.cc : 865 + 0xb]
rbx = 0x00007fff47b52ea0 rbp = 0x00007fff47b52da0
rsp = 0x00007fff47b52d00 r12 = 0x00007fff47b52d08
r13 = 0x0000000000000001 r14 = 0x00003a60607a9500
r15 = 0x00003a6060789c00 rip = 0x00007f9707eba634
Found by: call frame info
8 chrome!mojo::internal::MultiplexRouter::Accept(mojo::Message*) [multiplex_router.cc : 589 + 0xb]
rbx = 0x00007fff47b52e38 rbp = 0x00007fff47b52f40
rsp = 0x00007fff47b52db0 r12 = 0x00003a6060789c00
r13 = 0x0000000000000002 r14 = 0x00007fff47b53001
r15 = 0x00007fff47b52ea8 rip = 0x00007f9707eb9ee2
Found by: call frame info
9 chrome!mojo::Connector::ReadSingleMessage(unsigned int*) [connector.cc : 443 + 0x3]
rbx = 0x00007f970c007ba0 rbp = 0x00007fff47b53050
rsp = 0x00007fff47b52f50 r12 = 0x00003a6060789c60
r13 = 0x00007fff47b53074 r14 = 0x00007fff47b53001
r15 = 0x00007fff47b52f90 rip = 0x00007f9707eb3cef
Found by: call frame info
10 chrome!mojo::Connector::ReadAllAvailableMessages() [connector.cc : 472 + 0xb]
rbx = 0x00003a6060789c60 rbp = 0x00007fff47b530a0
rsp = 0x00007fff47b53060 r12 = 0x00007fff47b53070
r13 = 0x00007fff47b53074 r14 = 0x00003a6060789dd8
r15 = 0x00007fff47b53060 rip = 0x00007f9707eb4265
Found by: call frame info
11 chrome!mojo::SimpleWatcher::OnHandleReady(int, unsigned int, mojo::HandleSignalsState const&) [callback.h : 125 + 0x8]
rbx = 0x00007fff47b530b8 rbp = 0x00007fff47b53100
rsp = 0x00007fff47b530b0 r12 = 0x00003a6060a95598
r13 = 0x00003a6060769730 r14 = 0x00007f9704d55240
r15 = 0x0000000000000000 rip = 0x00007f9707ec6a6d
Found by: call frame info
12 chrome!base::debug::TaskAnnotator::RunTask(char const*, base::PendingTask*) [callback.h : 96 + 0x2]
rbx = 0x00007f970c779548 rbp = 0x00007fff47b53190
rsp = 0x00007fff47b53110 r12 = 0x00007fff47b53270
r13 = 0x00003a605fc3dad0 r14 = 0x0000000000000000
r15 = 0x00003a605faca28c rip = 0x00007f9707ddc813
Found by: call frame info
13 chrome!base::MessageLoop::RunTask(base::PendingTask*) [message_loop.cc : 319 + 0x8]
rbx = 0x00007fff47b531e0 rbp = 0x00007fff47b53260
rsp = 0x00007fff47b531a0 r12 = 0x00007fff47b53270
r13 = 0x00003a605fc3dad0 r14 = 0x00007f970483183e
r15 = 0x00003a605fc3da20 rip = 0x00007f9707df56de
Found by: call frame info
14 chrome!base::MessageLoop::DoWork() [message_loop.cc : 329 + 0xb]
rbx = 0x00007fff47b53270 rbp = 0x00007fff47b53420
rsp = 0x00007fff47b53270 r12 = 0x00007fff47b53390
r13 = 0x00003a605fc3da20 r14 = 0x00007f970c1ceaf0
r15 = 0x00007fff47b53330 rip = 0x00007f9707df60bd
Found by: call frame info
15 chrome!base::(anonymous namespace)::WorkSourceDispatch(_GSource*, int (*)(void*), void*) [message_pump_glib.cc : 263 + 0x5]
rbx = 0x00003a605fbe6d80 rbp = 0x00007fff47b53440
rsp = 0x00007fff47b53430 r12 = 0x00003a605bc199c0
r13 = 0x0000000000000000 r14 = 0x00007f9705f0da48
r15 = 0x00003a605fa98ee0 rip = 0x00007f9707df91be
Found by: call frame info
16 libglib-2.0.so.0.4002.0 + 0x48e04
rbx = 0x0000000000000000 rbp = 0x00003a605bc5cf50
rsp = 0x00007fff47b53450 r12 = 0x00003a605bc199c0
r13 = 0x0000000000000000 r14 = 0x00007f9705f0da48
r15 = 0x00003a605fa98ee0 rip = 0x00007f9702144e04
Found by: call frame info
17 libglib-2.0.so.0.4002.0 + 0x57b40
rsp = 0x00007fff47b534c0 rip = 0x00007f9702153b40
Found by: stack scanning
18 libglib-2.0.so.0.4002.0 + 0x49048
rsp = 0x00007fff47b534d0 rip = 0x00007f9702145048
Found by: stack scanning
19 libglib-2.0.so.0.4002.0 + 0x490ec
rsp = 0x00007fff47b53530 rip = 0x00007f97021450ec
Found by: stack scanning
20 chrome!base::MessagePumpGlib::Run(base::MessagePump::Delegate*) [message_pump_glib.cc : 305 + 0x5]
rsp = 0x00007fff47b53550 rip = 0x00007f9707df8fb3
Found by: stack scanning
21 chrome!<name omitted> [run_loop.cc : 102 + 0x8]
rsp = 0x00007fff47b535a0 rip = 0x00007f9707e176b4
Found by: stack scanning
22 chrome!ChromeBrowserMainParts::MainMessageLoopRun(int*) [chrome_browser_main.cc : 2191 + 0x5]
rsp = 0x00007fff47b535c0 rip = 0x00007f9707b0c2f2
Found by: stack scanning
23 chrome!content::BrowserMainLoop::RunMainMessageLoopParts() [browser_main_loop.cc : 983 + 0x3]
rsp = 0x00007fff47b53650 rip = 0x00007f97069aa931
Found by: stack scanning
24 chrome!base::internal::Invoker<base::internal::BindState<void (download::InMemoryDownloadImpl::*)(std::__1::unique_ptr<storage::BlobDataHandle, std::__1::default_delete<storage::BlobDataHandle> >, storage::BlobStatus), base::WeakPtr<download::InMemoryDownloadImpl> >, void (std::__1::unique_ptr<storage::BlobDataHandle, std::__1::default_delete<storage::BlobDataHandle> >, storage::BlobStatus)>::RunOnce(base::internal::BindStateBase*, std::__1::unique_ptr<storage::BlobDataHandle, std::__1::default_delete<storage::BlobDataHandle> >&&, storage::BlobStatus) + 0x10
rsp = 0x00007fff47b536b8 rip = 0x00007f9705ef9c90
Found by: stack scanning
25 chrome!base::internal::Invoker<base::internal::BindState<void (mojo::StrongBinding<blink::mojom::blink::LeakDetector>::*)(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), base::internal::UnretainedWrapper<mojo::StrongBinding<blink::mojom::blink::LeakDetector> > >, void (unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>::Run(base::internal::BindStateBase*, unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 0x10
rsp = 0x00007fff47b536c0 rip = 0x00007f9705f278e0
Found by: stack scanning
26 chrome!content::BrowserMainRunnerImpl::Run() [browser_main_runner_impl.cc : 169 + 0x5]
rsp = 0x00007fff47b53710 rip = 0x00007f97069ac9e2
Found by: stack scanning
27 chrome!content::BrowserMain(content::MainFunctionParams const&, std::__1::unique_ptr<content::BrowserProcessSubThread, std::__1::default_delete<content::BrowserProcessSubThread> >) [browser_main.cc : 51 + 0x8]
rsp = 0x00007fff47b53730 rip = 0x00007f97069a6246
Found by: stack scanning
28 chrome!base::internal::Invoker<base::internal::BindState<void (download::InMemoryDownloadImpl::*)(std::__1::unique_ptr<storage::BlobDataHandle, std::__1::default_delete<storage::BlobDataHandle> >, storage::BlobStatus), base::WeakPtr<download::InMemoryDownloadImpl> >, void (std::__1::unique_ptr<storage::BlobDataHandle, std::__1::default_delete<storage::BlobDataHandle> >, storage::BlobStatus)>::RunOnce(base::internal::BindStateBase*, std::__1::unique_ptr<storage::BlobDataHandle, std::__1::default_delete<storage::BlobDataHandle> >&&, storage::BlobStatus) + 0x10
rsp = 0x00007fff47b53738 rip = 0x00007f9705ef9c90
Found by: stack scanning
29 chrome!base::internal::Invoker<base::internal::BindState<void (mojo::StrongBinding<blink::mojom::blink::LeakDetector>::*)(unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&), base::internal::UnretainedWrapper<mojo::StrongBinding<blink::mojom::blink::LeakDetector> > >, void (unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)>::Run(base::internal::BindStateBase*, unsigned int, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 0x10
rsp = 0x00007fff47b53740 rip = 0x00007f9705f278e0
Found by: stack scanning
30 chrome!std::__1::__tree_const_iterator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::__tree_node<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, void*>*, long> std::__1::__tree<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::__map_value_compare<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > >, std::__1::less<void>, true>, std::__1::allocator<std::__1::__value_type<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> >, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > > >::find<base::BasicStringPiece<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > >(base::BasicStringPiece<std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > > const&) const [char_traits.h : 67 + 0x5]
rsp = 0x00007fff47b53750 rip = 0x00007f9707ddb214
Found by: stack scanning
31 chrome!ChromeMainDelegate::RunProcess(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, content::MainFunctionParams const&) [__string : 217 + 0x8]
rsp = 0x00007fff47b537a0 rip = 0x00007f9705f8ad1c
Found by: stack scanning
32 chrome!content::ContentMainRunnerImpl::Run() [content_main_runner_impl.cc : 620 + 0x5]
rsp = 0x00007fff47b537e0 rip = 0x00007f9707ae8e15
Found by: stack scanning
33 chrome!service_manager::Main(service_manager::MainParams const&) [main.cc : 459 + 0x6]
rsp = 0x00007fff47b53880 rip = 0x00007f9707af1d37
Found by: stack scanning
```
This issue doesn't block Canary, and I'm not sure if it could happen anywhere else. Will let Prefetch owners to triage.
Comment 1 by bugdroid1@chromium.org
, Jun 11 2018