Closed Bug 1754555 Opened 8 months ago Closed 6 months ago

Firefox hangs in Sway Wayland when interacting with tabs

Categories

(Core :: Widget: Gtk, defect)

Firefox 97
x86_64
Linux
defect

Tracking

()

RESOLVED DUPLICATE of bug 1754789
Tracking Status
firefox99 --- fixed

People

(Reporter: tcChlisop0, Unassigned)

References

(Blocks 1 open bug)

Details

Attachments

(2 files)

Attached file wayland-hang.log

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

Steps to reproduce:

Run Firefox with MOZ_ENABLE_WAYLAND=1.
Click/drag and right click tabs (existing or new tabs) quickly.

If lucky, Firefox freezes quickly while playing with the tabs.

With regular usage it just randomly freezes.
The above steps are reproducible quickly for me.

Actual results:

The UI freezes completely, and requires killing the process.

Attached a log, the window freezes at "frame queued: can't lock wl_surface".

The "Exiting due to channel error." errors only occur after Ctrl+C (killing the process).

Will update with a recording.

Expected results:

It should just keep running.

The Bugbug bot thinks this bug should belong to the 'Firefox::Tabbed Browser' component, and is moving the bug to that component. Please revert this change in case you think the bot is wrong.

Component: Untriaged → Tabbed Browser

Recording of the issue here: https://0x0.st/oXO2.mp4

I could not reproduce the hang on my Ubuntu 20.04 machine using the latest Nightly 99.0a1 and Firefox 97.0.1.

Quietvoid, please open about:support, click on "Copy text to clipboard" and paste it here. Thanks!

Blocks: wayland
Flags: needinfo?(tcChlisop0)
Flags: needinfo?(tcChlisop0)

Hi, I'm definitely still able to reproduce this on Firefox 97.0.1.
I've attached the information. Maybe sway is relevant here.

Attachment #9263148 - Attachment mime type: text/x-log → text/plain
Component: Tabbed Browser → Widget: Gtk
OS: Unspecified → Linux
Product: Firefox → Core
Hardware: Unspecified → x86_64
See Also: → 1754789
Summary: Firefox hangs in Wayland interacting with tabs → Firefox hangs in Sway Wayland when interacting with tabs

I can confirm that this is a bug.

I was able to capture this crash one single time:
https://crash-stats.mozilla.org/report/index/754fe336-e2ec-454f-932d-78b2f0220223

Typically however, the process just locks entirely and no crash report is able to be captured:

[507897.382] zwp_primary_selection_device_v1@28.selection(zwp_primary_selection_offer_v1@4278190082)
[507897.391]  -> zwp_primary_selection_offer_v1@4278190080.destroy()
[507897.404] wl_data_device@29.leave()
[507897.476]  -> wl_data_offer@4278190081.set_actions(7, 2)
[507898.262]  -> wl_data_offer@4278190081.set_actions(7, 2)
[507898.273]  -> wl_data_offer@4278190081.finish()
[507898.277]  -> wl_data_offer@4278190081.destroy()
[507905.479] wl_display@1.delete_id(63)
[507905.531] wl_callback@63.done(1280207482)
[507905.544]  -> wl_surface@47.frame(new id wl_callback@63)
[507905.553]  -> wl_surface@47.commit()
[507905.621] wl_pointer@25.enter(571279, wl_surface@42, 1652.761719, 30.484375)
[507905.666]  -> wl_pointer@25.set_cursor(571279, wl_surface@30, 4, 4)
[507905.693]  -> wl_surface@30.attach(wl_buffer@69, 0, 0)
[507905.702]  -> wl_surface@30.set_buffer_scale(1)
[507905.707]  -> wl_surface@30.damage(0, 0, 24, 24)
[507905.717]  -> wl_surface@30.commit()
[507905.722] wl_pointer@25.frame()
[507910.247]  -> wl_surface@42.attach(wl_buffer@72, 0, 0)
[507910.287]  -> wl_surface@42.set_buffer_scale(1)
[507910.295]  -> wl_surface@42.damage(0, 0, 1916, 1023)
[507910.311]  -> xdg_toplevel@50.set_min_size(450, 120)
[507910.319]  -> xdg_toplevel@50.set_max_size(16384, 16384)
[507910.328]  -> xdg_surface@49.set_window_geometry(0, 0, 1916, 1023)
[507910.345]  -> wl_compositor@5.create_region(new id wl_region@79)
[507910.353]  -> wl_region@79.add(0, 0, 1916, 1023)
[507910.371]  -> wl_surface@42.set_opaque_region(wl_region@79)
[507910.376]  -> wl_region@79.destroy()
[507910.406]  -> wl_surface@42.frame(new id wl_callback@98)
[507910.416]  -> wl_surface@47.frame(new id wl_callback@114)
[507910.423]  -> wl_surface@42.commit()
[507910.438]  -> wl_surface@47.commit()
[507914.298] wl_display@1.delete_id(100)
[507914.331] wl_data_source@88.dnd_finished()
[507914.511]  -> wl_data_source@88.destroy()
[508822.574]  -> wl_surface@34.destroy()
[508826.565]  -> zwp_linux_dmabuf_v1@36.destroy()

Sorry, this is for FF 97 / Fedora 35

Installed Packages
Name         : firefox
Version      : 97.0
Release      : 1.fc35
Architecture : x86_64
Size         : 257 M
Source       : firefox-97.0-1.fc35.src.rpm
Repository   : @System
From repo    : updates
Summary      : Mozilla Firefox Web browser
URL          : https://www.mozilla.org/firefox/
License      : MPLv1.1 or GPLv2+ or LGPLv2+
Description  : Mozilla Firefox is an open-source web browser, designed for standards
             : compliance, performance and portability.

To reproduce:

  1. Open a previous session with multiple tabs that are loading.
  2. Start dragging a tab around. On first move, it typically doesn't crash.
  3. Attempt dragging tab again, it will hang.

This is a common pattern I have when I move a tab. I drop it into a spot... change my mind about what order and try to move it again ... immediate hang.

Very annoying bug, can reproduce with 97/99.0a1 on sway by quickly switching the tabs with mouse or sometimes by dragging the tab.

Always ends like that, no crash is generated, window just becomes unresponsive, need to kill the process.

[ 609979.693] wl_pointer@22.frame()
[ 609979.696] wl_pointer@22.motion(29275331, 158.00000000, 21.00000000)
[ 609979.702] wl_pointer@22.frame()
[ 609979.708] wl_pointer@22.motion(29275332, 159.00000000, 21.00000000)
[ 609979.715] wl_pointer@22.frame()
[ 609979.720] wl_pointer@22.motion(29275333, 161.00000000, 21.00000000)
[ 609979.726] wl_pointer@22.frame()
[ 609979.914]  -> wl_compositor@53.create_region(new id wl_region@95)
[ 609979.924]  -> wl_region@95.add(0, 0, 1718, 1404)
[ 609979.933]  -> wl_surface@45.set_opaque_region(wl_region@95)
[ 609979.937]  -> wl_region@95.destroy()
[ 609980.255]  -> wl_surface@40.attach(wl_buffer@72, 0, 0)
[ 609980.273]  -> wl_surface@40.set_buffer_scale(1)
[ 609980.282]  -> wl_surface@40.damage(0, 0, 1718, 1404)
[ 609980.300]  -> xdg_toplevel@49.set_min_size(450, 120)
[ 609980.308]  -> xdg_toplevel@49.set_max_size(16384, 16384)
[ 609980.318]  -> xdg_surface@48.set_window_geometry(0, 0, 1718, 1404)
[ 609980.334]  -> wl_compositor@5.create_region(new id wl_region@96)
[ 609980.343]  -> wl_region@96.add(0, 0, 1718, 1404)
[ 609980.357]  -> wl_surface@40.set_opaque_region(wl_region@96)
[ 609980.364]  -> wl_region@96.destroy()
[ 609980.378]  -> wl_surface@40.frame(new id wl_callback@82)
[ 609980.388]  -> wl_surface@45.frame(new id wl_callback@83)
[ 609980.397]  -> wl_surface@40.commit()
[ 609980.403]  -> wl_surface@45.commit()
[ 609980.440] wl_display@1.delete_id(74)
[ 609980.451] wl_data_source@75.dnd_finished()
[ 609980.500]  -> wl_data_source@75.destroy()

This seems like a duplicate of bug 1754789, which appears to have been fixed in hg.

This is fixed in Firefox 99.0 for me.

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