Bug 1350060

Summary: [wayland-copr] Firefox exits with "Error 71 (Protocol error) dispatching to Wayland display." when showing any menu
Product: [Fedora] Fedora Reporter: Christian Stadelmann <fedora>
Component: firefoxAssignee: Martin Stransky <stransky>
Status: CLOSED CURRENTRELEASE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: 25CC: gecko-bugs-nobody, jhorak, pjasicek, stransky
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-06-01 20:10:01 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1054334    
Attachments:
Description Flags
A backtrace from gdb attached to firefox from wayland copr
none
Output of $ LC_ALL=C WAYLAND_DEBUG=1 firefox none

Description Christian Stadelmann 2016-06-25 00:30:20 UTC
Version-Release number of selected component (if applicable):
firefox-47.0-7.wayland.fc24.x86_64
gtk3-3.20.6-1.fc24.x86_64

How reproducible:
always after some mouse movement

Steps to Reproduce:
1. open firefox with wayland GDK backend
2. open bookmarks menu
3. move mouse over bookmarks menu

Actual results:
Firefox crashes.

Expected results:
No crash

Additional info:
Sadly, gdb doesn't catch this crash. Instead, I'm getting this warning on CLI:

(firefox:8063): Gdk-WARNING **: Error 71 (Protokollfehler) dispatching to Wayland display.

Comment 1 Christian Stadelmann 2016-06-25 00:32:54 UTC
This crash also happens in the main menu (menu toolbar enabled by pressing the Alt key).

Comment 2 Christian Stadelmann 2016-06-25 10:18:37 UTC
Context menus in about:config are affected too, so I guess it affects most if not all menus

Comment 3 Christian Stadelmann 2016-06-25 10:54:54 UTC
Created attachment 1172224 [details]
A backtrace from gdb attached to firefox from wayland copr

Breaking on g_strerror and skipping some occurrences, I managed to get a backtrace. The error is being catched in https://github.com/GNOME/gtk/blob/master/gdk/wayland/gdkeventsource.c#L197

Comment 4 Christian Stadelmann 2016-06-27 19:46:42 UTC
Also reported against Gtk+: https://bugzilla.gnome.org/show_bug.cgi?id=768111

Comment 5 Christian Stadelmann 2016-06-29 13:39:39 UTC
Created attachment 1173920 [details]
Output of $ LC_ALL=C WAYLAND_DEBUG=1 firefox

According to upstream Gtk+ developer Jonas Ã…dahl [1]:

> As far as I can tell what is happening is that:
> 
> 1. a popup is created with the toplevel window as parent
> 2. another popup is created while the previous popup is still mapped, also with the toplevel window as parent
> 
> This is not allowed, as the compositor wouldn't know what to dismiss when the popup grab is broken.
> 
> I'm guessing that either firefox is
> 1) missing to destroy an old menu, or
> 2) using the wrong parent for a child menu, or
> 3) it accidentally creates two popups when it meant to create only one.

[1] https://bugzilla.gnome.org/show_bug.cgi?id=768111#c5 and #c3

Comment 6 Christian Stadelmann 2017-02-15 20:56:00 UTC
This issue is gone in Nightly builds for wayland, 52.0a1, BuildID 20170215004354, downloaded from https://firefox-flatpak.mojefedora.cz/ (created with build scripts from https://github.com/xhorak/firefox-devedition-flatpak)