← Back to team overview

group.of.nepali.translators team mailing list archive

[Bug 1846787] [NEW] systemd-logind leaves leftover sessions and scope files

 

Public bug reported:

[Impact]
Scope file leakage can cause SSH delays and reduce performance in systemd

[Description]
The current systemd-logind version present in Xenial can leave abandoned SSH
sessions and scope files in cases where the host sees a lot of concurrent SSH
connections. These leftover sessions can slow down systemd performance
greatly, and can have an impact on sshd handling a great number of concurrent
connections.

To fix this issue, patches are needed in both dbus and systemd. These improve the
performance of the communication between dbus and systemd, so that they can
handle a better volume of events (e.g. SSH logins). All of those patches are
already present from Bionic onwards, so we only need those fixes for Xenial.

== Systemd ==
Upstream patches:
- core: use an AF_UNIX/SOCK_DGRAM socket for cgroup agent notification (d8fdc62037b5)
- tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere (fc2fffe7706e)
- journald: stack allocation cannot fail (23be5709e10b)

$ git describe --contains d8fdc62037b5 fc2fffe7706e 23be5709e10b
v230~71^2~2
v230~71^2~1
v230~71^2

$ rmadison systemd
 systemd | 229-4ubuntu4     | xenial          | source, ...
 systemd | 229-4ubuntu21.21 | xenial-security | source, ...
 systemd | 229-4ubuntu21.22 | xenial-updates  | source, ... <--------
 systemd | 237-3ubuntu10    | bionic          | source, ...
 systemd | 237-3ubuntu10.29 | bionic-security | source, ...
 systemd | 237-3ubuntu10.29 | bionic-updates  | source, ...
 systemd | 237-3ubuntu10.31 | bionic-proposed | source, ...

== DBus ==
Upstream patches:
- Only read one message at a time if there are fds pending (892f084eeda0)
- bus: Fix timeout restarts  (529600397bca)
- DBusMainLoop: ensure all required timeouts are restarted (446b0d9ac75a)

$ git describe --contains 892f084eeda0 529600397bca 446b0d9ac75a
dbus-1.11.10~44
dbus-1.11.10~45
dbus-1.11.16~2

$ rmadison dbus
 dbus | 1.10.6-1ubuntu3    | xenial           | source, ...
 dbus | 1.10.6-1ubuntu3.4  | xenial-security  | source, ...
 dbus | 1.10.6-1ubuntu3.4  | xenial-updates   | source, ... <--------
 dbus | 1.12.2-1ubuntu1    | bionic           | source, ...
 dbus | 1.12.2-1ubuntu1.1  | bionic-security  | source, ...
 dbus | 1.12.2-1ubuntu1.1  | bionic-updates   | source, ...

[Test Case]
1) Simulate a lot of concurrent SSH connections with e.g. a for loop:
multipass@xenial-logind:~$ for i in {1..1000}; do sleep 0.1; ssh localhost sleep 1 > /dev/null & done

2) Check for leaked sessions in /run/systemd/system/:
multipass@xenial-logind:~$ ls -ld /run/systemd/system/session-*.scope*
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-103.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-104.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-105.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-106.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-110.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-111.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-112.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-113.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-114.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-115.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-116.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-117.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-118.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-119.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-120.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-121.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-122.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-123.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-126.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-131.scope.d
drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-134.scope.d
...

[Regression Potential]
The regression potential is low, as these patches have seen extensive testing
both upstream and in more recent releases of Ubuntu. Nonetheless, these new
packages will be rigorously tested through autopkgtest to avoid any possible
Xenial-specific regressions.

