Closed Bug 1800214 Opened 1 year ago Closed 1 year ago

Firefox crashes on Wayland if there is more than one output

Categories

(Core :: Widget: Gtk, defect)

Firefox 106
defect

Tracking

()

RESOLVED DUPLICATE of bug 1795851

People

(Reporter: hugo, Unassigned)

References

(Blocks 1 open bug)

Details

User Agent: Mozilla/5.0 (X11; Linux x86_64; rv:106.0) Gecko/20100101 Firefox/106.0

Steps to reproduce:

Reproduction path 1:

  • Enable more than one output (e.g.: external monitor and laptop monitor).
  • Start Firefox

Reproduction path 2:

  • Enable just one monitor
  • Start Firefox
  • Plug-in or enable a second monitor

Actual results:

Firefox crashes. It seems that the bug occurs when it detects more than one output. I can reproduce this on the last few major Firefox version, with swaywm.

Expected results:

Firefox should not crash.

Here's the crash report:

AdapterDeviceID: 0x5917
AdapterDriverVendor: mesa/iris
AdapterDriverVersion: 22.2.3.0
AdapterVendorID: 0x8086
Add-ons: addon%40darkreader.org:4.9.57,formautofill%40mozilla.org:1.0.1,pictureinpicture%40mozilla.org:1.0.0,screenshots%40mozilla.org:39.0.1,webcompat%40mozilla.org:106.0.0,default-theme%40mozilla.org:1.3,google%40search.mozilla.org:1.2,wikipedia%40search.mozilla.org:1.1,bing%40search.mozilla.org:1.3,ddg%40search.mozilla.org:1.1,ebay%40search.mozilla.org:1.3,amazon%40search.mozilla.org:1.9,addons-search-detection%40mozilla.com:2.0.0,langpack-en-GB%40firefox.mozilla.org:106.0.5buildid20221104.133228
AvailablePageFile: 38424907776
AvailablePhysicalMemory: 12968046592
AvailableSwapMemory: 34343288832
AvailableVirtualMemory: 14053720064
BackgroundTaskMode: 0
BuildID: 20221104231639
ContentSandboxCapabilities: 119
ContentSandboxCapable: 1
ContentSandboxLevel: 4
CrashTime: 1668160322
DOMFissionEnabled: 1
DOMIPCEnabled: 1
DesktopEnvironment: sway
EMCheckCompatibility: true
EventLoopNestingLevel: 1
ExperimentalFeatures: devtools.inspector.compatibility.enabled
GraphicsCriticalError: |[0][GFX1-]: glxtest: VA-API test failed: failed to initialise VAAPI connection. (t=3.01665) 
GraphicsNumActiveRenderers: 1
GraphicsNumRenderers: 1
HeadlessMode: 0
InstallTime: 1667818262
IsWayland: 1
MozCrashReason: wl_surface@49: error 2: Buffer size (6450x2529) is not divisible by scale (2)

