python-validity icon indicating copy to clipboard operation
python-validity copied to clipboard

`open-fprintd-resume.service` fails to start after resuming from suspend

Open xyzshantaram opened this issue 3 years ago • 21 comments

It is fixed upon restarting, but fails upon resuming from suspend again. This is on Arch Linux with the python-validity-git AUR package, and my FPR is 06cb:009a Synaptics, Inc. Metallica MIS Touch Fingerprint Reader.

Output of systemctl status open-fprintd-resume.service:

× open-fprintd-resume.service - Restart devices after resume
     Loaded: loaded (/usr/lib/systemd/system/open-fprintd-resume.service; enabled; vendor preset: disabled)
     Active: failed (Result: exit-code) since Fri 2022-01-07 13:12:24 IST; 13s ago
    Process: 38590 ExecStart=/usr/lib/open-fprintd/resume.py (code=exited, status=1/FAILURE)
   Main PID: 38590 (code=exited, status=1/FAILURE)
        CPU: 39ms

Jan 07 13:12:24 haruki resume.py[38590]:   File "/usr/lib/python3.10/site-packages/validitysensor/init_flash.py", line 113, in init_flash
Jan 07 13:12:24 haruki resume.py[38590]:     info = get_flash_info()
Jan 07 13:12:24 haruki resume.py[38590]:   File "/usr/lib/python3.10/site-packages/validitysensor/flash.py", line 41, in get_flash_info
Jan 07 13:12:24 haruki resume.py[38590]:     assert_status(rsp)
Jan 07 13:12:24 haruki resume.py[38590]:   File "/usr/lib/python3.10/site-packages/validitysensor/util.py", line 12, in assert_status
Jan 07 13:12:24 haruki resume.py[38590]:     raise Exception('Failed: %04x' % s)
Jan 07 13:12:24 haruki resume.py[38590]: Exception: Failed: 0315
Jan 07 13:12:24 haruki systemd[1]: open-fprintd-resume.service: Main process exited, code=exited, status=1/FAILURE
Jan 07 13:12:24 haruki systemd[1]: open-fprintd-resume.service: Failed with result 'exit-code'.
Jan 07 13:12:24 haruki systemd[1]: Failed to start Restart devices after resume.

Output of sudo systemctl start open-fprintd-resume.service:

Job for open-fprintd-resume.service failed because the control process exited with error code.
See "systemctl status open-fprintd-resume.service" and "journalctl -xeu open-fprintd-resume.service" for details.

Output of journalctl -xeu open-fprintd-resume.service:

