I have updated our app for iOS 7 and added the background fetch functionality. However, i'm noticing some crashes because of this feature. After background fetch call is completed, the completion handler block is executed with either new/no data. This results in a call to 'layoutSubviews' of my custom navigation NavigationBar and sometimes app is crashing with the following stack trace. I could not reproduce this issue myself but constantly receiving these crash logs from our users. Any help would be appreciated.
Thread 0 Crashed:
0 libsystem_platform.dylib 0x39cba486 _platform_memmove$VARIANT$Swift + 102
1 Foundation 0x2fce8f47 -[NSData(NSData) getBytes:range:] + 419
2 CoreFoundation 0x2f30637d CFDataGetBytes + 205
3 ImageIO 0x300e7357 CGImageReadGetBytesAtOffset + 283
4 ImageIO 0x300e7231 CGImageReadSessionGetBytes + 29
5 ImageIO 0x3022baeb read_fn + 23
6 ImageIO 0x300e7189 png_read_sig + 45
7 ImageIO 0x300e6e0d _cg_png_read_info + 33
8 ImageIO 0x300ef62f copyImageBlockSetPNG + 1123
9 ImageIO 0x300eec4b ImageProviderCopyImageBlockSetCallback + 539
10 CoreGraphics 0x2f43577d CGImageProviderCopyImageBlockSetWithOptions + 137
11 CoreGraphics 0x2f43a145 subImageProviderCopyImageBlockSet + 305
12 CoreGraphics 0x2f43577d CGImageProviderCopyImageBlockSetWithOptions + 137
13 CoreGraphics 0x2f435433 img_blocks_create + 383
14 CoreGraphics 0x2f4286fd img_data_lock + 1053
15 CoreGraphics 0x2f427ae1 CGSImageDataLock + 89
16 libRIP.A.dylib 0x2f774da7 ripc_AcquireImage + 99
17 libRIP.A.dylib 0x2f774131 ripc_DrawImage + 601
18 CoreGraphics 0x2f4279f3 CGContextDelegateDrawImage + 51
19 CoreGraphics 0x2f427879 CGContextDrawImage + 285
20 WebCore 0x373120db WebCore::GraphicsContext::drawNativeImage(CGImage*, WebCore::FloatSize const&, WebCore::ColorSpace, WebCore::FloatRect const&, WebCore::FloatRect const&, float, WebCore::CompositeOperator, WebCore::BlendMode, WebCore::ImageOrientation) + 1127
21 WebCore 0x37310e79 WebCore::BitmapImage::draw(WebCore::GraphicsContext*, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::ColorSpace, WebCore::CompositeOperator, WebCore::BlendMode, WebCore::RespectImageOrientationEnum) + 349
22 WebCore 0x3735d897 WebCore::BitmapImage::draw(WebCore::GraphicsContext*, WebCore::FloatRect const&, WebCore::FloatRect const&, WebCore::ColorSpace, WebCore::CompositeOperator, WebCore::BlendMode) + 31
23 WebCore 0x3735892f WebCore::Image::drawTiled(WebCore::GraphicsContext*, WebCore::FloatRect const&, WebCore::FloatPoint const&, WebCore::FloatSize const&, WebCore::ColorSpace, WebCore::CompositeOperator, WebCore::BlendMode) + 499
24 WebCore 0x37358735 WebCore::GraphicsContext::drawTiledImage(WebCore::Image*, WebCore::ColorSpace, WebCore::IntRect const&, WebCore::IntPoint const&, WebCore::IntSize const&, WebCore::CompositeOperator, bool, WebCore::BlendMode) + 193
25 WebCore 0x3728bc11 WebCore::RenderBoxModelObject::paintFillLayerExtended(WebCore::PaintInfo const&, WebCore::Color const&, WebCore::FillLayer const*, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance, WebCore::InlineFlowBox*, WebCore::LayoutSize const&, WebCore::CompositeOperator, WebCore::RenderObject*) + 3321
26 WebCore 0x3728addd WebCore::RenderBox::paintFillLayers(WebCore::PaintInfo const&, WebCore::Color const&, WebCore::FillLayer const*, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance, WebCore::CompositeOperator, WebCore::RenderObject*) + 449
27 WebCore 0x3728ab41 WebCore::RenderBox::paintBackground(WebCore::PaintInfo const&, WebCore::LayoutRect const&, WebCore::BackgroundBleedAvoidance) + 317
28 WebCore 0x37289ee5 WebCore::RenderBox::paintBoxDecorations(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 329
29 WebCore 0x3728806f WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 55
30 WebCore 0x37289c3f WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 187
31 WebCore 0x37288cc9 WebCore::RenderBlock::paintFloats(WebCore::PaintInfo&, WebCore::LayoutPoint const&, bool) + 305
32 WebCore 0x3728813d WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 261
33 WebCore 0x37289c3f WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 187
34 WebCore 0x37288cfb WebCore::RenderBlock::paintFloats(WebCore::PaintInfo&, WebCore::LayoutPoint const&, bool) + 355
35 WebCore 0x3728813d WebCore::RenderBlock::paintObject(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 261
36 WebCore 0x37289c3f WebCore::RenderBlock::paint(WebCore::PaintInfo&, WebCore::LayoutPoint const&) + 187
37 WebCore 0x37288861 WebCore::RenderLayer::paintForegroundForFragmentsWithPhase(WebCore::PaintPhase, WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow> const&, WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int, WebCore::RenderObject*) + 269
38 WebCore 0x372886e7 WebCore::RenderLayer::paintForegroundForFragments(WTF::Vector<WebCore::LayerFragment, 1ul, WTF::CrashOnOverflow> const&, WebCore::GraphicsContext*, WebCore::GraphicsContext*, WebCore::LayoutRect const&, bool, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int, WebCore::RenderObject*, bool, bool) + 235
39 WebCore 0x37286435 WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 1585
40 WebCore 0x37285ca9 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 621
41 WebCore 0x372885d9 WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer*, 0ul, WTF::CrashOnOverflow>*, WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 101
42 WebCore 0x3728647f WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 1659
43 WebCore 0x37285ca9 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 621
44 WebCore 0x372885d9 WebCore::RenderLayer::paintList(WTF::Vector<WebCore::RenderLayer*, 0ul, WTF::CrashOnOverflow>*, WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 101
45 WebCore 0x3728647f WebCore::RenderLayer::paintLayerContents(WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 1659
46 WebCore 0x37285ca9 WebCore::RenderLayer::paintLayer(WebCore::GraphicsContext*, WebCore::RenderLayer::LayerPaintingInfo const&, unsigned int) + 621
47 WebCore 0x372859b3 WebCore::RenderLayer::paint(WebCore::GraphicsContext*, WebCore::LayoutRect const&, unsigned int, WebCore::RenderObject*, WebCore::RenderRegion*, unsigned int) + 103
48 WebCore 0x3728541b WebCore::FrameView::paintContents(WebCore::GraphicsContext*, WebCore::IntRect const&) + 499
49 WebKit 0x37c4578d -[WebFrame(WebInternal) _drawRect:contentsOnly:] + 357
50 WebKit 0x37c455b9 -[WebHTMLView drawSingleRect:] + 137
51 WebKit 0x37c454db -[WebHTMLView drawRect:] + 43
52 WebCore 0x37284d93 -[WAKView _drawRect:context:lockFocus:] + 275
53 WebCore 0x37284ec7 -[WAKView _drawRect:context:lockFocus:] + 583
54 WebCore 0x37284ec7 -[WAKView _drawRect:context:lockFocus:] + 583
55 WebCore 0x37284ec7 -[WAKView _drawRect:context:lockFocus:] + 583
56 WebCore 0x37284ec7 -[WAKView _drawRect:context:lockFocus:] + 583
57 WebCore 0x37284c47 -[WAKView displayRect:] + 59
58 WebCore 0x37284c03 -[WAKWindow displayRect:] + 55
59 WebCore 0x37284b49 WebCore::TileCache::drawWindowContent(TileLayer*, CGContext*, CGRect) + 673
60 WebCore 0x37284525 WebCore::TileCache::drawLayer(TileLayer*, CGContext*) + 505
61 QuartzCore 0x317d3813 CABackingStoreUpdate_ + 1859
62 QuartzCore 0x318ad735 ___ZN2CA5Layer8display_Ev_block_invoke + 53
63 QuartzCore 0x317d30c3 x_blame_allocations + 83
64 QuartzCore 0x317d2d77 CA::Layer::display_() + 1119
65 QuartzCore 0x317b6969 CA::Layer::display_if_needed(CA::Transaction*) + 209
66 QuartzCore 0x317b6601 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 25
67 QuartzCore 0x317b600d CA::Context::commit_transaction(CA::Transaction*) + 229
68 QuartzCore 0x317b5e1f CA::Transaction::commit() + 315
69 UIKit 0x31d973c9 _UIWindowUpdateVisibleContextOrder + 209
70 UIKit 0x31d9729d +[UIWindow _prepareWindowsPassingTestForAppResume:] + 13
71 UIKit 0x31db0ac5 -[UIApplication _updateSnapshotAndStateRestorationArchiveForBackgroundEvent:saveState:exitIfCouldNotRestoreState:] + 201
72 UIKit 0x31db0d81 -[UIApplication _replyToBackgroundFetchRequestWithResult:remoteNotificationToken:sequenceNumber:updateApplicationSnapshot:] + 105
73 UIKit 0x31db138d __61-[UIApplication _handleOpportunisticFetchWithSequenceNumber:]_block_invoke + 37
74 MyApp 0x001456b7 -[List fetched:error:withBackgroundFetchCompletionHandler:] (List.m:421)
75 MyApp 0x00144f87 __71-[List fetchFromServerWithBackgroundFetchCompletionHandler:]_block_invoke (List.m:292)
76 MyApp 0x0021ed07 APICompletionBlock_block_invoke_6 (APIRequest.m:305)
77 libdispatch.dylib 0x39b8c103 _dispatch_call_block_and_release + 11
78 libdispatch.dylib 0x39b8c0ef _dispatch_client_callout + 23
79 libdispatch.dylib 0x39b8e9a9 _dispatch_main_queue_callback_4CF + 269
80 CoreFoundation 0x2f3785b9 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 9
81 CoreFoundation 0x2f376e85 __CFRunLoopRun + 1309
82 CoreFoundation 0x2f2e1541 CFRunLoopRunSpecific + 525
83 CoreFoundation 0x2f2e1323 CFRunLoopRunInMode + 107
84 GraphicsServices 0x340182eb GSEventRunModal + 139
85 UIKit 0x31b981e5 UIApplicationMain + 1137
86 MyApp 0x0009f77f main (main.m:14)
When you leave your app to the background, it saves the snapshot of the current view to the memory so it could be shown when you double-click the home button.
With the iOS7 background refresh feature ((void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler), you must execute the completionHandler function after you finish executing your fetch request.
The execution of that function also triggers updates to the UI - [UIApplication _updateSnapshotAndStateRestorationArchiveForBackgroundEvent:saveState:exitIfCouldNotRestoreState:], and in your case it triggers calculating the frame for a UIWebView from a background thread.
UIWebView can be updated only from the UIThread, so to overcome this crash I would suggest to wrap the completionHandler with execution on the main thread:
- (void)application:(UIApplication *)application didReceiveRemoteNotification:(NSDictionary *)userInfo fetchCompletionHandler:(void (^)(UIBackgroundFetchResult result))completionHandler
{
void (^safeHandler)(UIBackgroundFetchResult) = ^(UIBackgroundFetchResult result){
dispatch_async(dispatch_get_main_queue(), ^{
completionHandler(result);
});
};
[someInstance doSomethingInBackground:userInfo withHandler:safeHandler];
}
And you will no longer have to worry where you invoke the completionHandler (now safeHandler) from.
Related
I get a crash by firebase. Only a useful information:
Corrupt NSInvocation detected. Pointer authentication.
I didn't met this type of crash before. And I found this error is related to PAC, which means Pointer Authentication. And PAC is enabled from A12 clip. Thus all devices had this crash were from iPhone XR / 11 / 12 / 13 and so on.
Below is the crash file:
2022-02-07_16-44-57.4063_+0700-4c0b14a2bc46de636f18885059d3ef71e86671cd.crash
Incident Identifier: 3A24760C-2DD9-417C-AD49-DE29CD5DC9FF
Hardware Model: iPhone11,6
Process: ShopeeFood [27579]
Path: /private/var/containers/Bundle/Application/153DB199-A6C5-4237-A7C2-B2AB7F54D97B/ShopeeFood.app/ShopeeFood
Identifier: vn.foody.DeliveryNow
Version: 5.11.1 (24)
AppStoreTools: 13C90b
AppVariant: 1:iPhone11,6:15
Code Type: ARM-64 (Native)
Role: Foreground
Parent Process: launchd [1]
Coalition: vn.foody.DeliveryNow [3660]
Date/Time: 2022-02-07 16:44:57.4063 +0700
Launch Time: 2022-02-07 15:21:52.7331 +0700
OS Version: iPhone OS 15.2.1 (19C63)
Release Type: User
Baseband Version: 4.02.02
Report Version: 104
Exception Type: EXC_BREAKPOINT (SIGTRAP)
Exception Codes: 0x0000000000000001, 0x0000000180a17f64
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: SIGNAL 5 Trace/BPT trap: 5
Terminating Process: exc handler [27579]
Triggered by Thread: 0
Kernel Triage:
VM - pmap_enter failed with resource shortage
VM - pmap_enter failed with resource shortage
Thread 0 name:
Thread 0 Crashed:
0 CoreFoundation 0x0000000180a17f64 _NSIPoisoned + 16 (NSForwarding.m:3059)
1 CoreFoundation 0x000000018094a1e8 -[NSInvocation setArgument:atIndex:] + 596 (NSForwarding.m:3068)
2 CoreFoundation 0x000000018091e9c4 -[NSInvocation invokeWithTarget:] + 64 (NSForwarding.m:3474)
3 React 0x000000010744b8dc -[RCTModuleMethod invokeWithBridge:module:arguments:] + 460 (RCTModuleMethod.mm:584)
4 React 0x000000010744da2c facebook::react::invokeInner(RCTBridge*, RCTModuleData*, unsigned int, folly::dynamic const&) + 244 (RCTNativeModule.mm:114)
5 React 0x000000010744d790 facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int)::$_0::operator()() const + 44 (RCTNativeModule.mm:75)
6 React 0x000000010744d790 ___ZN8facebook5react15RCTNativeModule6invokeEjON5folly7dynamicEi_block_invoke + 88 (RCTNativeModule.mm:67)
7 React 0x000000010744d5f0 facebook::react::RCTNativeModule::invoke(unsigned int, folly::dynamic&&, int) + 388 (RCTNativeModule.mm:80)
8 cxxreact 0x0000000108932e70 facebook::react::JsToNativeBridge::callNativeModules(facebook::react::JSExecutor&, folly::dynamic&&, bool) + 152 (NativeToJsBridge.cpp:62)
9 jsireact 0x0000000108acf1dc facebook::react::JSIExecutor::callNativeModules(facebook::jsi::Value const&, bool) + 92 (JSIExecutor.cpp:388)
10 jsireact 0x0000000108ad132c facebook::react::JSIExecutor::initializeRuntime()::$_1::operator()(facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long) const + 8 (JSIExecutor.cpp:104)
11 jsireact 0x0000000108ad132c decltype(std::__1::forward<facebook::react::JSIExecutor::initializeRuntime()::$_1&>(fp)(std::__1::forward<facebook::jsi::Runtime&>(fp0), std::__1::forward<facebook::jsi::Value const&>(fp0), std::__... + 28 (type_traits:3747)
12 jsireact 0x0000000108ad132c facebook::jsi::Value std::__1::__invoke_void_return_wrapper<facebook::jsi::Value>::__call<facebook::react::JSIExecutor::initializeRuntime()::$_1&, facebook::jsi::Runtime&, facebook::jsi::Value cons... + 28 (__functional_base:317)
13 jsireact 0x0000000108ad132c std::__1::__function::__alloc_func<facebook::react::JSIExecutor::initializeRuntime()::$_1, std::__1::allocator<facebook::react::JSIExecutor::initializeRuntime()::$_1>, facebook::jsi::Value (faceboo... + 28 (functional:1553)
14 jsireact 0x0000000108ad132c std::__1::__function::__func<facebook::react::JSIExecutor::initializeRuntime()::$_1, std::__1::allocator<facebook::react::JSIExecutor::initializeRuntime()::$_1>, facebook::jsi::Value (facebook::jsi... + 44 (functional:1727)
15 jsi 0x0000000108a7d804 std::__1::__function::__value_func<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, face... + 28 (functional:1880)
16 jsi 0x0000000108a7d804 std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value const&, facebook::jsi::Value const*, unsigned long)>::operator()(facebook::jsi::Runtime&, facebook::jsi::Value... + 44 (functional:2555)
17 jsi 0x0000000108a7d548 facebook::jsc::JSCRuntime::createFunctionFromHostFunction(facebook::jsi::PropNameID const&, unsigned int, std::__1::function<facebook::jsi::Value (facebook::jsi::Runtime&, facebook::jsi::Value cons... + 384 (JSCRuntime.cpp:1151)
18 JavaScriptCore 0x000000018bc2352c JSC::JSCallbackObject<JSC::JSNonFinalObject>::callImpl(JSC::JSGlobalObject*, JSC::CallFrame*) + 468 (JSCallbackObjectFunctions.h:566)
19 JavaScriptCore 0x000000018c3f13c4 JSC::LLInt::setUpCall(JSC::CallFrame*, JSC::CodeSpecializationKind, JSC::JSValue, JSC::LLIntCallLinkInfo*) + 1736 (NativeFunction.h:50)
20 JavaScriptCore 0x000000018bb7b7b0 llint_function_for_construct_arity_checkTagGateAfter + 144508
21 JavaScriptCore 0x000000018bb7b70c llint_function_for_construct_arity_checkTagGateAfter + 144344
22 JavaScriptCore 0x000000018bb7b7e0 llint_function_for_construct_arity_checkTagGateAfter + 144556
23 JavaScriptCore 0x000000018bb7b70c llint_function_for_construct_arity_checkTagGateAfter + 144344
24 JavaScriptCore 0x000000018bb7ba70 llint_function_for_construct_arity_checkTagGateAfter + 145212
25 JavaScriptCore 0x000000018bb52028 vmEntryToJavaScriptTrampoline + 8
26 JavaScriptCore 0x000000018c28c704 JSC::Interpreter::executeProgram(JSC::SourceCode const&, JSC::JSGlobalObject*, JSC::JSObject*) + 12632 (JITCodeInlines.h:42)
27 JavaScriptCore 0x000000018c568c28 JSC::evaluate(JSC::JSGlobalObject*, JSC::SourceCode const&, JSC::JSValue, ***::NakedPtr<JSC::Exception>&) + 272 (Completion.cpp:137)
28 JavaScriptCore 0x000000018bc19ae8 JSEvaluateScript + 724 (JSBase.cpp:53)
29 jsi 0x0000000108a78b08 facebook::jsc::JSCRuntime::evaluateJavaScript(std::__1::shared_ptr<facebook::jsi::Buffer const> const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) + 292 (JSCRuntime.cpp:426)
30 jsireact 0x0000000108ace460 facebook::react::JSIExecutor::loadBundle(std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const> >, std::__1::basic_string<char, std::_... + 328 (JSIExecutor.cpp:158)
31 cxxreact 0x0000000108932310 facebook::react::NativeToJsBridge::loadBundleSync(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry> >, std::__1::unique_ptr<faceb... + 152 (NativeToJsBridge.cpp:154)
32 cxxreact 0x0000000108925a4c facebook::react::Instance::loadBundleSync(std::__1::unique_ptr<facebook::react::RAMBundleRegistry, std::__1::default_delete<facebook::react::RAMBundleRegistry> >, std::__1::unique_ptr<facebook::rea... + 164 (Instance.cpp:88)
33 cxxreact 0x0000000108925c08 facebook::react::Instance::loadScriptFromString(std::__1::unique_ptr<facebook::react::JSBigString const, std::__1::default_delete<facebook::react::JSBigString const> >, std::__1::basic_string<char,... + 72 (Instance.cpp:105)
34 React 0x000000010742ff94 __51-[RCTCxxBridge executeApplicationScript:url:async:]_block_invoke + 684 (RCTCxxBridge.mm:1367)
35 React 0x00000001074348bc std::__1::__function::__value_func<void ()>::operator()() const + 20 (functional:1880)
36 React 0x00000001074348bc std::__1::function<void ()>::operator()() const + 20 (functional:2555)
37 React 0x00000001074348bc facebook::react::tryAndReturnError(std::__1::function<void ()> const&) + 40 (RCTCxxUtils.mm:74)
38 React 0x0000000107429c38 -[RCTCxxBridge _tryAndHandleError:] + 100 (RCTCxxBridge.mm:275)
39 React 0x000000010742fc80 -[RCTCxxBridge executeApplicationScript:url:async:] + 164 (RCTCxxBridge.mm:1346)
40 React 0x000000010742fbd4 -[RCTCxxBridge executeApplicationScriptSync:url:] + 24 (RCTCxxBridge.mm:1341)
41 React 0x000000010742d538 -[RCTCxxBridge executeSourceCode:sync:] + 164 (RCTCxxBridge.mm:941)
42 SHPReactNativeSDK 0x0000000107ec1d8c -[SHPRNContainer executePluginCode:] + 236 (SHPRNContainer.m:152)
43 SHPReactNativeSDK 0x0000000107ec15a4 -[SHPRNContainer loadPluginBundle:bundleLoadCompletion:] + 492 (SHPRNContainer.m:80)
44 SHPReactNativeSDK 0x0000000107ed5fd8 -[SHPRNModeReleaseStrategies loadPlugin:bundleName:pageName:bundleLoadCompletion:] + 188 (SHPRNModeStrategies.m:63)
45 SHPReactNativeSDK 0x0000000107ec3070 __72-[SHPRNContainerManager loadPluginBundle:pageName:bundleLoadCompletion:]_block_invoke + 364 (SHPRNContainerManager.m:163)
46 SHPReactNativeSDK 0x0000000107ec3544 __72-[SHPRNContainerManager loadPluginBundle:pageName:bundleLoadCompletion:]_block_invoke.119 + 144 (SHPRNContainerManager.m:203)
47 Foundation 0x00000001820ffc10 -[__NSObserver _doit:] + 348 (NSNotification.m:327)
48 CoreFoundation 0x00000001808d2f88 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 28 (CFNotificationCenter.c:652)
49 CoreFoundation 0x000000018096ec3c ___CFXRegistrationPost_block_invoke + 52 (CFNotificationCenter.c:173)
50 CoreFoundation 0x0000000180941ff4 _CFXRegistrationPost + 456 (CFNotificationCenter.c:199)
51 CoreFoundation 0x00000001808e8df4 _CFXNotificationPost + 716 (CFNotificationCenter.c:1147)
52 Foundation 0x00000001820e5f68 -[NSNotificationCenter postNotificationName:object:userInfo:] + 96 (NSNotification.m:560)
53 SHPReactNativeSDK 0x0000000107ec4394 __62-[SHPRNContainerManager createPreLoadContainerWithCompletion:]_block_invoke + 88 (SHPRNContainerManager.m:346)
54 SHPReactNativeSDK 0x0000000107ec1b50 -[SHPRNContainer pluginJSLoaded:] + 128 (SHPRNContainer.m:124)
55 CoreFoundation 0x00000001808d2f88 __CFNOTIFICATIONCENTER_IS_CALLING_OUT_TO_AN_OBSERVER__ + 28 (CFNotificationCenter.c:652)
56 CoreFoundation 0x000000018096ec3c ___CFXRegistrationPost_block_invoke + 52 (CFNotificationCenter.c:173)
57 CoreFoundation 0x0000000180941ff4 _CFXRegistrationPost + 456 (CFNotificationCenter.c:199)
58 CoreFoundation 0x00000001808e8df4 _CFXNotificationPost + 716 (CFNotificationCenter.c:1147)
59 Foundation 0x00000001820e5f68 -[NSNotificationCenter postNotificationName:object:userInfo:] + 96 (NSNotification.m:560)
60 React 0x000000010742d7a4 __39-[RCTCxxBridge executeSourceCode:sync:]_block_invoke_2 + 200 (RCTCxxBridge.mm:928)
61 libdispatch.dylib 0x00000001805b1924 _dispatch_call_block_and_release + 32 (init.c:1517)
62 libdispatch.dylib 0x00000001805b3670 _dispatch_client_callout + 20 (object.m:560)
63 libdispatch.dylib 0x00000001805c1b70 _dispatch_main_queue_callback_4CF + 944 (inline_internal.h:2601)
64 CoreFoundation 0x00000001808f9d84 __CFRUNLOOP_IS_SERVICING_THE_MAIN_DISPATCH_QUEUE__ + 16 (CFRunLoop.c:1795)
65 CoreFoundation 0x00000001808b3f5c __CFRunLoopRun + 2540 (CFRunLoop.c:3144)
66 CoreFoundation 0x00000001808c7468 CFRunLoopRunSpecific + 600 (CFRunLoop.c:3268)
67 GraphicsServices 0x000000019c45238c GSEventRunModal + 164 (GSEvent.c:2200)
68 UIKitCore 0x0000000183269088 -[UIApplication _run] + 1100 (UIApplication.m:3493)
69 UIKitCore 0x0000000182fe7958 UIApplicationMain + 2092 (UIApplication.m:5046)
70 ShopeeFood 0x00000001043ed73c main + 152 (main.m:19)
71 dyld 0x000000010536daa4 start + 520 (dyldMain.cpp:879)
Hope anyone can help me how to solve this problem, or give me any information about this type of crash.
Thank you very much.
Some users of ours are experiencing a really bizarre crash with the following stack trace. This happens when the user launches the app. The devices with this crash are – weirdly – all iPhone 7 phones running iOS 12. My Google-fu is completely failing me. Has anyone else experienced this and have a way to correct? Thank you!
Crashed: com.apple.main-thread
0 CoreText 0x211894400 TFont::FindColorBitmapForGlyph(double, unsigned short, TsbixContext const&, unsigned long&, unsigned long&, unsigned char&, double&, double&) const + 280
1 CoreText 0x211894340 TFont::FindColorBitmapForGlyph(double, unsigned short, TsbixContext const&, unsigned long&, unsigned long&, unsigned char&, double&, double&) const + 88
2 CoreText 0x2118866a4 (anonymous namespace)::TCGImageData::TCGImageData(TFont const*, unsigned short, TsbixContext const&, CGContext*) + 352
3 CoreText 0x21188dfa0 DrawGlyphsAtPositions(TFont const*, unsigned short const*, CGPoint const*, unsigned long, CGContext*, CGAffineTransform, CGAffineTransform, bool)::$_9::operator()(CGAffineTransform, CGAffineTransform) const + 124
4 CoreText 0x2118890c8 DrawGlyphsAtPositions(TFont const*, unsigned short const*, CGPoint const*, unsigned long, CGContext*, CGAffineTransform, CGAffineTransform, bool) + 1252
5 CoreText 0x211886344 DrawGlyphsWithAdvancesAndTransform(TFont const*, unsigned short const*, CGSize const*, unsigned long, CGPoint, CGContext*, CGAffineTransform, CGAffineTransform, bool) + 340
6 CoreText 0x211887968 CTFontDrawGlyphsWithAdvancesInternal + 432
7 CoreText 0x211853978 TRun::DrawGlyphs(CGContext*, CFRange) const + 560
8 CoreText 0x21186afd0 TLine::DrawGlyphs(CGContext*) const + 184
9 UIFoundation 0x21817bcc4 -[NSCoreTypesetter _stringDrawingCoreTextEngineWithOriginalString:rect:padding:context:forceClipping:styledTextOptions:attributes:stringDrawingOptions:drawingContext:wantsTextLineFragments:validatedAttributedString:firstNonRenderedCharacterIndex:foundSoftHyphenAtEOL:enginePathUsed:] + 9976
10 UIFoundation 0x2181f8c74 __NSStringDrawingEngine + 3104
11 UIFoundation 0x21817c8d4 -[NSString(NSExtendedStringDrawing) drawWithRect:options:attributes:context:] + 164
12 UIKitCore 0x23b27cdc8 -[UILabel _drawTextInRect:baselineCalculationOnly:] + 4008
13 UIKitCore 0x23b27b680 -[UILabel drawTextInRect:] + 684
14 UIKitCore 0x23b30cda4 -[UIView(CALayerDelegate) drawLayer:inContext:] + 464
15 QuartzCore 0x21217570c -[CALayer drawInContext:] + 296
16 UIKitCore 0x23b2815e8 -[_UILabelContentLayer drawInContext:] + 168
17 QuartzCore 0x212056ca8 CABackingStoreUpdate_ + 176
18 QuartzCore 0x21217c28c invocation function for block in CA::Layer::display_() + 52
19 QuartzCore 0x212174fc4 -[CALayer _display] + 1540
20 UIKitCore 0x23b281524 -[_UILabelContentLayer display] + 124
21 QuartzCore 0x2120d9668 CA::Context::commit_transaction(CA::Transaction*) + 548
22 QuartzCore 0x212107ec8 CA::Transaction::commit() + 608
23 QuartzCore 0x212108d30 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) + 92
24 CoreFoundation 0x20db096bc __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
25 CoreFoundation 0x20db04350 __CFRunLoopDoObservers + 412
26 CoreFoundation 0x20db048f0 __CFRunLoopRun + 1264
27 CoreFoundation 0x20db040e0 CFRunLoopRunSpecific + 436
28 GraphicsServices 0x20fd7d584 GSEventRunModal + 100
29 UIKitCore 0x23ae64c00 UIApplicationMain + 212
30 MyApp 0x10258f6a0 main (AppDelegate.swift:21)
31 libdyld.dylib 0x20d5c2bb4 start + 4
getting lots of crashes as below in ios11: any idea what could be reason behind it. its happening in ios11 only. webkit framework is included in project.
Crashed: WebThread
0 JavaScriptCore 0x18d513a2c bmalloc::Heap::allocateLarge(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long, unsigned long) + 24
1 JavaScriptCore 0x18d513a20 bmalloc::Heap::allocateLarge(std::__1::lock_guard<bmalloc::StaticMutex>&, unsigned long, unsigned long) + 12
2 JavaScriptCore 0x18d5112a0 bmalloc::Allocator::allocateLarge(unsigned long) + 92
3 JavaScriptCore 0x18cb6bef4 WTF::fastMalloc(unsigned long) + 112
4 JavaScriptCore 0x18d11e6a8 JSC::Heap::addExecutable(JSC::ExecutableBase*) + 352
5 JavaScriptCore 0x18d10a288 JSC::FunctionExecutable::finishCreation(JSC::VM&) + 48
6 JavaScriptCore 0x18d44f7cc JSC::UnlinkedFunctionExecutable::link(JSC::VM&, JSC::SourceCode const&, std::optional<int>, JSC::Intrinsic) + 280
7 JavaScriptCore 0x18d207860 JSC::functionPrototypeApplyCodeGenerator(JSC::VM&) + 64
8 JavaScriptCore 0x18d10d81c JSC::FunctionPrototype::addFunctionProperties(JSC::ExecState*, JSC::JSGlobalObject*, JSC::JSFunction**, JSC::JSFunction**, JSC::JSFunction**) + 156
9 JavaScriptCore 0x18d21a9f8 JSC::JSGlobalObject::init(JSC::VM&) + 1300
10 JavaScriptCore 0x18d224898 JSC::JSGlobalObject::finishCreation(JSC::VM&, JSC::JSObject*) + 144
11 WebCore 0x18e015590 WebCore::JSDOMGlobalObject::finishCreation(JSC::VM&, JSC::JSObject*) + 24
12 WebCore 0x18e850840 WebCore::JSDOMWindowBase::finishCreation(JSC::VM&, WebCore::JSDOMWindowProxy*) + 44
13 WebCore 0x18e7d28ac WebCore::JSDOMWindow::finishCreation(JSC::VM&, WebCore::JSDOMWindowProxy*) + 36
14 WebCore 0x18e8548a4 WebCore::JSDOMWindowProxy::setWindow(WTF::RefPtr<WebCore::DOMWindow>&&) + 516
15 WebCore 0x18eed505c WebCore::ScriptController::setDOMWindowForWindowProxy(WebCore::DOMWindow*) + 360
16 WebCore 0x18dfed904 WebCore::FrameLoader::clear(WebCore::Document*, bool, bool, bool) + 476
17 WebCore 0x18e3a42c8 WebCore::DocumentWriter::begin(WebCore::URL const&, bool, WebCore::Document*) + 368
18 WebCore 0x18dfebb58 WebCore::DocumentLoader::commitData(char const*, unsigned long) + 176
19 WebKitLegacy 0x18f3d3bd8 -[WebHTMLRepresentation receivedData:withDataSource:] + 112
20 WebKitLegacy 0x18f3d3af8 -[WebDataSource(WebInternal) _receivedData:] + 68
21 WebKitLegacy 0x18f3d3a98 WebFrameLoaderClient::committedLoad(WebCore::DocumentLoader*, char const*, int) + 112
22 WebCore 0x18e0099c4 WebCore::DocumentLoader::commitLoad(char const*, int) + 172
23 WebCore 0x18e008bec WebCore::DocumentLoader::continueAfterContentPolicy(WebCore::PolicyAction) + 1796
24 WebCore 0x18e3930a0 WebCore::DocumentLoader::responseReceived(WebCore::ResourceResponse const&) + 1820
25 WebCore 0x18e392004 WebCore::DocumentLoader::handleSubstituteDataLoadNow() + 308
26 WebCore 0x18dfaf000 WebCore::ThreadTimers::sharedTimerFiredInternal() + 172
27 WebCore 0x18dfaef40 WebCore::timerFired(__CFRunLoopTimer*, void*) + 28
28 CoreFoundation 0x186152fc0 __CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION__ + 28
29 CoreFoundation 0x186152ce4 __CFRunLoopDoTimer + 864
30 CoreFoundation 0x1861524e4 __CFRunLoopDoTimers + 248
31 CoreFoundation 0x1861500cc __CFRunLoopRun + 1928
32 CoreFoundation 0x18606fe58 CFRunLoopRunSpecific + 436
33 WebCore 0x18dfe0a34 RunWebThread(void*) + 560
34 libsystem_pthread.dylib 0x185dd02b4 _pthread_body + 308
35 libsystem_pthread.dylib 0x185dd0180 _pthread_body + 310
36 libsystem_pthread.dylib 0x185dceb74 thread_start + 4
Recently I'm getting a lot of crashes on Crashlytics with title :
QuartzCore
CA::AttrList::set(unsigned int, _CAValueType, void const*)
This crash is caused i think by Google Admob SDK, And only on iOS 8.4.1. i did a little research to find out whats causing that and to find a solution for it, I've found a report in Admob Docs : https://groups.google.com/forum/#!category-topic/google-admob-ads-sdk/Qnfr17UHJ6Q , which have similar crash report.
They said that i have to turn off UIView Animation For GADBannerView : [GADBannerView setAnimationsEnabled:NO]; , But thats not a solution at all because Google Banner View doesn't subclass UIViewAnimation thus its gonna turn off all the animation inside the app including push, tableview animation ..etc
I don't know if somebody did face this crash before and what was the cause of that, And note that I'm not using WebView At all in my application.
And crash thread details is here:
#0
Crashed: WebThread
EXC_BAD_ACCESS KERN_INVALID_ADDRESS 0x000000007fe10153
Raw
0 libobjc.A.dylib
objc_msgSend + 21
1 QuartzCore
CA::AttrList::set(unsigned int, _CAValueType, void const*) + 412
2
QuartzCore
CAAnimation_setter(CAAnimation*, unsigned int, _CAValueType, void const*) + 162
3 QuartzCore
-[CAAnimation setDelegate:] + 18
4 UIKit
-[UIViewAnimationState setAnimationAttributes:correctZeroDuration:skipDelegateAssignment:customCurve:] + 742
5 UIKit
-[UIViewAnimationState animationForLayer:forKey:forView:] + 648
6 UIKit
-[UIViewAnimationState actionForLayer:forKey:forView:] + 40
7 UIKit
+[UIView(Animation) _defaultUIViewActionForLayer:forKey:] + 88
8 UIKit
-[UIView(CALayerDelegate) actionForLayer:forKey:] + 116
9 QuartzCore
-[CALayer actionForKey:] + 146
10 QuartzCore
actionForKey(CALayer*, CA::Transaction*, NSString*) + 56
11 QuartzCore
CA::Layer::begin_change(CA::Transaction*, unsigned int, objc_object*&) + 130
12 QuartzCore
CA::Layer::set_position(CA::Vec2<double> const&, bool) + 348
13 QuartzCore
-[CALayer setPosition:] + 54
14 QuartzCore
-[CALayer setFrame:] + 574
15 UIKit
-[UIView(Geometry) setFrame:] + 264
16 UIKit
-[UIImageView _setViewGeometry:forMetric:] + 170
17 UIKit
-[UIImageView setFrame:] + 38
18 UIKit
-[UISlider _layoutSubviewsForBoundsChange:] + 1082
19 UIKit
-[UISlider _sliderAnimationDidStop:finished:context:] + 74
20 UIKit
-[UIViewAnimationState sendDelegateAnimationDidStop:finished:] + 184
21 UIKit
+[UIViewAnimationState popAnimationState] + 320
22 UIKit
-[UISlider setValue:animated:] + 796
23 MediaPlayer
-[MPVolumeSlider volumeController:volumeValueDidChange:] + 78
24 MediaPlayer
-[MPVolumeController updateVolumeValue] + 252
25 MediaPlayer
-[MPVolumeSlider didMoveToSuperview] + 126
26 UIKit
-[UIView(Hierarchy) _postMovedFromSuperview:] + 428
27 UIKit
-[UIView(Internal) _addSubview:positioned:relativeTo:] + 1498
28 UIKit
-[UIView(Hierarchy) addSubview:] + 30
29 MediaPlayer
-[MPVolumeView _createSubviews] + 236
30 MediaPlayer
-[MPVolumeView _initWithStyle:] + 212
31 MediaPlayer
-[MPVolumeView initWithFrame:style:] + 80
32 MediaPlayer
-[MPVolumeView initWithFrame:] + 38
33 UIKit
-[UIView init] + 44
34 WebCore
-[WebMediaSessionHelper allocateVolumeView] + 264
35 WebCore
-[WebMediaSessionHelper initWithCallback:] + 394
36 WebCore
WebCore::MediaSessionManageriOS::MediaSessionManageriOS() + 172
37 WebCore
WebCore::MediaSessionManager::sharedManager() + 124
38 WebCore
WebCore::MediaSession::MediaSession(WebCore::MediaSessionClient&) + 32
39 WebCore
WebCore::HTMLMediaSession::create(WebCore::MediaSessionClient&) + 20
40 WebCore
WebCore::HTMLMediaElement::HTMLMediaElement(WebCore::QualifiedName const&, WebCore::Document&, bool) + 1046
41 WebCore
WebCore::HTMLAudioElement::create(WebCore::QualifiedName const&, WebCore::Document&, bool) + 36
42 WebCore
WebCore::audioConstructor(WebCore::QualifiedName const&, WebCore::Document&, WebCore::HTMLFormElement*, bool) + 56
43 WebCore
WebCore::HTMLElementFactory::createElement(WebCore::QualifiedName const&, WebCore::Document&, WebCore::HTMLFormElement*, bool) + 232
44 WebCore
WebCore::HTMLDocument::createElement(WTF::AtomicString const&, int&) + 88
45 WebCore
WebCore::jsDocumentPrototypeFunctionCreateElement(JSC::ExecState*) + 242
46 JavaScriptCore
llint_entry + 21314
47 JavaScriptCore
llint_entry + 20278
48 JavaScriptCore
llint_entry + 20278
49 JavaScriptCore
llint_entry + 20278
50 JavaScriptCore
callToJavaScript + 334
51 JavaScriptCore
JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 36
52 JavaScriptCore
JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 350
53 JavaScriptCore
JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 62
54 JavaScriptCore
JSC::boundFunctionCall(JSC::ExecState*) + 342
55 JavaScriptCore
callToNativeFunction + 318
56 JavaScriptCore
JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 418
57 JavaScriptCore
JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, JSC::JSValue*) + 64
58 WebCore
WebCore::JSEventListener::handleEvent(WebCore::ScriptExecutionContext*, WebCore::Event*) + 520
59 WebCore
WebCore::EventTarget::fireEventListeners(WebCore::Event*, WebCore::EventTargetData*, WTF::Vector<WebCore::RegisteredEventListener, 1ul, WTF::CrashOnOverflow>&) + 650
60 WebCore
WebCore::EventTarget::fireEventListeners(WebCore::Event*) + 162
61 WebCore
WebCore::EventContext::handleLocalEvents(WebCore::Event&) const + 60
62 WebCore
WebCore::EventDispatcher::dispatchEvent(WebCore::Node*, WTF::PassRefPtr<WebCore::Event>) + 692
63 WebCore
WebCore::Node::dispatchEvent(WTF::PassRefPtr<WebCore::Event>) + 20
64 WebCore
WebCore::Document::finishedParsing() + 92
65 WebCore
WebCore::HTMLDocumentParser::prepareToStopParsing() + 118
66 WebCore
non-virtual thunk to WebCore::HTMLDocumentParser::notifyFinished(WebCore::CachedResource*) + 72
67 WebCore
WebCore::CachedResource::checkNotify() + 58
68 WebCore
WebCore::SubresourceLoader::didFinishLoading(double) + 128
69 CFNetwork
___ZN27URLConnectionClient_Classic26_delegate_didFinishLoadingEU13block_pointerFvvE_block_invoke + 78
70 CFNetwork
___ZN27URLConnectionClient_Classic18_withDelegateAsyncEPKcU13block_pointerFvP16_CFURLConnectionPK33CFURLConnectionClientCurrent_VMaxE_block_invoke_2 + 60
71 CFNetwork
RunloopBlockContext::_invoke_block(void const*, void*) + 60
72 CoreFoundation
CFArrayApplyFunction + 36
73 CFNetwork
RunloopBlockContext::perform() + 182
74 CFNetwork
MultiplexerSource::perform() + 216
75 CFNetwork
MultiplexerSource::_perform(void*) + 48
76 CoreFoundation
__CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 14
77 CoreFoundation
__CFRunLoopDoSources0 + 218
78 CoreFoundation
__CFRunLoopRun + 772
79 CoreFoundation
CFRunLoopRunSpecific + 476
80 CoreFoundation
CFRunLoopRunInMode + 106
81 WebCore
RunWebThread(void*) + 418
82 libsystem_pthread.dylib
_pthread_body + 138
83 libsystem_pthread.dylib
_pthread_start + 118
84
libsystem_pthread.dylib
thread_start + 8
And Here is some of my code for Banner View :
func bannerViewDidLoadAd(banner: ADBannerView!) {
log.PrintMe("bannerViewDidLoadAd")
admobBannerView.hidden = true
UIView.animateWithDuration(0.5) { () -> Void in
adBannerView.alpha = 1 //iAd Banner
}
}
func bannerViewActionDidFinish(banner: ADBannerView!) {
log.PrintMe("bannerViewActionDidFinish")
}
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
log.PrintMe("didFailToReceiveAdWithError: \(error)")
UIView.animateWithDuration(0.5) { () -> Void in
adBannerView.alpha = 0 //iAd Banner
}
admobBannerView.hidden = false
}
func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
return true
}
I have a UIWebView based iOS application which has recently started crashing quite a lot. I strongly believe the crash is caused by something that has changed in the web content (worst-case, but maybe most likely, scenario is it's a 3rd party banner ad), since the crash reports started to come in for all version of my iOS app on the same day, suddenly going from 0 to several hundred crashes.
Here is the crash stack trace on iOS9:
Thread : Crashed: WebThread
0 libmetal_timestamp.dylib 0x18cf2df08 (Missing)
1 libmetal_timestamp.dylib 0x18cf2eec4 (Missing)
2 libmetal_timestamp.dylib 0x18cf335ac (Missing)
3 MobileCoreServices 0x185c941a8 (Missing)
4 MobileCoreServices 0x185bf3428 (Missing)
5 OpenGLES 0x185ccea9c glTexImage2D + 108
6 WebCore 0x1946e3da8 WebCore::GraphicsContext3D::texImage2D(unsigned int, int, unsigned int, int, int, int, unsigned int, unsigned int, void const*) + 60
7 WebCore 0x194ffb37c WebCore::WebGLRenderingContextBase::texImage2DBase(unsigned int, int, unsigned int, int, int, int, unsigned int, unsigned int, void const*, int&) + 160
8 WebCore 0x194ffbb84 WebCore::WebGLRenderingContextBase::texImage2D(unsigned int, int, unsigned int, int, int, int, unsigned int, unsigned int, JSC::ArrayBufferView*, int&) + 784
9 WebCore 0x194b80ba4 WebCore::jsWebGLRenderingContextBasePrototypeFunctionTexImage2D(JSC::ExecState*) + 2880
10 JavaScriptCore 0x1842422f0 llint_entry + 25056
11 JavaScriptCore 0x184241d10 llint_entry + 23552
12 JavaScriptCore 0x184241d10 llint_entry + 23552
13 JavaScriptCore 0x184241d10 llint_entry + 23552
14 JavaScriptCore 0x18423bef8 vmEntryToJavaScript + 312
15 JavaScriptCore 0x184168c48 JSC::JITCode::execute(JSC::VM*, JSC::ProtoCallFrame*) + 180
16 JavaScriptCore 0x183e02108 JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 400
17 JavaScriptCore 0x183eb41bc JSC::boundFunctionCall(JSC::ExecState*) + 512
18 JavaScriptCore 0x18423c080 vmEntryToNative + 320
19 JavaScriptCore 0x183e0214c JSC::Interpreter::executeCall(JSC::ExecState*, JSC::JSObject*, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&) + 468
20 JavaScriptCore 0x183f117dc JSC::call(JSC::ExecState*, JSC::JSValue, JSC::CallType, JSC::CallData const&, JSC::JSValue, JSC::ArgList const&, WTF::NakedPtr<JSC::Exception>&) + 80
21 WebCore 0x1943b8ecc WebCore::JSCallbackData::invokeCallback(JSC::JSValue, JSC::MarkedArgumentBuffer&, bool*) + 580
22 WebCore 0x194a60434 WebCore::JSRequestAnimationFrameCallback::handleEvent(double) + 196
23 WebCore 0x194dd634c WebCore::ScriptedAnimationController::serviceScriptedAnimations(double) + 424
24 WebCore 0x194575c48 WebCore::DisplayRefreshMonitor::displayDidRefresh() + 428
25 QuartzCore 0x187567840 CA::Display::DisplayLinkItem::dispatch() + 40
26 QuartzCore 0x1875676f4 CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 424
27 IOKit 0x183a262f8 IODispatchCalloutFromCFMessage + 372
28 CoreFoundation 0x18272e840 __CFMachPortPerform + 180
29 CoreFoundation 0x182744c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 56
30 CoreFoundation 0x1827443b4 __CFRunLoopDoSource1 + 436
31 CoreFoundation 0x18274210c __CFRunLoopRun + 1800
32 CoreFoundation 0x182670ca0 CFRunLoopRunSpecific + 384
33 WebCore 0x19425a54c RunWebThread(void*) + 456
34 libsystem_pthread.dylib 0x197c83b28 _pthread_body + 156
35 libsystem_pthread.dylib 0x197c83a8c _pthread_body + 154
36 libsystem_pthread.dylib 0x197c81028 thread_start + 4
On iOS8 it crashes with a slightly different but very very similar stack trace. The iOS8 and iOS9 crashes started at the same time so it's undoubtedly the same thing.
Given the OpenGLES references in the crash report I suspect it has something to do with DOM rendering involving the hardware. Has anyone else developed a hybrid web app and seen these crashes? Any specific CSS transforms/transitions that caused the app to crash this way?
Also, there's a reference to WebGLRenderingContextBase, does that mean that it must be caused by actual WebGL on the web page or could it still originate just form non-3D CSS styles?