** Affects: dbus (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: systemd (Ubuntu)
     Importance: Undecided
         Status: Fix Released

** Affects: dbus (Ubuntu Xenial)
     Importance: Undecided
     Assignee: Heitor Alves de Siqueira (halves)
         Status: New

** Affects: systemd (Ubuntu Xenial)
     Importance: Undecided
     Assignee: Heitor Alves de Siqueira (halves)
         Status: New


** Tags: sts

** Also affects: dbus (Ubuntu)
   Importance: Undecided
       Status: New

** Also affects: dbus (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Also affects: systemd (Ubuntu Xenial)
   Importance: Undecided
       Status: New

** Changed in: dbus (Ubuntu)
       Status: New => Fix Released

** Changed in: systemd (Ubuntu)
       Status: New => Fix Released

** Changed in: dbus (Ubuntu Xenial)
     Assignee: (unassigned) => Heitor Alves de Siqueira (halves)

** Changed in: systemd (Ubuntu Xenial)
     Assignee: (unassigned) => Heitor Alves de Siqueira (halves)

** Description changed:

  [Impact]
  Scope file leakage can cause SSH delays and reduce performance in systemd
  
  [Description]
  The current systemd-logind version present in Xenial can leave abandoned SSH
  sessions and scope files in cases where the host sees a lot of concurrent SSH
  connections. These leftover sessions can slow down systemd performance
  greatly, and can have an impact on sshd handling a great number of concurrent
  connections.
  
  To fix this issue, patches are needed in both dbus and systemd. These improve the
  performance of the communication between dbus and systemd, so that they can
  handle a better volume of events (e.g. SSH logins). All of those patches are
  already present from Bionic onwards, so we only need those fixes for Xenial.
  
  == Systemd ==
  Upstream patches:
  - core: use an AF_UNIX/SOCK_DGRAM socket for cgroup agent notification (d8fdc62037b5)
  - tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere (fc2fffe7706e)
  - journald: stack allocation cannot fail (23be5709e10b)
  
  $ git describe --contains d8fdc62037b5 fc2fffe7706e 23be5709e10b
  v230~71^2~2
  v230~71^2~1
  v230~71^2
  
  $ rmadison systemd
-  systemd | 229-4ubuntu4     | xenial          | source, ...
-  systemd | 229-4ubuntu21.21 | xenial-security | source, ...
-  systemd | 229-4ubuntu21.22 | xenial-updates  | source, ... <--------
-  systemd | 237-3ubuntu10    | bionic          | source, ...
-  systemd | 237-3ubuntu10.29 | bionic-security | source, ...
-  systemd | 237-3ubuntu10.29 | bionic-updates  | source, ...
-  systemd | 237-3ubuntu10.31 | bionic-proposed | source, ...
+  systemd | 229-4ubuntu4     | xenial          | source, ...
+  systemd | 229-4ubuntu21.21 | xenial-security | source, ...
+  systemd | 229-4ubuntu21.22 | xenial-updates  | source, ... <--------
+  systemd | 237-3ubuntu10    | bionic          | source, ...
+  systemd | 237-3ubuntu10.29 | bionic-security | source, ...
+  systemd | 237-3ubuntu10.29 | bionic-updates  | source, ...
+  systemd | 237-3ubuntu10.31 | bionic-proposed | source, ...
  
  == DBus ==
  Upstream patches:
  - Only read one message at a time if there are fds pending (892f084eeda0)
  - bus: Fix timeout restarts  (529600397bca)
  - DBusMainLoop: ensure all required timeouts are restarted (446b0d9ac75a)
  
  $ git describe --contains 892f084eeda0 529600397bca 446b0d9ac75a
  dbus-1.11.10~44
  dbus-1.11.10~45
  dbus-1.11.16~2
  
  $ rmadison dbus
-  dbus | 1.10.6-1ubuntu3    | xenial           | source, ...
-  dbus | 1.10.6-1ubuntu3.4  | xenial-security  | source, ...
-  dbus | 1.10.6-1ubuntu3.4  | xenial-updates   | source, ... <--------
-  dbus | 1.12.2-1ubuntu1    | bionic           | source, ...
-  dbus | 1.12.2-1ubuntu1.1  | bionic-security  | source, ...
-  dbus | 1.12.2-1ubuntu1.1  | bionic-updates   | source, ...
+  dbus | 1.10.6-1ubuntu3    | xenial           | source, ...
+  dbus | 1.10.6-1ubuntu3.4  | xenial-security  | source, ...
+  dbus | 1.10.6-1ubuntu3.4  | xenial-updates   | source, ... <--------
+  dbus | 1.12.2-1ubuntu1    | bionic           | source, ...
+  dbus | 1.12.2-1ubuntu1.1  | bionic-security  | source, ...
+  dbus | 1.12.2-1ubuntu1.1  | bionic-updates   | source, ...
  
  [Test Case]
  1) Simulate a lot of concurrent SSH connections with e.g. a for loop:
  multipass@xenial-logind:~$ for i in {1..1000}; do sleep 0.1; ssh localhost sleep 1 > /dev/null & done
  
  2) Check for leaked sessions in /run/systemd/system/:
  multipass@xenial-logind:~$ ls -ld /run/systemd/system/session-*.scope*
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-103.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-104.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-105.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-106.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-110.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-111.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-112.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-113.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-114.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-115.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-116.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-117.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-118.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-119.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-120.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-121.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-122.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-123.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-126.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-131.scope.d
- drwxr-xr-x 2 root root 160 Oct  4 15:34 /run/systemd/system/session-134.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-103.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-104.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-105.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-106.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-110.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-111.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-112.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-113.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-114.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-115.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-116.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-117.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-118.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-119.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-120.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-121.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-122.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-123.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-126.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-131.scope.d
+ drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-134.scope.d
  ...
  
  [Regression Potential]
  The regression potential is low, as these patches have seen extensive testing
  both upstream and in more recent releases of Ubuntu. Nonetheless, these new
  packages will be rigorously tested through autopkgtest to avoid any possible
  Xenial-specific regressions.

