Bug ID 1158694
Summary Systemd 243 breaks light-locker on second lock activation
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Basesystem
Assignee bnc-team-screening@forge.provo.novell.com
Reporter cyril.x9@gmail.com
QA Contact qa-bugs@suse.de
Found By ---
Blocker ---

Systemd 243 breaks light-locker on second lock activation
Systemd commit 3b92c08 has been causing screen lockers to hang

While trying out the "stable branch of pantheon", I found that light-locker has
exposed a systemd issue which has already been solved upstream AND by
opensuse's master branch, but only partially backported to factory/v243.

Problem (includes steps to reproduce):
After locking the screen (super+l or `light-locker-command -l`) the gui freezes
on the "This session is locked" screen

Screenshot: https://imgur.com/R78OU59

After reboot the first lock/unlock works, the second ends in the freeze.

More on the issue:
https://github.com/systemd/systemd/pull/13811

Original reports/logs/debugging:
https://bbs.archlinux.org/viewtopic.php?id=249053
https://github.com/NixOS/nixpkgs/issues/69399

A series/family of commits comprise the solution:

1)
 logind: fix property emission on Sessions

We would not send the property because we'd call sd_bus_get_current_message()
which would return NULL. If there is no message, we cannot support /self or
/auto, but things are still OK if a path with a session name is given.
https://github.com/systemd/systemd-stable/commit/471cffcfb0e005b7c4044b3b52cc4f25d217efac#diff-9f88b2ee2f69c9fdf359509e2b3221f1

2)
 logind: fix emission of PropertiesChanged on seats

The story is the same as in 471cffc:
device_attach() ��� seat_send_changed() ��� sd_bus_emit_properties_changed_strv()
��� emit_properties_changed_on_interface() ��� node_vtable_get_userdata()
��� seat_object_find(), which returns 0 because message == NULL.
But when we are emitting a signal, message is always NULL. Removing the
overeager check and assert in the called function allow the signal to be
emitted.
https://github.com/openSUSE/systemd/commit/8cc64c2a3640121745fdfaccc6eae896ac25a911#diff-9f88b2ee2f69c9fdf359509e2b3221f1

3)
 logind: fix emission of PropertiesChanged for users

The same as parent commit, but users. This is the third and last
foo_object_find() function in logind, so I think that this particular
family of bugs is finally squashed.
https://github.com/openSUSE/systemd/commit/8163b9f90079af298031dcbffee057fc344470a3#diff-9f88b2ee2f69c9fdf359509e2b3221f1

4)
 logind: drop {}

https://github.com/systemd/systemd/pull/13811/commits/4b9e5848e31cb2efb606a5292a2d2abb6ba35040


You are receiving this mail because: