Bug 217084 - iOS 14.2 Beta Webgl Crash
Summary: iOS 14.2 Beta Webgl Crash
Status: RESOLVED DUPLICATE of bug 216337
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebGL (show other bugs)
Version: Other
Hardware: iPhone / iPad Other
: P2 Critical
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2020-09-29 04:53 PDT by Steven Briscoe
Modified: 2020-10-20 22:12 PDT (History)
8 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Steven Briscoe 2020-09-29 04:53:52 PDT
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}>
Comment 1 Radar WebKit Bug Importer 2020-09-29 09:10:09 PDT
<rdar://problem/69749724>
Comment 2 Tony Tomarchio 2020-09-29 09:31:24 PDT
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
Comment 3 Steven Briscoe 2020-09-29 11:33:15 PDT
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
Comment 4 Chris Dumez 2020-09-29 11:51:17 PDT
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
Comment 5 Chris Dumez 2020-09-29 11:52:06 PDT
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 ***
Comment 6 Steven Briscoe 2020-09-29 12:00:07 PDT
Ok, great to hear. Then I assume it's going to be bundled up in the next iOS 14.2 beta?
Comment 7 Nicholas Butko 2020-09-29 12:01:32 PDT
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.
Comment 8 Steven Briscoe 2020-09-29 15:07:42 PDT
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!
Comment 9 Kenneth Russell 2020-10-20 22:12:34 PDT

*** This bug has been marked as a duplicate of bug 216337 ***