[gnome-shell/benzea/systemd-clean-shutdown-with-extension-disabling: 2/2] data: Enable clean session shutdown after gnome-shell failure
- From: Benjamin Berg <bberg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/benzea/systemd-clean-shutdown-with-extension-disabling: 2/2] data: Enable clean session shutdown after gnome-shell failure
- Date: Mon, 25 Nov 2019 20:48:49 +0000 (UTC)
commit 5b84532e3ec36db8e48e63abe0fbdcf45f29d0e7
Author: Benjamin Berg <bberg redhat com>
Date: Mon Nov 25 15:15:01 2019 +0100
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 d55d7ed879..de91167c58 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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]