Notes: FP(D00-L1000-W00000000-T000) WR? WR+ EGL? EGL- GL Context? GL Context+ 
ProductID: {ec8030f7-c20a-464f-9b0e-13a3a9e97384}
ProductName: Firefox
ReleaseChannel: release
SafeMode: 0
SecondsSinceLastCrash: 34
StartupCrash: 0
StartupTime: 1668160320
SubmittedFrom: Client
TelemetryEnvironment: {"build":{"applicationId":"{ec8030f7-c20a-464f-9b0e-13a3a9e97384}","applicationName":"Firefox","architecture":"x86-64","buildId":"20221104231639","version":"106.0.5","vendor":"Mozilla","displayVersion":"106.0.5","platformVersion":"106.0.5","xpcomAbi":"x86_64-gcc3","updaterAvailable":false},"partner":{"distributionId":"archlinux","distributionVersion":"1.0","partnerId":null,"distributor":"archlinux","distributorChannel":"firefox","partnerNames":["archlinux"]},"system":{"memoryMB":15698,"virtualMaxMB":null,"cpu":{"extensions":["hasMMX","hasSSE","hasSSE2","hasSSE3","hasSSSE3","hasSSE4_1","hasSSE4_2","hasAVX","hasAVX2","hasAES"]},"os":{"name":"Linux","version":"6.0.8-arch1-1","locale":"en-GB"},"hdd":{"profile":{"model":null,"revision":null,"type":null},"binary":{"model":null,"revision":null,"type":null},"system":{"model":null,"revision":null,"type":null}},"gfx":{"D2DEnabled":null,"DWriteEnabled":null,"ContentBackend":"Skia","Headless":false,"EmbeddedInFirefoxReality":null,"adapters":[{"description":"Mesa Intel(R) UHD Graphics 620 (KBL GT2)","vendorID":"0x8086","deviceID":"0x5917","subsysID":null,"RAM":0,"driver":null,"driverVendor":"mesa/iris","driverVersion":"22.2.3.0","driverDate":null,"GPUActive":true}],"monitors":[{"screenWidth":3840,"screenHeight":2160},{"screenWidth":4300,"screenHeight":1800}],"features":{"compositor":"webrender","hwCompositing":{"status":"available"},"gpuProcess":{"status":"unused"},"wrQualified":{"status":"available"},"webrender":{"status":"available"},"wrCompositor":{"status":"blocked:FEATURE_FAILURE_DISABLE_RELEASE_OR_BETA"},"wrSoftware":{"status":"available"},"openglCompositing":{"status":"available"},"omtp":{"status":"unused"}}},"appleModelId":null,"hasWinPackageId":null},"settings":{"blocklistEnabled":true,"e10sEnabled":true,"e10sMultiProcesses":8,"fissionEnabled":true,"telemetryEnabled":false,"locale":"en-GB","intl":{"requestedLocales":["en-GB"],"availableLocales":["en-US","en-GB"],"appLocales":["en-GB","en-US"],"systemLocales":["en-GB"],"regionalPrefsLocales":["en-DK"],"acceptLanguages":["en-GB","en"]},"update":{"channel":"release","enabled":true,"autoDownload":false,"background":false},"userPrefs":{"browser.fixup.alternate.enabled":false,"browser.search.region":"NL","browser.search.widget.inNavBar":false,"browser.startup.homepage":"<user-set>","browser.urlbar.autoFill":true,"browser.urlbar.autoFill.adaptiveHistory.enabled":false,"browser.urlbar.dnsResolveSingleWordsAfterSearch":0,"browser.urlbar.quicksuggest.dataCollection.enabled":false,"browser.urlbar.suggest.quicksuggest.nonsponsored":false,"browser.urlbar.suggest.quicksuggest.sponsored":false,"browser.urlbar.suggest.bestmatch":true,"media.gmp-gmpopenh264.lastInstallStart":1662645972,"media.gmp-gmpopenh264.lastDownload":1662645977,"media.gmp-gmpopenh264.lastUpdate":1662645977,"media.gmp-manager.lastCheck":1662645972,"network.trr.strict_native_fallback":false,"widget.content.allow-gtk-dark-theme":false,"widget.content.gtk-high-contrast.enabled":true},"sandbox":{"effectiveContentProcessLevel":4,"contentWin32kLockdownState":3},"addonCompatibilityCheckEnabled":true,"isDefaultBrowser":false},"profile":{"creationDate":18923,"firstUseDate":18923},"addons":{"activeAddons":{"addon@darkreader.org":{"version":"4.9.57","scope":1,"type":"extension","updateDay":19243,"isSystem":false,"isWebExtension":true,"multiprocessCompatible":true,"blocklisted":false,"description":"Dark mode for every website. Take care of your eyes, use dark theme for night and daily browsing.","name":"Dark Reader","userDisabled":false,"appDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"installDay":18991,"signedState":2},"formautofill@mozilla.org":{"version":"1.0.1","scope":1,"type":"extension","updateDay":19300,"isSystem":true,"isWebExtension":true,"multiprocessCompatible":true,"blocklisted":false,"description":null,"name":"Form Autofill","userDisabled":false,"appDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"installDay":18904},"pictureinpicture@mozilla.org":{"version":"1.0.0","scope":1,"type":"extension","updateDay":19300,"isSystem":true,"isWebExtension":true,"multiprocessCompatible":true,"blocklisted":false,"description":"Fixes for web compatibility with Picture-in-Picture","name":"Picture-In-Picture","userDisabled":false,"appDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"installDay":18904},"screenshots@mozilla.org":{"version":"39.0.1","scope":1,"type":"extension","updateDay":19300,"isSystem":true,"isWebExtension":true,"multiprocessCompatible":true,"blocklisted":false,"description":"Take clips and screenshots from the Web and save them temporarily or permanently.","name":"Firefox Screenshots","userDisabled":false,"appDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"installDay":18904},"webcompat@mozilla.org":{"version":"106.0.0","scope":1,"type":"extension","updateDay":19300,"isSystem":true,"isWebExtension":true,"multiprocessCompatible":true,"blocklisted":false,"description":"Urgent post-release fixes for web compatibility.","name":"Web Compatibility Interventions","userDisabled":false,"appDisabled":false,"foreignInstall":false,"hasBinaryComponents":false,"installDay":18904},"langpack-en-GB@firefox.mozilla.org":{"version":"106.0.5buildid20221104.133228","scope":4,"type":"locale","updateDay":19300,"isSystem":false,"isWebExtension":true,"multiprocessCompatible":true,"blocklisted":false,"description":"Language pack for Firefox for en-GB","name":"English (GB) Language Pack","userDisabled":false,"appDisabled":false,"foreignInstall":true,"hasBinaryComponents":false,"installDay":18904}},"theme":{"id":"default-theme@mozilla.org","blocklisted":false,"description":"Follow the operating system setting for buttons, menus, and windows.","name":"System theme — auto","userDisabled":false,"appDisabled":false,"version":"1.3","scope":4,"foreignInstall":false,"hasBinaryComponents":false,"installDay":18923,"updateDay":18923},"activeGMPlugins":{"gmp-gmpopenh264":{"version":"1.8.1.2","userDisabled":false,"applyBackgroundUpdates":1}}},"experiments":{"task-continuity-sync-after-tab-change-rollout-40":{"branch":"sync-after-tab","type":"nimbus-nimbus","enrollmentId":"c90b04a2-43df-45ff-8957-3852e217f8ef"},"tcp-rollout-phase-iii-tcp-on-by-default-for-50-existing-release-profiles":{"branch":"control","type":"nimbus-nimbus","enrollmentId":"332d55f3-05a9-4f66-aaec-a2fecb083998"},"106-major-release-firefox-existing-user-experience":{"branch":"treatment-a","type":"nimbus-nimbus","enrollmentId":"c19d9211-9f82-4856-8670-2218d4cec740"}}}
Throttleable: 1
TotalPageFile: 50803613696
TotalPhysicalMemory: 16460324864
UptimeTS: 4.11094838
Vendor: Mozilla
Version: 106.0.5
useragent_locale: en-GB

