Bug 1261672
| Summary: | DISPLAY is set to Wayland display so Firefox crashes on start | ||||||
|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | Christian Stadelmann <fedora> | ||||
| Component: | glib2 | Assignee: | Matthias Clasen <mclasen> | ||||
| Status: | CLOSED CURRENTRELEASE | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||
| Severity: | unspecified | Docs Contact: | |||||
| Priority: | unspecified | ||||||
| Version: | 23 | CC: | ccecchi, fedora, gecko-bugs-nobody, jhorak, mclasen, ofourdan, pjasicek, stransky | ||||
| Target Milestone: | --- | ||||||
| Target Release: | --- | ||||||
| Hardware: | Unspecified | ||||||
| OS: | Unspecified | ||||||
| Whiteboard: | |||||||
| Fixed In Version: | Doc Type: | Bug Fix | |||||
| Doc Text: | Story Points: | --- | |||||
| Clone Of: | Environment: | ||||||
| Last Closed: | 2015-11-14 11:22:17 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: | |||||||
| Attachments: |
|
||||||
|
Description
Christian Stadelmann
2015-09-09 23:08:52 UTC
Yes, I can reproduce that as well - If firefox is not running it will crash, if it's running it won't do anything. This seems to be specific to Wayland, it works fine on X11. Hm, but Firefox itself run fine, doesn't it? I mean if you launch it from terminal or menu. It crashes when it's launched from active Wayland application, right? Anyway, can you please attach a backtrace of the crash? See http://fedoraproject.org/wiki/Debugging_guidelines_for_Mozilla_products for details. Created attachment 1072081 [details] Backtrace as requested in #3, see https://fedoraproject.org/wiki/Debugging_guidelines_for_Mozilla_products#Application_crash What I found weird is that running firefox from gnome-terminal with an URL works fine whereas it crashes with the exact same URL (in fact with the exact same argv pointer in execve) when run from a Gtk application. This led to the assumption that the environment (envp pointer in execve) is culprit. By diff-ing the env (from running `env` and `strace -f -v -s 2000 -e trace=process gedit`) I found out that the environments differ in 2 or 3 variables. Most important: when run from gnome-terminal, you see "DISPLAY=:0", when run from Gtk applications "DISPLAY=wayland-0". Running DISPLAY=:0 firefox http://gnome.org or firefox http://gnome.org works fine while DISPLAY=wayland-0 firefox http://gnome.org crashes. Looks like this is a Gtk/GLib issue, am I right? If yes, please reassign there and change the title. the DISPLAY variable should not be a wayland display - Firefox is a X11 app and does not expect wayland here. Thanks for the investigation, moving. I am not entirely sure this is gtk though, but in glib rather. gtk invokes gtk_show_uri() which will call g_desktop_app_info_launch_uris_with_spawn() from glib and this is the one that sets the DISPLAY variable: in glib/gio/gdesktopappinfo.c 2717 display = g_app_launch_context_get_display (launch_context, 2718 G_APP_INFO (info), 2719 launched_files); 2720 if (display) 2721 envp = g_environ_setenv (envp, "DISPLAY", display, TRUE); The problem with this within Wayland is that g_app_launch_context_get_display() will return the GdkWaylandDisplay and not a GdkX11Display, ie "wayland-0" so glib's g_desktop_app_info_launch_uris_with_spawn() set DISPLAY to the wrong value (not gtk). Patches have been merged upstream Fixed in Fedora 23 release. |