2

Right now my system is doing disk IO when I switch from a text console on tty6 to GNOME on tty3. 1.4GB of swap is in use.

On tty6, I ran sudo lsof -p 1 | grep dev, to check if it was a similar issue to "What could be using 6GB of my swap?". Based on the background information there, I would expect PID 1 to have open file descriptors for /dev/dri/.... But it didn't have any!

The same is true when I ran the command from tty3. The output is different though, as it now includes open file descriptors for /dev/input/....

These results are repeatable, if I switch back to tty3 and try again etc.

N.B. This is code that I have touched in upstream systemd, so it could well be my fault :-). Looking at the systemd git commit messages for src/login, I can't find a clear deliberate change in this behaviour.

I have a VM for each of Fedora 27 and Fedora 28. They Fedora 27 looks ok when I boot them and run lsof on the serial console. However, on the Fedora 28 VM, if I run chvt 6, then the same problem shows up.


EDIT: this apparent regression goes away if I set SELinux to "permissive" (policy violations are logged, but allowed). I've submitted it as an issue in Fedora. SELinux interferes with systemd-logind restart code


This does not happen on the Fedora 27 VM with

  • systemd-234-10.git5f8984e.fc27.x86_64
  • gnome-shell-3.26.2-5.fc27.x86_64
sourcejedi
  • 50,249

1 Answers1

2

I think the VT switch caused gnome-shell to release input devices (ReleaseDevice method in logind dbus API). This causes logind to remove the FD for the device.

So this is most likely affected by the issue #8344 "session_device_free(sd) also drops all other device fds of that session" . A fix is merged for systemd v239.

I confirmed this by testing a pre-release version of systemd, which included the fix.

... to check if it was a similar issue to "What could be using 6GB of my swap?"

Quite possibly. The fix for that is also merged for v239, and hence not present in systemd-238-7.fc28.1.x86_64.

sourcejedi
  • 50,249