This report also contains technical information about the state of the application when it crashed.

It's also reproducible on a clean profile.

I see the crash reason is wl_surface@49: error 2: Buffer size (6450x2529) is not divisible by scale (2)

This means that Firefox is setting the scale for a surface to 2 (e.g.: it says this is scaled up 2x), but the surface is not divisible by 2. This pretty much sounds like a bug in Firefox; the data it is sending to the compositor is inconsistent.

I've no idea why it only triggers with two outputs. It also doesn't matter on which output I run Firefox.

It should be noted that my outputs have different scale; one is 2x and the other is 3x. Note that the values above are divisible by 3. Maybe Firefox is only considering the scale for the larger monitor, but then marking surfaces as scale for the other? I admit that I'm guessing at this point

If you could use mozregression to find if this is a regression it'd be great (no worries if not tho). Something like:

$ pip3 install --user mozregression
$ MOZ_ENABLE_WAYLAND=1 mozregression --good 98

(Hoping 98 doesn't crash, if it's older than that you could tweak the number but...)

Blocks: wayland
Component: Untriaged → Widget: Gtk
Product: Firefox → Core

It's not a regression in Firefox, but a change in Sway sometime after 1.7 where it doesn't allow surfaces that aren't divisible by scale anymore.

Pretty sure this is a duplicate of https://bugzilla.mozilla.org/show_bug.cgi?id=1795851

Indeed, this is a duplicate of 1795851.

Status: UNCONFIRMED → RESOLVED
Closed: 1 year ago
Duplicate of bug: 1795851
Resolution: --- → DUPLICATE
You need to log in before you can comment on or make changes to this bug.