Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
mutter.11223
mutter-xwayland-Don-t-abort-if-Xwayland-crashes...
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mutter-xwayland-Don-t-abort-if-Xwayland-crashes.patch of Package mutter.11223
From 2d80fd02e76bbe17dc52072299dda92ab88c99c0 Mon Sep 17 00:00:00 2001 From: Ray Strode <rstrode@redhat.com> Date: Thu, 12 Apr 2018 14:06:01 -0400 Subject: [PATCH] xwayland: Don't abort if Xwayland crashes Right now if Xwayland crashes, we crash, too. On some level that makes sense, since we're supposed to control the lifecycle of Xwayland, and by it crashing we've lost that control. But practically speaking, the knock-on crash adds noise to the logs, bug trackers, and retrace servers that only makes debugging harder. And the crash isn't something mutter can "fix", since it's ultimately from a bug in Xwayland anyway. This commit makes mutter exit instead of crash if Xwayland goes away unexpectedly. --- src/wayland/meta-xwayland.c | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) Index: mutter-3.26.2+20180207.4b2d21ff0/src/wayland/meta-xwayland.c =================================================================== --- mutter-3.26.2+20180207.4b2d21ff0.orig/src/wayland/meta-xwayland.c +++ mutter-3.26.2+20180207.4b2d21ff0/src/wayland/meta-xwayland.c @@ -26,6 +26,8 @@ #include "meta-xwayland.h" #include "meta-xwayland-private.h" +#include <meta/main.h> + #include <glib.h> #include <glib-unix.h> #include <errno.h> @@ -403,26 +405,30 @@ xserver_died (GObject *source, if (!g_subprocess_wait_finish (proc, result, &error)) { - if (!g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) - g_error ("Failed to finish waiting for Xwayland: %s", error->message); - g_clear_error (&error); + if (g_error_matches (error, G_IO_ERROR, G_IO_ERROR_CANCELLED)) + return; + + g_warning ("Failed to finish waiting for Xwayland: %s", error->message); } else if (!g_subprocess_get_successful (proc)) - g_error ("X Wayland crashed; aborting"); + g_warning ("X Wayland crashed; exiting"); else { /* For now we simply abort if we see the server exit. * * In the future X will only be loaded lazily for legacy X support * but for now it's a hard requirement. */ - g_error ("Spurious exit of X Wayland server"); + g_warning ("Spurious exit of X Wayland server"); } + + meta_exit (META_EXIT_ERROR); } static int x_io_error (Display *display) { - g_error ("Connection to xwayland lost"); + g_warning ("Connection to xwayland lost"); + meta_exit (META_EXIT_ERROR); return 0; }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor