Crash in Cronet metrics |
||||
Issue descriptionWhen Cronet metrics are enabled, an app sometimes can crash with a stack trace provided below. Presumably, it happens when the app is in background. There are no specific instructions how to reproduce it. Thread 31 Crashed: 0 0x00000001009087ac std::__1::__tree_iterator<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::__tree_node<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, void*>*, long> std::__1::__tree<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::__map_value_compare<NSURLSessionTask* __strong, std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::less<NSURLSessionTask* __strong>, true>, std::__1::allocator<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > > > >::find<NSURLSessionTask* __strong>(NSURLSessionTask* __strong const&) + 20 1 0x0000000100908554 cronet::CronetMetricsDelegate::OnStopNetRequest(std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> >) + 76 2 0x0000000100cc296c net::HttpProtocolHandlerCore::StopNetRequest() + 168 3 0x0000000100cc3140 net::HttpProtocolHandlerCore::OnReadCompleted(net::URLRequest*, int) + 280 4 0x0000000100bb8894 base::internal::Invoker<base::internal::BindState<void (net::URLRequestJob::*)(bool, int), base::WeakPtr<net::URLRequestJob>, bool>, void (int)>::Run(base::internal::BindStateBase*, int) + 36 5 0x00000001008fdc74 base::RepeatingCallback<void (int)>::Run(int) && + 48 6 0x0000000100bb84bc net::URLRequestJob::ReadRawDataComplete(int) + 48 7 0x0000000100bb559c net::URLRequestHttpJob::OnReadCompleted(int
,
May 7 2018
kapishnikov@ - Can you help triage this since this really isn't something in Chrome that we are familiar with?
,
May 7 2018
From the client: "This seems to happen when app is about to move from the active to inactive state. Seems always happen after applicationWillResignActive: and applicationDidEnterBackgroundis called". other threads that might be related: Chrome File Thread 0 libsystem_kernel.dylib 0x18166fe08 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x18166fc80 mach_msg + 72 2 CoreFoundation 0x181bb2e40 __CFRunLoopServiceMachPort + 196 3 CoreFoundation 0x181bb0908 __CFRunLoopRun + 1568 4 CoreFoundation 0x181ad0da8 CFRunLoopRunSpecific + 552 5 Foundation 0x182545674 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 6 app 0x100807bd8 base::MessagePumpNSRunLoop::DoRun(base::MessagePump::Delegate*) + 4330453976 7 app 0x1008069e8 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 4330449384 8 app 0x1007a3e4c base::RunLoop::Run() + 4330045004 9 app 0x1007d53b0 base::Thread::ThreadMain() + 4330247088 10 app 0x1007cdec4 base::(anonymous namespace)::ThreadFunc(void*) + 4330217156 11 libsystem_pthread.dylib 0x181831220 _pthread_body + 272 12 libsystem_pthread.dylib 0x181831110 _pthread_body + 290 13 libsystem_pthread.dylib 0x18182fb10 thread_start + 4 DnsConfigService 0 libsystem_kernel.dylib 0x18166fe08 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x18166fc80 mach_msg + 72 2 CoreFoundation 0x181bb2e40 __CFRunLoopServiceMachPort + 196 3 CoreFoundation 0x181bb0908 __CFRunLoopRun + 1568 4 CoreFoundation 0x181ad0da8 CFRunLoopRunSpecific + 552 5 Foundation 0x182545674 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 6 app 0x100807bd8 base::MessagePumpNSRunLoop::DoRun(base::MessagePump::Delegate*) + 4330453976 7 app 0x1008069e8 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 4330449384 8 app 0x1007a3e4c base::RunLoop::Run() + 4330045004 9 app 0x1007d53b0 base::Thread::ThreadMain() + 4330247088 10 app 0x1007cdec4 base::(anonymous namespace)::ThreadFunc(void*) + 4330217156 11 libsystem_pthread.dylib 0x181831220 _pthread_body + 272 12 libsystem_pthread.dylib 0x181831110 _pthread_body + 290 13 libsystem_pthread.dylib 0x18182fb10 thread_start + 4 NetworkConfigWatcher 0 libsystem_kernel.dylib 0x18166fe08 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x18166fc80 mach_msg + 72 2 CoreFoundation 0x181bb2e40 __CFRunLoopServiceMachPort + 196 3 CoreFoundation 0x181bb0908 __CFRunLoopRun + 1568 4 CoreFoundation 0x181ad0da8 CFRunLoopRunSpecific + 552 5 Foundation 0x182545674 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 304 6 app 0x100807bd8 base::MessagePumpNSRunLoop::DoRun(base::MessagePump::Delegate*) + 4330453976 7 app 0x1008069e8 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 4330449384 8 app 0x1007a3e4c base::RunLoop::Run() + 4330045004 9 app 0x1007d53b0 base::Thread::ThreadMain() + 4330247088 10 app 0x1007cdec4 base::(anonymous namespace)::ThreadFunc(void*) + 4330217156 11 libsystem_pthread.dylib 0x181831220 _pthread_body + 272 12 libsystem_pthread.dylib 0x181831110 _pthread_body + 290 13 libsystem_pthread.dylib 0x18182fb10 thread_start + 4 TaskSchedulerForegroundWorker 0 libsystem_kernel.dylib 0x18166fe08 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x18166fc80 mach_msg + 72 2 app 0x10080900c base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) + 4330459148 3 app 0x100809110 base::WaitableEvent::TimedWait(base::TimeDelta const&) + 4330459408 4 app 0x1007bdf5c base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) + 4330151772 5 app 0x1007be6f4 base::internal::SchedulerWorker::Thread::ThreadMain() + 4330153716 6 app 0x1007cdec4 base::(anonymous namespace)::ThreadFunc(void*) + 4330217156 7 libsystem_pthread.dylib 0x181831220 _pthread_body + 272 8 libsystem_pthread.dylib 0x181831110 _pthread_body + 290 9 libsystem_pthread.dylib 0x18182fb10 thread_start + 4 TaskSchedulerBackgroundBlockingWorker 0 libsystem_kernel.dylib 0x18166fe08 mach_msg_trap + 8 1 libsystem_kernel.dylib 0x18166fc80 mach_msg + 72 2 app 0x10080900c base::WaitableEvent::TimedWaitUntil(base::TimeTicks const&) + 4330459148 3 app 0x100809110 base::WaitableEvent::TimedWait(base::TimeDelta const&) + 4330459408 4 app 0x1007bdf5c base::internal::SchedulerWorker::Delegate::WaitForWork(base::WaitableEvent*) + 4330151772 5 app 0x1007be6f4 base::internal::SchedulerWorker::Thread::ThreadMain() + 4330153716 6 app 0x1007cdec4 base::(anonymous namespace)::ThreadFunc(void*) + 4330217156 7 libsystem_pthread.dylib 0x181831220 _pthread_body + 272 8 libsystem_pthread.dylib 0x181831110 _pthread_body + 290 9 libsystem_pthread.dylib 0x18182fb10 thread_start + 4
,
May 8 2018
The more frequent stack trace when crash is like this: Thread 31 Crashed: 0 Snapchat 0x00000001009087ac std::__1::__tree_iterator<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::__tree_node<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, void*>*, long> std::__1::__tree<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::__map_value_compare<NSURLSessionTask* __strong, std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::less<NSURLSessionTask* __strong>, true>, std::__1::allocator<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > > > >::find<NSURLSessionTask* __strong>(NSURLSessionTask* __strong const&) + 20 1 Snapchat 0x0000000100908554 cronet::CronetMetricsDelegate::OnStopNetRequest(std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> >) + 76 2 Snapchat 0x0000000100cc296c net::HttpProtocolHandlerCore::StopNetRequest() + 168 3 Snapchat 0x0000000100cc3140 net::HttpProtocolHandlerCore::OnReadCompleted(net::URLRequest*, int) + 280 4 Snapchat 0x0000000100bb8894 base::internal::Invoker<base::internal::BindState<void (net::URLRequestJob::*)(bool, int), base::WeakPtr<net::URLRequestJob>, bool>, void (int)>::Run(base::internal::BindStateBase*, int) + 36 5 Snapchat 0x00000001008fdc74 base::RepeatingCallback<void (int)>::Run(int) && + 48 6 Snapchat 0x0000000100bb84bc net::URLRequestJob::ReadRawDataComplete(int) + 48 7 Snapchat 0x0000000100bb559c net::URLRequestHttpJob::OnReadCompleted(int) + 112 8 Snapchat 0x0000000100bb6960 void base::internal::Invoker<base::internal::BindState<void (net::URLRequestHttpJob::*)(int), base::internal::UnretainedWrapper<net::URLRequestHttpJob> >, void (int)>::RunImpl<void (net::URLRequestHttpJob::* const&)(int), std::__1::tuple<base::internal::UnretainedWrapper<net::URLRequestHttpJob> > const&, 0ul>(void (net::URLRequestHttpJob::* const&&&)(int), std::__1::tuple<base::internal::UnretainedWrapper<net::URLRequestHttpJob> > const&&&, std::__1::integer_sequence<unsigned long, 0ul>, int&&) + 24 9 Snapchat 0x0000000100bb6938 base::internal::Invoker<base::internal::BindState<void (net::URLRequestHttpJob::*)(int), base::internal::UnretainedWrapper<net::URLRequestHttpJob> >, void (int)>::Run(base::internal::BindStateBase*, int) + 32 10 Snapchat 0x0000000100a9bb68 net::HttpNetworkTransaction::DoCallback(int) + 56 11 Snapchat 0x0000000100a9e114 void base::internal::Invoker<base::internal::BindState<void (net::HttpNetworkTransaction::*)(int), base::internal::UnretainedWrapper<net::HttpNetworkTransaction> >, void (int)>::RunImpl<void (net::HttpNetworkTransaction::* const&)(int), std::__1::tuple<base::internal::UnretainedWrapper<net::HttpNetworkTransaction> > const&, 0ul>(void (net::HttpNetworkTransaction::* const&&&)(int), std::__1::tuple<base::internal::UnretainedWrapper<net::HttpNetworkTransaction> > const&&&, std::__1::integer_sequence<unsigned long, 0ul>, int&&) + 24 12 Snapchat 0x0000000100a9e0ec base::internal::Invoker<base::internal::BindState<void (net::HttpNetworkTransaction::*)(int), base::internal::UnretainedWrapper<net::HttpNetworkTransaction> >, void (int)>::Run(base::internal::BindStateBase*, int) + 32 13 Snapchat 0x00000001008fdc74 base::RepeatingCallback<void (int)>::Run(int) && + 48 14 Snapchat 0x0000000100b83760 net::SpdyHttpStream::DoResponseCallback(int) + 56 15 Snapchat 0x0000000100b83974 net::SpdyHttpStream::OnClose(int) + 160 16 Snapchat 0x0000000100b987bc net::SpdyStream::OnClose(int) + 72 17 Snapchat 0x0000000100b8b9cc net::SpdySession::DeleteStream(std::__1::unique_ptr<net::SpdyStream, std::__1::default_delete<net::SpdyStream> >, int) + 112 18 Snapchat 0x0000000100b89830 net::SpdySession::CloseActiveStreamIterator(std::__1::__map_iterator<std::__1::__tree_iterator<std::__1::__value_type<unsigned int, net::SpdyStream*>, std::__1::__tree_node<std::__1::__value_type<unsigned int, net::SpdyStream*>, void*>*, long> >, int) + 176 19 Snapchat 0x0000000100b8976c net::SpdySession::CloseActiveStream(unsigned int, int) + 68 20 Snapchat 0x0000000100b8e0ac net::SpdySession::OnStreamEnd(unsigned int) + 176 21 Snapchat 0x0000000100ba2584 net::Http2DecoderAdapter::CommonHpackFragmentEnd() + 264 22 Snapchat 0x0000000100ba245c net::Http2DecoderAdapter::OnHeadersEnd() + 16 23 Snapchat 0x0000000100ac13d4 net::HeadersPayloadDecoder::StartDecodingPayload(net::FrameDecoderState*, net::DecodeBuffer*) + 148 24 Snapchat 0x0000000100abf944 net::Http2FrameDecoder::StartDecodingPayload(net::DecodeBuffer*) + 252 25 Snapchat 0x0000000100ba187c net::Http2DecoderAdapter::ProcessInputFrame(char const*, unsigned long) + 60 26 Snapchat 0x0000000100ba180c net::Http2DecoderAdapter::ProcessInput(char const*, unsigned long) + 68 27 Snapchat 0x0000000100b8c0f0 net::SpdySession::DoReadComplete(int) + 100 28 Snapchat 0x0000000100b8bde0 net::SpdySession::DoReadLoop(net::SpdySession::ReadState, int) + 132 29 Snapchat 0x0000000100b9166c base::internal::Invoker<base::internal::BindState<void (net::SpdySession::*)(net::SpdySession::ReadState, int), base::WeakPtr<net::SpdySession>, net::SpdySession::ReadState>, void (int)>::Run(base::internal::BindStateBase*, int) + 36 30 Snapchat 0x00000001008fdc74 base::RepeatingCallback<void (int)>::Run(int) && + 48 31 Snapchat 0x00000001009fac3c net::SSLClientSocketImpl::DoReadCallback(int) + 76 32 Snapchat 0x00000001009faa0c net::SSLClientSocketImpl::RetryAllOperations() + 160 33 Snapchat 0x00000001009f8744 base::internal::Invoker<base::internal::BindState<void (net::SocketBIOAdapter::*)(int), base::WeakPtr<net::SocketBIOAdapter> >, void (int)>::Run(base::internal::BindStateBase*, int) + 32 34 Snapchat 0x0000000100b73568 void base::internal::Invoker<base::internal::BindState<void (net::TCPClientSocket::*)(base::RepeatingCallback<void (int)> const&, int), base::internal::UnretainedWrapper<net::TCPClientSocket>, base::RepeatingCallback<void (int)> >, void (int)>::RunImpl<void (net::TCPClientSocket::* const&)(base::RepeatingCallback<void (int)> const&, int), std::__1::tuple<base::internal::UnretainedWrapper<net::TCPClientSocket>, base::RepeatingCallback<void (int)> > const&, 0ul, 1ul>(void (net::TCPClientSocket::* const&&&)(base::RepeatingCallback<void (int)> const&, int), std::__1::tuple<base::internal::UnretainedWrapper<net::TCPClientSocket>, base::RepeatingCallback<void (int)> > const&&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>, int&&) + 40 35 Snapchat 0x0000000100b73530 base::internal::Invoker<base::internal::BindState<void (net::TCPClientSocket::*)(base::RepeatingCallback<void (int)> const&, int), base::internal::UnretainedWrapper<net::TCPClientSocket>, base::RepeatingCallback<void (int)> >, void (int)>::Run(base::internal::BindStateBase*, int) + 32 36 Snapchat 0x0000000100b756b8 void base::internal::Invoker<base::internal::BindState<void (net::TCPSocketPosix::*)(base::RepeatingCallback<void (int)> const&, int), base::internal::UnretainedWrapper<net::TCPSocketPosix>, base::RepeatingCallback<void (int)> >, void (int)>::RunImpl<void (net::TCPSocketPosix::* const&)(base::RepeatingCallback<void (int)> const&, int), std::__1::tuple<base::internal::UnretainedWrapper<net::TCPSocketPosix>, base::RepeatingCallback<void (int)> > const&, 0ul, 1ul>(void (net::TCPSocketPosix::* const&&&)(base::RepeatingCallback<void (int)> const&, int), std::__1::tuple<base::internal::UnretainedWrapper<net::TCPSocketPosix>, base::RepeatingCallback<void (int)> > const&&&, std::__1::integer_sequence<unsigned long, 0ul, 1ul>, int&&) + 40 37 Snapchat 0x0000000100b75680 base::internal::Invoker<base::internal::BindState<void (net::TCPSocketPosix::*)(base::RepeatingCallback<void (int)> const&, int), base::internal::UnretainedWrapper<net::TCPSocketPosix>, base::RepeatingCallback<void (int)> >, void (int)>::Run(base::internal::BindStateBase*, int) + 32 38 Snapchat 0x00000001008fdc74 base::RepeatingCallback<void (int)>::Run(int) && + 48 39 Snapchat 0x0000000100b6cbbc net::SocketPosix::ReadCompleted() + 48 40 Snapchat 0x0000000100b6ca84 net::SocketPosix::OnFileCanReadWithoutBlocking(int) + 80 41 Snapchat 0x0000000100939af8 base::MessagePumpIOSForIO::HandleFdIOEvent(__CFFileDescriptor*, unsigned long, void*) + 116 42 CoreFoundation 0x0000000183ed32e8 __CFFileDescriptorPerform + 400 43 CoreFoundation 0x0000000183ef3404 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 20 44 CoreFoundation 0x0000000183ef2c2c __CFRunLoopDoSources0 + 272 45 CoreFoundation 0x0000000183ef079c __CFRunLoopRun + 1200 46 CoreFoundation 0x0000000183e10da8 CFRunLoopRunSpecific + 548 47 Foundation 0x0000000184885674 -[NSRunLoop(NSRunLoop) runMode:beforeDate:] + 300 48 Snapchat 0x00000001009bc8d8 base::MessagePumpNSRunLoop::DoRun(base::MessagePump::Delegate*) + 132 49 Snapchat 0x00000001009bb6e8 base::MessagePumpCFRunLoopBase::Run(base::MessagePump::Delegate*) + 104 50 Snapchat 0x0000000100958b4c base::RunLoop::Run() + 84 51 Snapchat 0x000000010098a0b0 base::Thread::ThreadMain() + 384 52 Snapchat 0x0000000100982bc4 base::(anonymous namespace)::ThreadFunc(void*) + 96 53 libsystem_pthread.dylib 0x0000000183b71220 _pthread_body + 268 54 libsystem_pthread.dylib 0x0000000183b71110 _pthread_start + 288 55 libsystem_pthread.dylib 0x0000000183b6fb10 thread_start + 0
,
May 8 2018
One of the theories is that static map is getting destroyed on main thread while still being used on networking thread. We've seen similar races in the past during app shutdown. Could you confirm what is main thread doing at the time of the crash? Is this crash readily reproducible?
,
May 8 2018
Main thread: com.apple.main-thread 0 libobjc.A.dylib 0x1810817ec objc_object::release() + 8 1 ModelIO 0x18e0480e0 ModelIO::RTGeometry::intersectRay(ModelIO::RTRaySegment const&, ModelIO::RTIntersectionResult&) const + 95276 2 libsystem_c.dylib 0x1818a08f0 __cxa_finalize_ranges + 384 3 libsystem_c.dylib 0x18184a25c exit + 24 4 UIKit 0x18bd59f34 -[UIApplication applicationWillTerminate] + 466 5 UIKit 0x18c0787b4 __98-[__UICanvasLifecycleMonitor_Compatability deactivateEventsOnly:withContext:forceExit:completion:]_block_invoke.271 + 336 6 UIKit 0x18be628b8 _runAfterCACommitDeferredBlocks + 296 7 UIKit 0x18be5898c _cleanUpAfterCAFlushAndRunDeferredBlocks + 384 8 UIKit 0x18bd3d550 _afterCACommitHandler + 132 9 CoreFoundation 0x181e52910 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32 10 CoreFoundation 0x181e50238 __CFRunLoopDoObservers + 412 11 CoreFoundation 0x181e50884 __CFRunLoopRun + 1436 12 CoreFoundation 0x181d70da8 CFRunLoopRunSpecific + 552 13 GraphicsServices 0x183d53020 GSEventRunModal + 100 14 UIKit 0x18bd5178c UIApplicationMain + 236 15 Snapchat 0x10052d7d0 main (main.m:39) 16 libdyld.dylib 0x181801fc0 start + 4
,
May 8 2018
Looks like the crash happened when the app was terminating: 4 UIKit 0x18bd59f34 -[UIApplication applicationWillTerminate] + 466
,
May 8 2018
I instrumented the code to reproduce this crash with 100% reliability. I can confirm that it happens when the app is terminating. It should not impact the user experience (still the fix is required). Here is how the main thread looks:
thread #1, queue = 'com.apple.main-thread'
...
frame #2: 0x00000001870c9bb8 libsystem_c.dylib`__cxa_finalize_ranges + 384
frame #3: 0x00000001870730a0 libsystem_c.dylib`exit + 24
frame #4: 0x0000000190b00670 UIKit`-[UIApplication _terminateWithStatus:] + 476
frame #5: 0x0000000101637978 cronet_test`::-[ChromeUnitTestDelegate runTests](self=0x00000001c000f8d0, _cmd="runTests") at test_support_ios.mm:172
Here is the crashing thread:
...
frame #3: 0x0000000102b8599c Cronet`std::__1::__tree_iterator<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::__tree_node<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, void*>*, long> std::__1::__tree<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::__map_value_compare<NSURLSessionTask* __strong, std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > >, std::__1::less<NSURLSessionTask* __strong>, true>, std::__1::allocator<std::__1::__value_type<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > > > >::find<NSURLSessionTask* __strong>(this=0x0000000103c7ce90, __v=0x0000000109e42b30) at __tree:2412
frame #4: 0x0000000102b84d7c Cronet`cronet::CronetMetricsDelegate::OnStopNetRequest(std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> >) [inlined] std::__1::map<NSURLSessionTask* __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> >, std::__1::less<NSURLSessionTask* __strong>, std::__1::allocator<std::__1::pair<NSURLSessionTask* const __strong, std::__1::unique_ptr<net::MetricsDelegate::Metrics, std::__1::default_delete<net::MetricsDelegate::Metrics> > > > >::find(this=0x0000000103c7ce90 size=100, __k=0x0000000109e42b30) at map:1210
I will work on the fix.
,
May 9 2018
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/7ebafc69e94d741b58e2a75b02206c206b4432c9 commit 7ebafc69e94d741b58e2a75b02206c206b4432c9 Author: kapishnikov <kapishnikov@chromium.org> Date: Wed May 09 01:10:50 2018 Cronet iOS: Make metrics map leaky Make the map that contains collected metrics data leaky. This fixes the issue when the static objects are deallocated by the main thread while the network thread is still active. This can happen when the app that uses Cronet is terminated. BUG= 840488 Cq-Include-Trybots: master.tryserver.chromium.mac:ios-simulator-cronet Change-Id: I5d8a3f06ead10071d5598fee0ae0203490a0a412 Reviewed-on: https://chromium-review.googlesource.com/1050766 Commit-Queue: Andrei Kapishnikov <kapishnikov@chromium.org> Reviewed-by: Misha Efimov <mef@chromium.org> Cr-Commit-Position: refs/heads/master@{#557044} [modify] https://crrev.com/7ebafc69e94d741b58e2a75b02206c206b4432c9/components/cronet/ios/cronet_metrics.h [modify] https://crrev.com/7ebafc69e94d741b58e2a75b02206c206b4432c9/components/cronet/ios/cronet_metrics.mm
,
May 9 2018
|
||||
►
Sign in to add a comment |
||||
Comment 1 by kapishnikov@chromium.org
, May 7 2018