Bug 1530584

Summary: systemd-logind leaks session files upon systemd upgrade
Product: Red Hat Enterprise Linux 7 Reporter: Renaud Métrich <rmetrich>
Component: systemdAssignee: systemd-maint
Status: CLOSED NEXTRELEASE QA Contact: qe-baseos-daemons
Severity: high Docs Contact:
Priority: high    
Version: 7.4CC: mpoole, msekleta, systemd-maint-list, zpytela
Target Milestone: rc   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2018-01-17 13:51:14 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Renaud Métrich 2018-01-03 12:13:03 UTC
Description of problem:

When upgrading systemd without restarting the system afterwards, we can see that /run/systemd/sessions directory contains "stale" files, causing a leak and /run filesystem to grow:

# ll /run/systemd/sessions/
total 20
-rw-r--r--. 1 root root 282 Jan  3 13:00 1
prw-------. 1 root root   0 Jan  3 13:00 1.ref
-rw-r--r--. 1 root root 238 Jan  3 13:01 2
-rw-r--r--. 1 root root 251 Jan  3 13:02 3
-rw-r--r--. 1 root root 251 Jan  3 13:02 4
-rw-r--r--. 1 root root 251 Jan  3 13:02 5

# cat /run/systemd/sessions/4
# This is private data. Do not parse.
UID=0
USER=root
ACTIVE=1
STATE=closing
REMOTE=1
STOPPING=1
...

Each time a new session is created (e.g. when user connects through ssh), a new state file will remain in that directory, even upon session closure.


Version-Release number of selected component (if applicable):

systemd-219-42.el7_4.4.x86_64


How reproducible:

ALWAYS


Steps to Reproduce:
1. Install a RHEL < 7.4 system (e.g. RHEL 7.3)
2. Upgrade systemd to latest version

  # yum -y update systemd

3. Connect to the system using ssh

  # ssh root@reproducer true

Actual results:

Every connection (3.) leads to a new state file that doesn't get deleted.


Additional info:

Workaround (root cause?) is to restart systemd-logind service upon upgrade.