When running iOS 14.2 Beta, webkit crashes when running any webGL example shown here: https://luma.gl/examples In iOS 14, these run perfectly fine. I don't see any issues or errors in the Javascript console. However managed to extract from the following from Xcode: 2020-09-29 10:57:16.105580+0530 RadarX[303:5950] [Process] 0x10485ee18 - [pageProxyID=6, webPageID=7, PID=315] WebPageProxy::processDidTerminate: (pid 315), reason 3 2020-09-29 10:57:16.109550+0530 RadarX[303:5950] [assertion] Error acquiring assertion: <Error Domain=RBSAssertionErrorDomain Code=3 "Target is not running or required target entitlement is missing" UserInfo={RBSAssertionAttribute=<RBSDomainAttribute| domain:"com.apple.webkit" name:"Background" sourceEnvironment:"(null)">, NSLocalizedFailureReason=Target is not running or required target entitlement is missing}>
<rdar://problem/69749724>
WebKit in iOS 14.2 beta crashes similarly on many high traffic sites that work well in 14.0. Since the crash profile is similar, it's possible that these are related to the same underlying WebGL issue. The impact is to commercial experiences for major brands including Starbucks and LEGO. LEGO Harry Potter: https://ttbda.com/ Starbucks: https://www.starbucksrewardsstarland.com/ FIAT: https://stradavirtual.fiat.com.br/ McDonalds: https://byebyeballonger.mcdonalds.se/ Saatchi Art: https://saatchiart.8thwall.app/art-preview/?a=Aleksandra%20Toborowicz&d=0.1&h=70&i=https://images.saatchiart.com/saatchi/486818/art/7864786/6932612-FOUFKARL-7.jpg&l=0&p=327000&s=P1-U486818-A7864786-T1&t=Blacks%20/%20Triptych&w=300
I'm glad this isn't an isolated case. My business is not as large as Lego, Starbucks, etc. So if this bug goes into production, my business will likely fail due to the negative reviews because my application would be completely unusuable. I hope we can get the bottom of this. Thanks, Steve
Crash looks like: Exception Type: EXC_BREAKPOINT (SIGTRAP) Exception Codes: 0x0000000000000001, 0x00000001a53f2d44 Termination Signal: Trace/BPT trap: 5 Termination Reason: Namespace SIGNAL, Code 0x5 Terminating Process: exc handler [583] Triggered by Thread: 0 Thread 0 name: Dispatch queue: com.apple.main-thread Thread 0 Crashed: 0 WebCore 0x00000001a53f2d44 WebCore::WebGLRenderingContext::getExtension(WTF::String const&) + 18320 (/Library/Caches/com.apple.xbs/Sources/WebCore/WebCore-7610.2.7/./html/canvas/WebGLExtension.cpp:36) 1 WebCore 0x00000001a53efe70 WebCore::WebGLRenderingContext::getExtension(WTF::String const&) + 6332 (/Library/Caches/com.apple.xbs/Sources/WebCore/WebCore-7610.2.7/./html/canvas/WebGLRenderingContext.cpp:161) 2 WebCore 0x00000001a4832650 WebCore::jsWebGLRenderingContextPrototypeFunctionGetExtension(JSC::JSGlobalObject*, JSC::CallFrame*) + 456 (/Library/Caches/com.apple.xbs/Binaries/WebCore/install/Symbols/BuiltProducts/DerivedSources/WebCore/JSWebGLRenderingContext.cpp:6472) 3 ??? 0x0000000ddbcc8244 0 + 59522187844
Looks like we have noticed this quickly and already fixed it in Bug 216337. Thanks for the bug report. *** This bug has been marked as a duplicate of bug 216337 ***
Ok, great to hear. Then I assume it's going to be bundled up in the next iOS 14.2 beta?
Just to confirm, it appears that this is a minimal repro of our issue: const runIosCrashMinimal = (canvas) => { const gl = canvas.getContext('webgl') const exts = [ 'WEBGL_compressed_texture_astc', ]; (gl.getSupportedExtensions() || []).forEach((e) => { console.log(e) exts.indexOf(e) != -1 && gl.getExtension(e) }) } It looks like the linked patch might be relevant to this, but I just wanted to make sure that it matches everyone's expectations for the linked issue.
I just downloaded 'iOS 14.2 Developer Beta 2' and the fixed has been included in this version. Please keep up the awesome work within the Webkit team and at Apple!
*** This bug has been marked as a duplicate of bug 216337 ***