How many times were you able to reproduce it?
2ish/10
Steps to reproduce
- Search for longer articles and tap through on them
- Quickly tap back before they finish loading
Alternate steps
- Load article with a lot of images, scroll down quickly
- Tap back as images are loading
Expected results
App remains stable
Actual results
App crashes
Environments observed
App version: 6.3
OS versions: 12
Device model: X
Device language: en
Regression?
This is likely a similar issue to the top crash in 6.2.*. The crash seems to have been made more reproducible by changes in 6.3.
Stack traces
6.3 1625
Thread 44 Queue : SessionDelegateDispatchQueue (concurrent) #0 0x00000001cd945b88 in WTFCrashWithInfo(int, char const*, char const*, int) () #1 0x00000001cdb20410 in WebKit::WebProcessProxy::~WebProcessProxy() () #2 0x00000001cdb204a0 in WebKit::WebProcessProxy::~WebProcessProxy() () #3 0x00000001cda5fbc4 in WebKit::WebURLSchemeTask::~WebURLSchemeTask() () #4 0x00000001cda5fb20 in WTF::RefCounted<WebKit::WebURLSchemeTask>::deref() const () #5 0x00000001cda5eed0 in -[WKURLSchemeTaskImpl dealloc] () #6 0x0000000104e0f5ec in ___lldb_unnamed_symbol521$$Wikipedia () #7 0x00000001ec668c68 in _swift_release_dealloc () #8 0x00000001062b2134 in outlined consume of Session.Callback? () #9 0x00000001062aec14 in closure #1 in SessionDelegate.removeDataCallback(for:) at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/Session.swift:423 #10 0x00000001060dc95c in thunk for @escaping @callee_guaranteed () -> () () #11 0x0000000106a7b6f0 in _dispatch_call_block_and_release () #12 0x0000000106a7cc74 in _dispatch_client_callout () #13 0x0000000106a8cc3c in _dispatch_lane_concurrent_drain () #14 0x0000000106a85928 in _dispatch_lane_invoke () #15 0x0000000106a8ddc8 in _dispatch_root_queue_drain () #16 0x0000000106a8e7ac in _dispatch_worker_thread2 () #17 0x00000001be0751b4 in _pthread_wqthread () #18 0x00000001be077cd4 in start_wqthread () Enqueued from SessionDelegateDispatchQueue (Thread 44) Queue : SessionDelegateDispatchQueue (serial) #0 0x0000000106a81600 in dispatch_barrier_async () #1 0x00000001ec7514d4 in OS_dispatch_queue.async(group:qos:flags:execute:) () #2 0x00000001062aea8c in SessionDelegate.removeDataCallback(for:) at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/Session.swift:421 #3 0x00000001062afa58 in $defer #1 () in SessionDelegate.urlSession(_:task:didCompleteWithError:) at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/Session.swift:445 #4 0x00000001062af93c in SessionDelegate.urlSession(_:task:didCompleteWithError:) at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/Session.swift:444 #5 0x00000001062afb10 in @objc SessionDelegate.urlSession(_:task:didCompleteWithError:) () #6 0x00000001bebd8420 in __51-[NSURLSession delegate_task:didCompleteWithError:]_block_invoke.182 () #7 0x00000001beeb9ef8 in __NSBLOCKOPERATION_IS_CALLING_OUT_TO_A_BLOCK__ () #8 0x00000001bedc63e0 in -[NSBlockOperation main] () #9 0x00000001bedc58c8 in -[__NSOperationInternal _start:] () #10 0x00000001beebbc7c in __NSOQSchedule_f () #11 0x0000000106a7b6f0 in _dispatch_call_block_and_release () #12 0x0000000106a7cc74 in _dispatch_client_callout () #13 0x0000000106a7fffc in _dispatch_continuation_pop () #14 0x0000000106a7f4f0 in _dispatch_async_redirect_invoke () #15 0x0000000106a8ddc8 in _dispatch_root_queue_drain () #16 0x0000000106a8e7ac in _dispatch_worker_thread2 () #17 0x00000001be0751b4 in _pthread_wqthread () #18 0x00000001be077cd4 in start_wqthread () Enqueued from com.apple.NSURLSession-work (Thread 49) Queue : com.apple.NSURLSession-work (serial) #0 0x0000000106a81a1c in dispatch_async () #1 0x00000001beeb9638 in __NSOQSchedule () #2 0x00000001beebaa64 in __addOperations () #3 0x00000001bea03d74 in -[NSURLSession delegate_task:didCompleteWithError:] () #4 0x00000001bea00a48 in -[__NSCFLocalSessionTask _task_onqueue_didFinish] () #5 0x0000000106a7b6f0 in _dispatch_call_block_and_release () #6 0x0000000106a7cc74 in _dispatch_client_callout () #7 0x0000000106a84bf4 in _dispatch_lane_serial_drain () #8 0x0000000106a858b4 in _dispatch_lane_invoke () #9 0x0000000106a8f77c in _dispatch_workloop_worker_thread () #10 0x00000001be075114 in _pthread_wqthread () #11 0x00000001be077cd4 in start_wqthread () Enqueued from com.apple.main-thread (Thread 1) Queue : com.apple.main-thread (serial) #0 0x0000000106a81a1c in dispatch_async () #1 0x00000001bea16254 in -[__NSCFURLSessionTask cancel] () #2 0x0000000104e0d9c4 in SchemeHandler.webView(_:stop:) at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/SchemeHandler/SchemeHandler.swift:166 #3 0x0000000104e0dbe4 in @objc SchemeHandler.webView(_:stop:) () #4 0x00000001cdad1108 in WebKit::WebURLSchemeHandlerCocoa::platformStopTask(WebKit::WebPageProxy&, WebKit::WebURLSchemeTask&) () #5 0x00000001cdb4a158 in WebKit::WebURLSchemeHandler::stopTask(WebKit::WebPageProxy&, unsigned long long) () #6 0x00000001cdb4a0d4 in WebKit::WebURLSchemeHandler::stopAllTasksForPage(WebKit::WebPageProxy&) () #7 0x00000001cdaf02c0 in WebKit::WebPageProxy::stopAllURLSchemeTasks() () #8 0x00000001cdaecda4 in WebKit::WebPageProxy::close() () #9 0x00000001cd9388c0 in -[WKWebView dealloc] () #10 0x00000001bd649b9c in (anonymous namespace)::AutoreleasePoolPage::pop(void*) () #11 0x00000001eb0b89a8 in -[UIView dealloc] () #12 0x0000000104b2acd4 in -[WebViewController .cxx_destruct] at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/WebViewController.m:49 #13 0x00000001bd62e7cc in object_cxxDestructFromClass(objc_object*, objc_class*) () #14 0x00000001bd63e6b8 in objc_destructInstance () #15 0x00000001bd63e720 in object_dispose () #16 0x00000001eac77b28 in -[UIResponder dealloc] () #17 0x00000001ea6a0ab0 in -[UIViewController dealloc] () #18 0x0000000104b1d4dc in -[WebViewController dealloc] at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/WebViewController.m:55 #19 0x0000000104ada0f4 in -[WMFArticleViewController .cxx_destruct] at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/WMFArticleViewController.m:175 #20 0x00000001bd62e7cc in object_cxxDestructFromClass(objc_object*, objc_class*) () #21 0x00000001bd63e6b8 in objc_destructInstance () #22 0x00000001bd63e720 in object_dispose () #23 0x00000001eac77b28 in -[UIResponder dealloc] () #24 0x00000001ea6a0ab0 in -[UIViewController dealloc] () #25 0x0000000104ac1388 in -[WMFArticleViewController dealloc] at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/WMFArticleViewController.m:181 #26 0x0000000104a86230 in __destroy_helper_block_e8_32s at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/SavedArticlesFetcher.m:121 #27 0x00000001bdef0a44 in _Block_release () #28 0x000000010604a464 in __destroy_helper_block_e8_32s40s48s56s64s72s80s at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/WMFNotificationsController.m:202 #29 0x00000001bdef0a44 in _Block_release () #30 0x0000000106a7cc74 in _dispatch_client_callout () #31 0x0000000106a8a6fc in _dispatch_main_queue_callback_4CF () #32 0x00000001be3e6c1c in __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ () #33 0x00000001be3e1b54 in __CFRunLoopRun () #34 0x00000001be3e10b0 in CFRunLoopRunSpecific () #35 0x00000001c05e179c in GSEventRunModal () #36 0x00000001eac4d978 in UIApplicationMain () #37 0x0000000104b03c38 in main at /Users/wmf/Source/wikipedia-ios/Wikipedia/Code/main.m:47 #38 0x00000001bdea68e0 in start ()
6.2.3
Thread 6 name: Thread 6 Crashed: 0 WebKit 0x000000019bad5bf4 WTFCrashWithInfo(int, char const*, char const*, int) + 20 (Assertions.h:559) 1 WebKit 0x000000019bcade08 WebKit::WebProcessProxy::~WebProcessProxy() + 952 (Assertions.h:578) 2 WebKit 0x000000019bcade98 WebKit::WebProcessProxy::~WebProcessProxy() + 12 (WebProcessProxy.cpp:157) 3 WebKit 0x000000019bbee444 WebKit::WebURLSchemeTask::~WebURLSchemeTask() + 156 (ThreadSafeRefCounted.h:76) 4 WebKit 0x000000019bbee3a0 WTF::RefCounted<WebKit::WebURLSchemeTask>::deref() const + 32 (WebURLSchemeTask.h:54) 5 WebKit 0x000000019bbed750 -[WKURLSchemeTaskImpl dealloc] + 60 (Ref.h:60) 6 libsystem_blocks.dylib 0x000000018c0d0a44 _Block_release + 152 (runtime.cpp:177) 7 libsystem_blocks.dylib 0x000000018c0d0a44 _Block_release + 152 (runtime.cpp:177) 8 CFNetwork 0x000000018cc1c354 __destroy_helper_block_e8_32o40o48b + 28 (LocalSessionTask.mm:520) 9 libsystem_blocks.dylib 0x000000018c0d0a44 _Block_release + 152 (runtime.cpp:177) 10 Foundation 0x000000018cfa5aa0 -[NSBlockOperation dealloc] + 64 (NSOperation.m:1523) 11 Foundation 0x000000018d0339d0 __destroy_helper_block_e8_32o40o + 28 (NSProgressRegistrar.m:379) 12 libsystem_blocks.dylib 0x000000018c0d0a44 _Block_release + 152 (runtime.cpp:177) 13 libdispatch.dylib 0x000000018c0757d4 _dispatch_client_callout + 16 (object.m:511) 14 libdispatch.dylib 0x000000018c01a018 _dispatch_continuation_pop$VARIANT$mp + 412 (inline_internal.h:2441) 15 libdispatch.dylib 0x000000018c0196dc _dispatch_async_redirect_invoke + 600 (queue.c:796) 16 libdispatch.dylib 0x000000018c02602c _dispatch_root_queue_drain + 372 (inline_internal.h:2482) 17 libdispatch.dylib 0x000000018c0268d0 _dispatch_worker_thread2 + 128 (queue.c:6072) 18 libsystem_pthread.dylib 0x000000018c2551b4 _pthread_wqthread + 464 (pthread.c:2361) 19 libsystem_pthread.dylib 0x000000018c257cd4 start_wqthread + 4