From af958838072dae72cbbeea00b3246e08739e7da0 Mon Sep 17 00:00:00 2001 From: Benjamin Berg Date: Mon, 25 Nov 2019 15:15:01 +0100 Subject: [PATCH] data: Enable clean session shutdown after gnome-shell failure If the GNOME shell crashes, we run a service that may disable extensions. This is important so that users will not be locked out of their own session in case an extension is causing crashes. As this is a very agressive action, we tried to only do this in the first two minutes of the session. Unfortunately, the logic was broken and would result in an unclean session shutdown. Fix this by using the newly introduced gnome-shell-disable-extensions file. This is created by the extension subsystem for a period of time to indicate the extensions may be the cause of a gnome-shell failure. See https://gitlab.gnome.org/GNOME/gnome-session/issues/43 for a log of the bug happening and the gnome-session part to fix this. https://gitlab.gnome.org/GNOME/gnome-shell/merge_requests/858 --- data/gnome-shell-disable-extensions.service | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/data/gnome-shell-disable-extensions.service b/data/gnome-shell-disable-extensions.service index d55d7ed87..de91167c5 100644 --- a/data/gnome-shell-disable-extensions.service +++ b/data/gnome-shell-disable-extensions.service @@ -1,11 +1,12 @@ [Unit] Description=Disable GNOME Shell extensions after failure +# Note that this unit must not conflict with anything, and must +# be able to run in parallel with the gnome-session-shutdown.target. DefaultDependencies=no -# Only disable extensions for a short period of time after login. -# This means we err on the side of failing the first login after a broken -# extension was installed. -Requisite=gnome-session-stable.timer +# We want to disable extensions only if gnome-shell has flagged the extensions +# to be a likely cause of trouble. +ConditionPathExists=%t/gnome-shell-disable-extensions [Service] Type=simple