Closed Bug 1602813 Opened 4 years ago Closed 4 years ago

Crash in [@ objc_exception_throw | -[NSObject doesNotRecognizeSelector:]]

Categories

(Core :: Graphics: Layers, defect)

72 Branch
Unspecified
macOS
defect
Not set
normal

Tracking

()

RESOLVED FIXED
mozilla73
Tracking Status
firefox-esr68 --- unaffected
firefox71 --- unaffected
firefox72 --- fixed
firefox73 --- fixed

People

(Reporter: philipp, Assigned: mstange)

References

(Regression)

Details

(Keywords: crash, regression)

Crash Data

Attachments

(1 file, 1 obsolete file)

This bug is for crash report bp-fccca452-1b9e-461b-b21f-dbcee0191210.

Top 10 frames of crashing thread:

0 XUL CrashReporter::TerminateHandler toolkit/crashreporter/nsExceptionHandler.cpp:1457
1 libc++abi.dylib std::__terminate 
2 libc++abi.dylib __cxa_throw 
3 libobjc.A.dylib objc_exception_throw 
4 CoreFoundation -[NSObject doesNotRecognizeSelector:] 
5 CoreFoundation ___forwarding___ 
6 CoreFoundation __forwarding_prep_0___ 
7 XUL mozilla::gl::GLContextCGL::MigrateToActiveGPU gfx/gl/GLContextProviderCGL.mm:171
8 XUL nsChildView::PreRender widget/cocoa/nsChildView.mm:1711
9 XUL mozilla::layers::LayerManagerComposite::UpdateAndRender gfx/layers/composite/LayerManagerComposite.cpp:641

these crashes are spiking up in the 72.0 beta cycle from users still on osx 10.9

Markus, can we somehow restrict this feature to OSX > 10.9 (or whatever the appropriate version is)?

Flags: needinfo?(mstange)

It's this method, which is indeed only available on 10.10 and up: https://developer.apple.com/documentation/appkit/nsopenglpixelformat/1436109-getvalues?language=objc

Assignee: nobody → mstange
Status: NEW → ASSIGNED
Flags: needinfo?(mstange)

No, wait, it says 10.0 and up. It must be some other method.

It's -[NSOpenGLContext pixelFormat]. This would have been a lot faster to figure out if crash reports had inline callstacks. Instead, I had to find the crashing line by manually downloading XUL.dSYM and using addr2line, similarly to what I did in bug1599861 comment 3.

Attachment #9114936 - Attachment description: Bug 1602813 - Stop calling -[NSOpenGLContext pixelFormat] because it's not availabel on 10.9. Instead, inline CreateWithFormat into this callsite. r=jrmuizel → Bug 1602813 - Stop calling -[NSOpenGLContext pixelFormat] because it's not available on 10.9. Instead, inline CreateWithFormat into this callsite. r=jrmuizel
Crash Signature: [@ objc_exception_throw | -[NSObject doesNotRecognizeSelector:]] → [@ objc_exception_throw | -[NSObject doesNotRecognizeSelector:]] [@ objc_exception_throw | -[NSObject doesNotRecognizeSelector:] | ___forwarding___ | __forwarding_prep_0___ | mozilla::gl::GLContextCGL::MigrateToActiveGPU]
Pushed by mstange@themasta.com:
https://hg.mozilla.org/integration/autoland/rev/2b3e5d860458
Stop calling -[NSOpenGLContext pixelFormat] because it's not available on 10.9. Instead, inline CreateWithFormat into this callsite. r=jrmuizel
Status: ASSIGNED → RESOLVED
Closed: 4 years ago
Resolution: --- → FIXED
Target Milestone: --- → mozilla73

Comment on attachment 9114936 [details]
Bug 1602813 - Stop calling -[NSOpenGLContext pixelFormat] because it's not available on 10.9. Instead, inline CreateWithFormat into this callsite. r=jrmuizel

Beta/Release Uplift Approval Request

  • User impact if declined: Crashes for macOS 10.9 users
  • Is this code covered by automated tests?: No
  • Has the fix been verified in Nightly?: No
  • Needs manual test from QE?: No
  • If yes, steps to reproduce: 1. Run Firefox on 10.9 on a machine with multiple GPUs.
  1. Use gfxCardStatus from https://gfx.io/ to switch to the discrete GPU.
  2. Firefox shouldn't crash.
    It's not really worth spending time verifying this; we will see based on the crash rate whether this has been fixed.
  • List of other uplifts needed: None
  • Risk to taking this patch: Low
  • Why is the change risky/not risky? (and alternatives if risky): The fix is simple
  • String changes made/needed:
Attachment #9114936 - Flags: approval-mozilla-beta?

Comment on attachment 9114936 [details]
Bug 1602813 - Stop calling -[NSOpenGLContext pixelFormat] because it's not available on 10.9. Instead, inline CreateWithFormat into this callsite. r=jrmuizel

macos 10.9 crash fix, approved for 72.0b6

Attachment #9114936 - Flags: approval-mozilla-beta? → approval-mozilla-beta+

we still get some crashes in 72.0b6

Flags: needinfo?(mstange)

Oops. We call the same function in a different place as well, I missed that. Going to make another patch.

Flags: needinfo?(mstange)
Blocks: 1604633
Attachment #9116544 - Attachment description: Bug 1602813 - Stop calling -[NSOpenGLContext pixelFormat] on 10.9, take 2. r=jrmuizel → Bug 1604633 - Stop calling -[NSOpenGLContext pixelFormat] on 10.9, take 2. r=jrmuizel

Comment on attachment 9116544 [details]
Bug 1604633 - Stop calling -[NSOpenGLContext pixelFormat] on 10.9, take 2. r=jrmuizel

Revision D57555 was moved to bug 1604633. Setting attachment 9116544 [details] to obsolete.

Attachment #9116544 - Attachment is obsolete: true

I've filed bug 1604633 on the other call and moved the follow-up patch there.

Has Regression Range: --- → yes
You need to log in before you can comment on or make changes to this bug.

Attachment

General

Created:
Updated:
Size: