]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
login: Queue session for garbage collection on leader death
authormsizanoen <msizanoen@qtmlabs.xyz>
Wed, 12 Feb 2025 14:27:25 +0000 (21:27 +0700)
committerLuca Boccassi <luca.boccassi@gmail.com>
Thu, 13 Feb 2025 15:54:46 +0000 (15:54 +0000)
This ensures sessions are cleaned up properly in case the user service
manager was manually stopped.

(cherry picked from commit a6bccda28d398925397d3a8f0c7491ba03941f23)

src/login/logind-session.c

index e825d39f6c5fb6b2e2b5e8e403673c1dbb06d97c..57cc37ccc4f3de32010d62c12ca72680f45ee4d6 100644 (file)
@@ -95,6 +95,8 @@ static int session_dispatch_leader_pidfd(sd_event_source *es, int fd, uint32_t r
 
         session_stop(s, /* force= */ false);
 
+        session_add_to_gc_queue(s);
+
         return 1;
 }
 
@@ -1263,6 +1265,8 @@ static int session_dispatch_fifo(sd_event_source *es, int fd, uint32_t revents,
         session_remove_fifo(s);
         session_stop(s, /* force = */ false);
 
+        session_add_to_gc_queue(s);
+
         return 1;
 }