uunicorn / python-validity

Validity fingerprint sensor prototype
MIT License
955 stars 79 forks source link

Systemd service python-validity get error after longtime suspend or after reboot #173

Open Anifyuli opened 1 year ago

Anifyuli commented 1 year ago

Hello, I want to report python-validity.service bug in Python3 exec file (I guess) and this bug repeated after resume for longtime suspend or after rebooting machine. This bug appear like this

Okt 01 10:16:54 ThinkPad-X280 python3[847]: ERROR:root:Finger not recognized: 04000100db
                                            Traceback (most recent call last):
                                              File "/usr/lib/python-validity/dbus-service", line 121, in run
                                                usrid, subtype, hsh = sensor.identify(update_cb)
                                                                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
                                              File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 912, in identify
                                                return self.match_finger()
                                                       ^^^^^^^^^^^^^^^^^^^
                                              File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 874, in match_finger
                                                raise Exception('Finger not recognized: %s' % hexlify(b).decode())
                                            Exception: Finger not recognized: 04000100db

If I restart all service from pyhton-validity & open-fprintd, other service like open-fprintd-resume.service and open-fprintd.service because this bug. Sometime, I get other report, it look like this

Okt 01 14:33:11 ThinkPad-X280 ERROR:root[860]: Traceback (most recent call last):
                                                 File "/usr/lib/python3/dist-packages/validitysensor/usb.py", line 128, in wait_int
                                                   resp = self.dev.read(131, 1024, timeout=100)
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/usb/core.py", line 1029, in read
                                                   ret = fn(
                                                         ^^^
                                                 File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 864, in intr_read
                                                   return self.__read(self.lib.libusb_interrupt_transfer,
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 954, in __read
                                                   _check(retval)
                                                 File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 602, in _check
                                                   raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
                                               usb.core.USBTimeoutError: [Errno 110] Operation timed out

                                               During handling of the above exception, another exception occurred:

                                               Traceback (most recent call last):
                                                 File "/usr/lib/python-validity/dbus-service", line 121, in run
                                                   usrid, subtype, hsh = sensor.identify(update_cb)
                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 906, in identify
                                                   raise e
                                                 File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 900, in identify
                                                   self.capture(CaptureMode.IDENTIFY)
                                                 File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 705, in capture
                                                   b = usb.wait_int()
                                                       ^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/validitysensor/usb.py", line 135, in wait_int
                                                   raise CancelledException()
                                               validitysensor.usb.CancelledException
Okt 01 14:33:11 ThinkPad-X280 python3[860]: DEBUG:root:<cmd< 1703030040b83389a79a480dd5848e23022d591fbc3e864319f7c0c3bb25c600f83e5b97b2072322ee23b6d301a80829fe03f97308a1fb8823342411a546c6513cc01e7a9b
Okt 01 14:33:11 ThinkPad-X280 python3[860]: DEBUG:root:VerifyStatus
Okt 01 14:33:11 ThinkPad-X280 python3[860]: DEBUG:root:<tls< 17: 0000
Okt 01 14:33:11 ThinkPad-X280 ERROR:root[860]: Traceback (most recent call last):
                                                 File "/usr/lib/python3/dist-packages/validitysensor/usb.py", line 128, in wait_int
                                                   resp = self.dev.read(131, 1024, timeout=100)
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/usb/core.py", line 1029, in read
                                                   ret = fn(
                                                         ^^^
                                                 File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 864, in intr_read
                                                   return self.__read(self.lib.libusb_interrupt_transfer,
                                                          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 954, in __read
                                                   _check(retval)
                                                 File "/usr/lib/python3/dist-packages/usb/backend/libusb1.py", line 602, in _check
                                                   raise USBTimeoutError(_strerror(ret), ret, _libusb_errno[ret])
                                               usb.core.USBTimeoutError: [Errno 110] Operation timed out

                                               During handling of the above exception, another exception occurred:

                                               Traceback (most recent call last):
                                                 File "/usr/lib/python-validity/dbus-service", line 121, in run
                                                   usrid, subtype, hsh = sensor.identify(update_cb)
                                                                         ^^^^^^^^^^^^^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 906, in identify
                                                   raise e
                                                 File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 900, in identify
                                                   self.capture(CaptureMode.IDENTIFY)
                                                 File "/usr/lib/python3/dist-packages/validitysensor/sensor.py", line 699, in capture
                                                   b = usb.wait_int()
                                                       ^^^^^^^^^^^^^^
                                                 File "/usr/lib/python3/dist-packages/validitysensor/usb.py", line 135, in wait_int
                                                   raise CancelledException()
                                               validitysensor.usb.CancelledException

I wish it can fix immediately. Thanks for your updates & hardworks.

System information : Device : ThinkPad X280 20KEA062UK Kernel : 6.2.0.33-generic Distro : Ubuntu 23.04 Lunar Lobster FP : Bus 001 Device 005: ID 06cb:009a Synaptics, Inc. Metallica MIS Touch Fingerprint Reader Systemd : 252.5-2ubuntu3.1 Source install : download .deb from PPA for Kinetic Kudu