95% of our app's crashes involve gpus_ReturnNotPermittedKillClient.
Here's a sample stack trace:
Thread 12 Crashed: 0 libGPUSupportMercury.dylib 0x000000018f439f08 gpus_ReturnNotPermittedKillClient + 12 1 libGPUSupportMercury.dylib 0x000000018f43aec4 gpusSubmitDataBuffers + 168 2 WebCore 0x00000001972db820 WebCore::GraphicsContext3D::reshape(int, int) + 524 3 WebCore 0x0000000197be55c8 WebCore::WebGLRenderingContextBase::initializeNewContext() + 636 4 WebCore 0x0000000197be506c WebCore::WebGLRenderingContextBase::WebGLRenderingContextBase(WebCore::HTMLCanvasElement*, ***::PassRefPtr, WebCore::GraphicsContext3D::Attributes) + 512 5 WebCore 0x0000000197bde53c WebCore::WebGLRenderingContext::WebGLRenderingContext(WebCore::HTMLCanvasElement*, ***::PassRefPtr, WebCore::GraphicsContext3D::Attributes) + 36 6 WebCore 0x0000000197be4840 WebCore::WebGLRenderingContextBase::create(WebCore::HTMLCanvasElement*, WebCore::WebGLContextAttributes*, ***::String const&) + 1276 7 WebCore 0x0000000196f9fa24 WebCore::HTMLCanvasElement::getContext(***::String const&, WebCore::CanvasContextAttributes*) + 344 8 WebCore 0x0000000196f9f7e4 WebCore::JSHTMLCanvasElement::getContext(JSC::ExecState*) + 208 9 JavaScriptCore 0x00000001864da330 llint_entry + 25052 10 JavaScriptCore 0x00000001864d9db4 llint_entry + 23648 11 JavaScriptCore 0x00000001864d9db4 llint_entry + 23648 12 JavaScriptCore 0x00000001864d9db4 llint_entry + 23648 13 JavaScriptCore 0x00000001864d3f38 vmEntryToJavaScript + 308 14 JavaScriptCore 0x0000000186400c84 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 176 15 JavaScriptCore 0x000000018608231c JSC::Interpreter::execute(JSC::ProgramExecutable*, JSC::ExecState*, JSC::JSObject*) + 8200 16 JavaScriptCore 0x00000001861da568 JSC::evaluate(JSC::ExecState*, JSC::SourceCode const&, JSC::JSValue, ***::NakedPtr&) + 436 17 WebCore 0x00000001979ca9cc WebCore::ScriptController::evaluateInWorld(WebCore::ScriptSourceCode const&, WebCore::DOMWrapperWorld&) + 288 18 WebCore 0x0000000196e1a49c WebCore::ScriptElement::executeScript(WebCore::ScriptSourceCode const&) + 336 19 WebCore 0x0000000196ea1388 WebCore::HTMLScriptRunner::executePendingScriptAndDispatchEvent(WebCore::PendingScript&) + 220 20 WebCore 0x0000000196e9af68 WebCore::HTMLScriptRunner::executeParsingBlockingScripts() + 280 21 WebCore 0x00000001973191d8 non-virtual thunk to WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) + 68 22 WebCore 0x0000000196e9d734 WebCore::CachedResource::checkNotify() + 280 23 WebCore 0x0000000196e9d500 WebCore::SubresourceLoader::didFinishLoading(double) + 1016 24 CFNetwork 0x0000000184137488 ___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 96 25 CFNetwork 0x0000000184225ad4 ___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 104 26 libdispatch.dylib 0x000000019a711770 _dispatch_client_callout + 12 27 libdispatch.dylib 0x000000019a71aa54 _dispatch_block_invoke + 536 28 CFNetwork 0x0000000184123c70 RunloopBlockContext::_invoke_block(void const*, void*) + 32 29 CoreFoundation 0x00000001849187ec CFArrayApplyFunction + 64 30 CFNetwork 0x0000000184123b54 RunloopBlockContext::perform() + 132 31 CFNetwork 0x0000000184123a14 MultiplexerSource::perform() + 308 32 CFNetwork 0x0000000184123840 MultiplexerSource::_perform(void*) + 64 33 CoreFoundation 0x00000001849ec5a4 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 20 34 CoreFoundation 0x00000001849ec038 __CFRunLoopDoSources0 + 536 35 CoreFoundation 0x00000001849e9d38 __CFRunLoopRun + 720 36 CoreFoundation 0x0000000184918dc0 CFRunLoopRunSpecific + 380 37 WebCore 0x0000000196e51aa0 RunWebThread(void*) + 452 38 libsystem_pthread.dylib 0x000000019a927b3c _pthread_body + 152 39 libsystem_pthread.dylib 0x000000019a927aa0 _pthread_start + 152 40 libsystem_pthread.dylib 0x000000019a925030 thread_start + 0
All the crashes occur within WebCore, but the only UIWebViews/WKWebViews in the app are ads. I'm not surprised, since ad libraries are almost always garbage. However, all of the crashes are on devices running iOS 9.x.
Any idea what is going on? We are doing our best to kill ads when the app is backgrounded, which is what appears to cause this crash.