** Description changed:

- It was observed that systemd-logind tool is leaking memory at each session
- connected. The issue happens in systemd from Trusty (14.04), which latest
- version currently (Feb/2018) is 204-5ubuntu20.26 (and still reproduces
- the bug).
- 
- The basic test-case is to run the following loop from a remote machine:
- 
- while true; do ssh <hostname-target> "whoami"; done
- 
- and watch the increase in memory consumption from "systemd-logind" process
- in the target machine. One can use the "ps uax" command to verify the
- RSS of the process, or count the anon pages from /proc/<logind_pid>/smaps.
- 
- To clarify a bit how a session works, the following "stack trace" details
- a bit which function calls happen when a SSH connection is opened, from
- Trusty's systemd-logind point of view:
+ Below the SRU request form. Please refer to the Original Description to
+ a more comprehensive explanation of the problem observed.
  
  
- main() <logind.c>
- manager_startup()
- manager_run() [event-loop]
- bus_loop_dispatch() <dbus-loop.c>
- dbus_watch_handle() -> bus_manager_message_handler()
- bus_manager_create_session()
- manager_add_session() <logind.c>
- session_new() <logind-session.c>
- session_create_fifo()
- session_start()
- session_create_cgroup()
- session_save()
- session_bus_path()
- [...]
+ [Impact] 
  
- After each session is closed, it was observed that session_free() isn't
- called, keeping the sessions alive. This can be verified through the
- command "loginctl list-session" - each session that once connected is
- present there "forever".
+  * systemd-logind tool is leaking memory at each session connected. The 
+  issues happens in systemd from Trusty (14.04) only.
  
- The memory leaks can eventually lead to OOM situation of this process.
- Debug progress will be tracked here, in this LP.
+  * Three issues observed:
+   - systemd-logind is leaking entire sessions, i.e, the sessions are not 
+     feeed after they're closed. In order to fix that, we proactively add 
+     the sessions to systemd garbage collector (gc) when they are closed. 
+     Also, part of the fix is to make cgmanager package a dependency. Refer 
+     to comment #1 to a more thorough explanation of the issue and the fix.
+ 
+   - a small memory leak was observed in the session creation logic of 
+     systemd-logind. The fix for that is the addition of an appropriate 
+     free() call. Refer to comment #2 to more details on the issue and fix.
+ 
+   - another small memory leak was observed in the cgmanager glue code of 
+     systemd-logind - this code is only present in this specific Ubuntu 
+     release of the package, due to necessary compatibility layer with 
+     upstart init system. The fix is to properly call free() in 2 
+     functions. Refer to comment #3 to a deep exposition of the issue and 
+     the fix.
+ 
+ 
+ [Test Case]
+ 
+  * The basic test-case is to run the following loop from a remote machine:
+    while true; do ssh <hostname-target> "whoami"; done
+ 
+  * It's possible to watch the increase in memory consumption from 
+    "systemd-logind" process in the target machine. One can use the
+    "ps uax" command to verify the RSS of the process, or count its 
+    anonymous pages from /proc/<logind_pid>/smaps.
+ 
+ 
+ [Regression Potential] 
+ 
+  * Since the fixes are small and not intrusive, the potential for 
+    regressions are low. More regression considerations on comments #1, #2 
+    and #3 for each fix.
+ 
+  * A potential small regressson is performance-wise, since now we add 
+    sessions to garbage collector proactively.

** Tags added: sts-sru-needed

** Patch added: "debdiff"
   
https://bugs.launchpad.net/ubuntu/artful/+source/systemd/+bug/1750013/+attachment/5065280/+files/lp1750013-trusty.debdiff

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1750013

Title:
  systemd-logind: memory leaks on session's connections (trusty-only)

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

-- 
ubuntu-bugs mailing list
ubuntu-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to