-- 
You received this bug notification because you are a member of नेपाली
भाषा समायोजकहरुको समूह, which is subscribed to Xenial.
Matching subscriptions: Ubuntu 16.04 Bugs
https://bugs.launchpad.net/bugs/1846787

Title:
  systemd-logind leaves leftover sessions and scope files

Status in dbus package in Ubuntu:
  Fix Released
Status in systemd package in Ubuntu:
  Fix Released
Status in dbus source package in Xenial:
  New
Status in systemd source package in Xenial:
  New

Bug description:
  [Impact]
  Scope file leakage can cause SSH delays and reduce performance in systemd

  [Description]
  The current systemd-logind version present in Xenial can leave abandoned SSH
  sessions and scope files in cases where the host sees a lot of concurrent SSH
  connections. These leftover sessions can slow down systemd performance
  greatly, and can have an impact on sshd handling a great number of concurrent
  connections.

  To fix this issue, patches are needed in both dbus and systemd. These improve the
  performance of the communication between dbus and systemd, so that they can
  handle a better volume of events (e.g. SSH logins). All of those patches are
  already present from Bionic onwards, so we only need those fixes for Xenial.

  == Systemd ==
  Upstream patches:
  - core: use an AF_UNIX/SOCK_DGRAM socket for cgroup agent notification (d8fdc62037b5)
  - tree-wide: introduce new SOCKADDR_UN_LEN() macro, and use it everywhere (fc2fffe7706e)
  - journald: stack allocation cannot fail (23be5709e10b)

  $ git describe --contains d8fdc62037b5 fc2fffe7706e 23be5709e10b
  v230~71^2~2
  v230~71^2~1
  v230~71^2

  $ rmadison systemd
   systemd | 229-4ubuntu4     | xenial          | source, ...
   systemd | 229-4ubuntu21.21 | xenial-security | source, ...
   systemd | 229-4ubuntu21.22 | xenial-updates  | source, ... <--------
   systemd | 237-3ubuntu10    | bionic          | source, ...
   systemd | 237-3ubuntu10.29 | bionic-security | source, ...
   systemd | 237-3ubuntu10.29 | bionic-updates  | source, ...
   systemd | 237-3ubuntu10.31 | bionic-proposed | source, ...

  == DBus ==
  Upstream patches:
  - Only read one message at a time if there are fds pending (892f084eeda0)
  - bus: Fix timeout restarts  (529600397bca)
  - DBusMainLoop: ensure all required timeouts are restarted (446b0d9ac75a)

  $ git describe --contains 892f084eeda0 529600397bca 446b0d9ac75a
  dbus-1.11.10~44
  dbus-1.11.10~45
  dbus-1.11.16~2

  $ rmadison dbus
   dbus | 1.10.6-1ubuntu3    | xenial           | source, ...
   dbus | 1.10.6-1ubuntu3.4  | xenial-security  | source, ...
   dbus | 1.10.6-1ubuntu3.4  | xenial-updates   | source, ... <--------
   dbus | 1.12.2-1ubuntu1    | bionic           | source, ...
   dbus | 1.12.2-1ubuntu1.1  | bionic-security  | source, ...
   dbus | 1.12.2-1ubuntu1.1  | bionic-updates   | source, ...

  [Test Case]
  1) Simulate a lot of concurrent SSH connections with e.g. a for loop:
  multipass@xenial-logind:~$ for i in {1..1000}; do sleep 0.1; ssh localhost sleep 1 > /dev/null & done

  2) Check for leaked sessions in /run/systemd/system/:
  multipass@xenial-logind:~$ ls -ld /run/systemd/system/session-*.scope*
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-103.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-104.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-105.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-106.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-110.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-111.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-112.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-113.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-114.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-115.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-116.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-117.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-118.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-119.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-120.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-121.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-122.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-123.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-126.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-131.scope.d
  drwxr-xr-x 2 root root 160 Oct 4 15:34 /run/systemd/system/session-134.scope.d
  ...

  [Regression Potential]
  The regression potential is low, as these patches have seen extensive testing
  both upstream and in more recent releases of Ubuntu. Nonetheless, these new
  packages will be rigorously tested through autopkgtest to avoid any possible
  Xenial-specific regressions.

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/dbus/+bug/1846787/+subscriptions


Follow ups