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

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.

About this issue

  • Original URL
  • State: open
  • Created 2 years ago
  • Reactions: 3
  • Comments: 19

Commits related to this issue

Most upvoted comments

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

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