Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Commit 3b92c08 has been causing screen lockers to hang #13769

Closed
mlindner opened this issue Oct 13, 2019 · 6 comments
Closed

Commit 3b92c08 has been causing screen lockers to hang #13769

mlindner opened this issue Oct 13, 2019 · 6 comments
Labels
login regression ⚠️ A bug in something that used to work correctly and broke through some recent commit
Milestone

Comments

@mlindner
Copy link

mlindner commented Oct 13, 2019

Please see: https://bbs.archlinux.org/viewtopic.php?id=249053

Commit that caused the problem: 3b92c08

See also: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=929834
the-cavalry/light-locker#146
the-cavalry/light-locker#126

@yuwata yuwata added login regression ⚠️ A bug in something that used to work correctly and broke through some recent commit labels Oct 14, 2019
@yuwata yuwata added this to the v244 milestone Oct 14, 2019
@keszybz
Copy link
Member

keszybz commented Oct 17, 2019

Hi,

the bug template asks for some things, in particular the exact version number. Without that it's hard to say anything about the bug. There have been a number of fixes for 3b92c08, in particular 5afb1f2, 0917293, 471cffc.

Please also attach logs (Running logind with SYSTEMD_LOG_LEVEL=debug would be great).

@renataogarcia
Copy link

renataogarcia commented Oct 18, 2019

I'm experiencing this issue running systemd 243.51-1 0eb5e6d

logind logs with debug:
First lock success
Second lock fail
After it fails to go to the login page I've unlocked it manually using loginctl unlock-session 2.

Hope this helps.

@Elliot2560
Copy link

in particular the exact version number

Also, I believe 243.0-1 was the earliest version where this bug is present. A few users over at the-cavalry/light-locker#146 also confirmed that after a downgrade to 242.84-2 the issue is gone.

@worldofpeace
Copy link

Hi, I'm the reporter at light-locker that confirmed reverting to a version of systemd directly before 3b92c08 commit subverts the issue, and then building systemd with that commit causes it. So I'd say that's good as confirmed, as far as it comes to a commit that triggers the issue.

As for the additional fixes, I use NixOS which has a fork of systemd which is based off efb536d commit. Plus there's plenty of other people with "me too" reports.

I can make myself available for any logging or debugging efforts, just ask specifically.

@keszybz
Copy link
Member

keszybz commented Oct 21, 2019

Thanks for the reports. Please give the PR a spin.

@worldofpeace
Copy link

worldofpeace commented Oct 21, 2019

@keszybz Great, currently running with this PR.
The particular issue where light-locker was affected appears to be gone, I've locally used the screenlocker 30 times in succession with no "hang".

PR is #13811

worldofpeace pushed a commit to worldofpeace/systemd that referenced this issue Oct 21, 2019
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.

Fixes systemd#13769.

(cherry picked from commit 8cc64c2)
Mic92 pushed a commit to NixOS/systemd that referenced this issue Oct 21, 2019
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.

Fixes systemd#13769.

(cherry picked from commit 8cc64c2)
flokli pushed a commit to flokli/systemd that referenced this issue Nov 25, 2019
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.

Fixes systemd#13769.

(cherry picked from commit 8cc64c2)
picnoir pushed a commit to picnoir/systemd that referenced this issue Mar 8, 2020
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.

Fixes systemd#13769.

(cherry picked from commit 8cc64c2)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
login regression ⚠️ A bug in something that used to work correctly and broke through some recent commit
Development

No branches or pull requests

6 participants