Jan 07 13:12:24 haruki systemd[1]: open-fprintd-resume.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The unit open-fprintd-resume.service has entered the 'failed' state with result 'exit-code'.
Jan 07 13:12:24 haruki systemd[1]: Failed to start Restart devices after resume.
░░ Subject: A start job for unit open-fprintd-resume.service has failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit open-fprintd-resume.service has finished with a failure.
░░ 
░░ The job identifier is 3350 and the job result is failed.
Jan 07 13:14:00 haruki systemd[1]: Starting Restart devices after resume...
░░ Subject: A start job for unit open-fprintd-resume.service has begun execution
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit open-fprintd-resume.service has begun execution.
░░ 
░░ The job identifier is 3432.
Jan 07 13:14:00 haruki resume.py[38872]: Traceback (most recent call last):
Jan 07 13:14:00 haruki resume.py[38872]:   File "/usr/lib/open-fprintd/resume.py", line 11, in <module>
Jan 07 13:14:00 haruki resume.py[38872]:     o.Resume()
Jan 07 13:14:00 haruki resume.py[38872]:   File "/usr/lib/python3.10/site-packages/dbus/proxies.py", line 141, in __call__
Jan 07 13:14:00 haruki resume.py[38872]:     return self._connection.call_blocking(self._named_service,
Jan 07 13:14:00 haruki resume.py[38872]:   File "/usr/lib/python3.10/site-packages/dbus/connection.py", line 652, in call_blocking
Jan 07 13:14:00 haruki resume.py[38872]:     reply_message = self.send_message_with_reply_and_block(
Jan 07 13:14:00 haruki resume.py[38872]: dbus.exceptions.DBusException: org.freedesktop.DBus.Error.ServiceUnknown: The name :1.22 was not provided by any .service files
Jan 07 13:14:00 haruki systemd[1]: open-fprintd-resume.service: Main process exited, code=exited, status=1/FAILURE
░░ Subject: Unit process exited
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ An ExecStart= process belonging to unit open-fprintd-resume.service has exited.
░░ 
░░ The process' exit code is 'exited' and its exit status is 1.
Jan 07 13:14:00 haruki systemd[1]: open-fprintd-resume.service: Failed with result 'exit-code'.
░░ Subject: Unit failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ The unit open-fprintd-resume.service has entered the 'failed' state with result 'exit-code'.
Jan 07 13:14:00 haruki systemd[1]: Failed to start Restart devices after resume.
░░ Subject: A start job for unit open-fprintd-resume.service has failed
░░ Defined-By: systemd
░░ Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
░░ 
░░ A start job for unit open-fprintd-resume.service has finished with a failure.
░░ 
░░ The job identifier is 3432 and the job result is failed.

~~I also tried it with the regular python-validity AUR package (which doesn't seem to have been updated to 0.13 yet?), but that also caused the service with a different error -- I'll post the details in a follow-up comment.~~

Edit: I'm unable to reproduce that error anymore, it was a USBError from pyusb stating that the device couldn't be found and that it may have been disconnected. Now, both the -git and normal versions report the same error.

xyzshantaram avatar Jan 07 '22 07:01 xyzshantaram

how did you manage to fix this?

guemidiborhane avatar Jan 07 '22 18:01 guemidiborhane

I didn't, it's still broken.

xyzshantaram avatar Jan 07 '22 19:01 xyzshantaram

Sorry I miss understood

On Fri, 7 Jan 2022, 8:20 pm Siddharth Singh, @.***> wrote:

I didn't, it's still broken.

— Reply to this email directly, view it on GitHub https://github.com/uunicorn/python-validity/issues/106#issuecomment-1007672940, or unsubscribe https://github.com/notifications/unsubscribe-auth/AA7KVNYGORS4LN2QIQGJVUTUU44IHANCNFSM5LOGVKOA . You are receiving this because you commented.Message ID: @.***>

guemidiborhane avatar Jan 07 '22 19:01 guemidiborhane

i can confirm the issue on fully upgraded Arch, libusb error, i suppose it has to do with upgraded python. reinstalled libusb, no effect. same model of fingerprint reader.

l4pa avatar Jan 09 '22 09:01 l4pa

it only gets fixed for me if both python3-validity and open-fprintd are restarted.

l4pa avatar Jan 09 '22 10:01 l4pa

my log of open-fprintd-resume failure just in case

× open-fprintd-resume.service - Restart devices after resume Loaded: loaded (/usr/lib/systemd/system/open-fprintd-resume.service; enabled; vendor preset: disabled) Active: failed (Result: exit-code) since Wed 2022-01-12 22:14:20 EET; 8s ago Process: 4606 ExecStart=/usr/lib/open-fprintd/resume.py (code=exited, status=1/FAILURE) Main PID: 4606 (code=exited, status=1/FAILURE) CPU: 46ms

Jan 12 22:14:20 zzz resume.py[4606]: File "/usr/lib/python3.10/site-packages/usb/backend/libusb1.py", line 837, in bulk_write Jan 12 22:14:20 zzz resume.py[4606]: return self.__write(self.lib.libusb_bulk_transfer, Jan 12 22:14:20 zzz resume.py[4606]: File "/usr/lib/python3.10/site-packages/usb/backend/libusb1.py", line 938, in __write Jan 12 22:14:20 zzz resume.py[4606]: _check(retval) Jan 12 22:14:20 zzz resume.py[4606]: File "/usr/lib/python3.10/site-packages/usb/backend/libusb1.py", line 604, in _check Jan 12 22:14:20 zzz resume.py[4606]: raise USBError(_strerror(ret), ret, _libusb_errno[ret]) Jan 12 22:14:20 zzz resume.py[4606]: usb.core.USBError: [Errno 19] No such device (it may have been disconnected) Jan 12 22:14:20 zzz systemd[1]: open-fprintd-resume.service: Main process exited, code=exited, status=1/FAILURE Jan 12 22:14:20 zzz systemd[1]: open-fprintd-resume.service: Failed with result 'exit-code'. Jan 12 22:14:20 zzz systemd[1]: Failed to start Restart devices after resume.

l4pa avatar Jan 12 '22 20:01 l4pa

I have same issue, what helps for me as workaround is restarting open-fprintd and python3-validity as l4pa suggested. Also this issue dosn't happened every time i wake up computer from suspend. It started cca month ago. My device ID: 138a:0097 Validity Sensors, Inc. Im using version 0.12-4 from AUR python-validity package Output of journalctl -u open-fprintd-resume.service

led 18 08:45:47 jntb systemd[1]: Starting Restart devices after resume...
led 18 08:45:47 jntb resume.py[38662]: Traceback (most recent call last):
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/open-fprintd/resume.py", line 11, in <module>
led 18 08:45:47 jntb resume.py[38662]:     o.Resume()
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/dbus/proxies.py", line 141, in __call__
led 18 08:45:47 jntb resume.py[38662]:     return self._connection.call_blocking(self._named_service,
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/dbus/connection.py", line 652, in call_blocking
led 18 08:45:47 jntb resume.py[38662]:     reply_message = self.send_message_with_reply_and_block(
led 18 08:45:47 jntb resume.py[38662]: dbus.exceptions.DBusException: org.freedesktop.DBus.Python.Exception: Traceback (most recent call last):
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/dbus/service.py", line 715, in _message_cb
led 18 08:45:47 jntb resume.py[38662]:     retval = candidate_method(self, *args, **keywords)
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python-validity/dbus-service", line 74, in Resume
led 18 08:45:47 jntb resume.py[38662]:     init.open_common()
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/validitysensor/init.py", line 29, in open_common
led 18 08:45:47 jntb resume.py[38662]:     init_flash()
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/validitysensor/init_flash.py", line 113, in init_flash
led 18 08:45:47 jntb resume.py[38662]:     info = get_flash_info()
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/validitysensor/flash.py", line 41, in get_flash_info
led 18 08:45:47 jntb resume.py[38662]:     assert_status(rsp)
led 18 08:45:47 jntb resume.py[38662]:   File "/usr/lib/python3.10/site-packages/validitysensor/util.py", line 12, in assert_status
led 18 08:45:47 jntb resume.py[38662]:     raise Exception('Failed: %04x' % s)
led 18 08:45:47 jntb resume.py[38662]: Exception: Failed: 0315
led 18 08:45:47 jntb systemd[1]: open-fprintd-resume.service: Main process exited, code=exited, status=1/FAILURE
led 18 08:45:47 jntb systemd[1]: open-fprintd-resume.service: Failed with result 'exit-code'.
led 18 08:45:47 jntb systemd[1]: Failed to start Restart devices after resume.

sarlej avatar Jan 18 '22 07:01 sarlej

I have the same issue as the one described above. I have solved it by writing a service that runs after resume and restarts open-fprintd and python3-validity services It's a quick and easy fix until a permanent fix is found I'll leave the code for this service below for anyone who might need it.

[Unit]
Description=Restart services to fix fingerprint integration
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=systemctl restart open-fprintd.service python3-validity.service

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

ioanmoldovan95 avatar Jan 22 '22 19:01 ioanmoldovan95

@ioanmoldovan95 Thanks! I was considering doing something like that myself, you're a lifesaver! <3

xyzshantaram avatar Jan 23 '22 16:01 xyzshantaram

I have the same issue as the one described above. I have solved it by writing a service that runs after resume and restarts open-fprintd and python3-validity services It's a quick and easy fix until a permanent fix is found I'll leave the code for this service below for anyone who might need it.

[Unit]
Description=Restart services to fix fingerprint integration
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=systemctl restart open-fprintd.service python3-validity.service

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

This worked perfectly for me on a Lenovo T480s running Fedora 36

saunite avatar May 16 '22 04:05 saunite

I have the same issue as the one described above. I have solved it by writing a service that runs after resume and restarts open-fprintd and python3-validity services It's a quick and easy fix until a permanent fix is found I'll leave the code for this service below for anyone who might need it.

[Unit]
Description=Restart services to fix fingerprint integration
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=systemctl restart open-fprintd.service python3-validity.service

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

Just tried this on my T480 running Fedora 36. Works like a charm!

SoEven avatar Jul 06 '22 17:07 SoEven

I have the same issue as the one described above. I have solved it by writing a service that runs after resume and restarts open-fprintd and python3-validity services It's a quick and easy fix until a permanent fix is found I'll leave the code for this service below for anyone who might need it.

[Unit]
Description=Restart services to fix fingerprint integration
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=systemctl restart open-fprintd.service python3-validity.service

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

Just tried this on my T480 running Fedora 36. Works like a charm!

Also running Fedora 36 with a T480, although I've noticed that at least with KDE plasma, only about half the time I'm prompted for a fingerprint. The other times I need to put in a bad password once before it prompts for a fingerprint. Maybe the services don't restart fast enough for the device to register?

Edi: It does seem like a timing thing. Waiting a second or two before hitting the enter key on the lock screen makes it so the fingerprint reader always comes up. But because I'm always faster than that 2 second wait, it doesn't prompt on first try :(

ekirchman avatar Jul 17 '22 01:07 ekirchman

I have the same issue as the one described above. I have solved it by writing a service that runs after resume and restarts open-fprintd and python3-validity services It's a quick and easy fix until a permanent fix is found I'll leave the code for this service below for anyone who might need it.

[Unit]
Description=Restart services to fix fingerprint integration
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=systemctl restart open-fprintd.service python3-validity.service

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

This worked great on my T480s running Fedora 37 Beta, thanks!

latenightdef avatar Oct 15 '22 08:10 latenightdef

I have the same issue as the one described above. I have solved it by writing a service that runs after resume and restarts open-fprintd and python3-validity services It's a quick and easy fix until a permanent fix is found I'll leave the code for this service below for anyone who might need it.

[Unit]
Description=Restart services to fix fingerprint integration
After=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

[Service]
Type=oneshot
ExecStart=systemctl restart open-fprintd.service python3-validity.service

[Install]
WantedBy=suspend.target hibernate.target hybrid-sleep.target suspend-then-hibernate.target

Just tried this on my T480 running Fedora 36. Works like a charm!

Also running Fedora 36 with a T480, although I've noticed that at least with KDE plasma, only about half the time I'm prompted for a fingerprint. The other times I need to put in a bad password once before it prompts for a fingerprint. Maybe the services don't restart fast enough for the device to register?

Edi: It does seem like a timing thing. Waiting a second or two before hitting the enter key on the lock screen makes it so the fingerprint reader always comes up. But because I'm always faster than that 2 second wait, it doesn't prompt on first try :(

Tried this fix as well and I'm experiencing the same behavior. If I get pass the lock screen too quickly, I won't be able to use the fingerprint reader to login. If I wait a second or two, it works just fine and I can login with my fingerprint. I don't really mind waiting a second or two, but hopefully this can be improved upon. Thanks @ioanmoldovan95!

I'm running Fedora 36 on a T480.

perezandrew477 avatar Nov 04 '22 18:11 perezandrew477

I fixed this issue for myself with the solution in this thread and it worked perfectly on my Thinkpad running latest Arch. Is there any particular reason that this fix hasn't been included in the main package?

Edit: It seems like it's a little inconsistent. I'm experiencing the same delay issue as the above comment. I don't mind too much since it still works but it hopefully it can be fixed.

Grafcube avatar Jan 10 '23 13:01 Grafcube

Yes, I am aware about the issue that is described in the last few comments, but haven't found a solution to it yet as it doesn't bother me too much, I prefer to wait 1-2 seconds before tapping enter to bring up the login screen. It is for sure a timing issue, the services are not restarted as fast as they should. If I come up with a solution I will post it here

ioanmoldovan95 avatar Feb 09 '23 14:02 ioanmoldovan95

You can also enable services that come with the python-validity package instead of creating a new one:

systemctl enable python3-validity-restart-after-resume.service open-fprintd-restart-after-resume.service

Works like a charm.

coignard avatar Mar 05 '24 16:03 coignard

@coignard What package are you using? I don't see those service files in this repo or in the AUR packages.

cg505 avatar Mar 11 '24 16:03 cg505

@coignard What package are you using? I don't see those service files in this repo or in the AUR packages.

tigro/python-validity copr on Fedora.

coignard avatar Mar 11 '24 19:03 coignard