Skip to content

Device appears to be gone when trying to resume. #12

@hiimdoublej

Description

@hiimdoublej

This happens on my arch linux after I suspend and resume, open-fprintd doesn't seems to resume.

$ systemctl status open-fprintd-resume  
× 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 Sun 2022-01-02 21:11:33 CST; 10s ago
    Process: 3203 ExecStart=/usr/lib/open-fprintd/resume.py (code=exited, status=1/FAILURE)
   Main PID: 3203 (code=exited, status=1/FAILURE)
        CPU: 31ms

I tried to resume the devices manually, there's a NoSuchDevice exception.

$ sudo /usr/lib/open-fprintd/resume.py 
Traceback (most recent call last):
  File "/usr/lib/open-fprintd/resume.py", line 11, in <module>
    o.Resume()
  File "/usr/lib/python3.10/site-packages/dbus/proxies.py", line 141, in __call__
    return self._connection.call_blocking(self._named_service,
  File "/usr/lib/python3.10/site-packages/dbus/connection.py", line 652, in call_blocking
    reply_message = self.send_message_with_reply_and_block(
dbus.exceptions.DBusException: org.freedesktop.DBus.Python.usb.core.USBError: Traceback (most recent call last):
  File "/usr/lib/python3.10/site-packages/dbus/service.py", line 715, in _message_cb
    retval = candidate_method(self, *args, **keywords)
  File "/usr/lib/python-validity/dbus-service", line 74, in Resume
    init.open_common()
  File "/usr/lib/python3.10/site-packages/validitysensor/init.py", line 29, in open_common
    init_flash()
  File "/usr/lib/python3.10/site-packages/validitysensor/init_flash.py", line 113, in init_flash
    info = get_flash_info()
  File "/usr/lib/python3.10/site-packages/validitysensor/flash.py", line 40, in get_flash_info
    rsp = tls.cmd(unhex('3e'))
  File "/usr/lib/python3.10/site-packages/validitysensor/tls.py", line 124, in cmd
    rsp = self.usb.cmd(cmd)
  File "/usr/lib/python3.10/site-packages/validitysensor/usb.py", line 102, in cmd
    self.dev.write(1, out)
  File "/usr/lib/python3.10/site-packages/usb/core.py", line 989, in write
    return fn(
  File "/usr/lib/python3.10/site-packages/usb/backend/libusb1.py", line 837, in bulk_write
    return self.__write(self.lib.libusb_bulk_transfer,
  File "/usr/lib/python3.10/site-packages/usb/backend/libusb1.py", line 938, in __write
    _check(retval)
  File "/usr/lib/python3.10/site-packages/usb/backend/libusb1.py", line 604, in _check
    raise USBError(_strerror(ret), ret, _libusb_errno[ret])
usb.core.USBError: [Errno 19] No such device (it may have been disconnected)

open-fprintd seems to be running just fine

$ sudo systemctl status open-fprintd
● open-fprintd.service - Open FPrint Daemon
     Loaded: loaded (/usr/lib/systemd/system/open-fprintd.service; static)
     Active: active (running) since Sun 2022-01-02 21:10:16 CST; 8min ago
   Main PID: 549 (open-fprintd)
      Tasks: 1 (limit: 18871)
     Memory: 9.6M
        CPU: 85ms
     CGroup: /system.slice/open-fprintd.service
             └─549 /usr/bin/python3 /usr/lib/open-fprintd/open-fprintd --debug

Jan 02 21:10:19 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:VerifyStart
Jan 02 21:10:19 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:VerifyFingerSelected
Jan 02 21:10:20 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:VerifyStatus
Jan 02 21:10:22 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:VerifyStatus
Jan 02 21:10:22 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:VerifyStop
Jan 02 21:10:22 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:Release
Jan 02 21:10:22 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:do_release
Jan 02 21:11:33 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:Suspend
Jan 02 21:11:33 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:Resume <- This resume was triggered as usual
Jan 02 21:11:58 hiimdoublej-X1C7 open-fprintd[549]: DEBUG:root:Resume <- This resume is from manual invoke

I think something is wrong when calling dev.target.Resume() from the manager, but I'm not too familiar with dbus so I'm not sure what's wrong here and how to fix it.
Any ideas on how to tackle this issue ? I'll happily provide any relevant logs.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions