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