Popax21 / synaTudor

GNU Lesser General Public License v2.1
92 stars 10 forks source link

Exit code 134 #17

Open 777Raim opened 1 year ago

777Raim commented 1 year ago

Hi there!

Sometimes when trying to add finger print fprint-enroll $USER have this at journalctl:

16:50:15 Notebook-PC tudor_host_launcher[1188582]: [WRN] libusb transfer failed: 4 [LIBUSB_TRANSFER_STALL]
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [WRN] libusb transfer failed: 2 [LIBUSB_TRANSFER_TIMED_OUT]
16:50:17 Notebook-PC audit[1188582]: ANOM_ABEND auid=4294967295 uid=3333 gid=3333 ses=4294967295 pid=1188582 comm="tudor_host" exe="/usr/sbin/tudor/tudor_host" sig=6 res=1
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [ERR] Error starting capture: 0x80098036!
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [ERR] Identify action failed!
16:50:18 Notebook-PC systemd-coredump[1190482]: Process 1188582 (tudor_host) of user 3333 dumped core.
                                          Module libtudor.so with build-id 513a6e33304cde9dd60eb6269e484484158b5f2c
                                          Module tudor_host with build-id 17a00897d4bc84f4843c551c21613001406c70d7
                                          #3  0x0000000000407cf1 identify_cb (tudor_host + 0x7cf1)
                                          #4  0x00007f622d8c8c98 async_complete_op (libtudor.so + 0x2ec98)
                                          #5  0x00007f622d8cd374 identify_cb (libtudor.so + 0x33374)
                                          #6  0x00007f622d8b4c77 ovlp_cb_thread_func (libtudor.so + 0x1ac77)
                                          #4  0x0000000000402671 usb_thread_func (tudor_host + 0x2671)
                                          #2  0x00007f622d8b4876 ConnectNamedPipe (libtudor.so + 0x1a876)
16:50:18 Notebook-PC fprintd[1188576]: Tudor host process died! Exit Code 134
16:50:20 Notebook-PC abrt-notification[1190579]: Process 27406 (tudor_host) crashed in enroll_cb()

Question 2: How to delete all fingerprint records, cos with fprint-enroll $USER have this:

fprintd-enroll $USER
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-duplicate

At journalctl have this:

16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID 45e38506... finger 2 size 88812
16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID e070a266... finger 2 size 88812
16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID 05c6acd1... finger 2 size 88812
16:55:31 Notebook-PC tudor_host_launcher[1195108]: [INF] Identify result -> matches GUID 45e38506... finger 2

Tried fprint-delete $USER but this not help

Popax21 commented 1 year ago

Hi there!

Sometimes when trying to add finger print fprint-enroll $USER have this at journalctl:

16:50:15 Notebook-PC tudor_host_launcher[1188582]: [WRN] libusb transfer failed: 4 [LIBUSB_TRANSFER_STALL]
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [WRN] libusb transfer failed: 2 [LIBUSB_TRANSFER_TIMED_OUT]
16:50:17 Notebook-PC audit[1188582]: ANOM_ABEND auid=4294967295 uid=3333 gid=3333 ses=4294967295 pid=1188582 comm="tudor_host" exe="/usr/sbin/tudor/tudor_host" sig=6 res=1
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [ERR] Error starting capture: 0x80098036!
16:50:17 Notebook-PC tudor_host_launcher[1188582]: [ERR] Identify action failed!
16:50:18 Notebook-PC systemd-coredump[1190482]: Process 1188582 (tudor_host) of user 3333 dumped core.
                                          Module libtudor.so with build-id 513a6e33304cde9dd60eb6269e484484158b5f2c
                                          Module tudor_host with build-id 17a00897d4bc84f4843c551c21613001406c70d7
                                          #3  0x0000000000407cf1 identify_cb (tudor_host + 0x7cf1)
                                          #4  0x00007f622d8c8c98 async_complete_op (libtudor.so + 0x2ec98)
                                          #5  0x00007f622d8cd374 identify_cb (libtudor.so + 0x33374)
                                          #6  0x00007f622d8b4c77 ovlp_cb_thread_func (libtudor.so + 0x1ac77)
                                          #4  0x0000000000402671 usb_thread_func (tudor_host + 0x2671)
                                          #2  0x00007f622d8b4876 ConnectNamedPipe (libtudor.so + 0x1a876)
16:50:18 Notebook-PC fprintd[1188576]: Tudor host process died! Exit Code 134
16:50:20 Notebook-PC abrt-notification[1190579]: Process 27406 (tudor_host) crashed in enroll_cb()

Question 2: How to delete all fingerprint records, cos with fprint-enroll $USER have this:

fprintd-enroll $USER
Using device /net/reactivated/Fprint/Device/0
Enrolling right-index-finger finger.
Enroll result: enroll-duplicate

At journalctl have this:

16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID 45e38506... finger 2 size 88812
16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID e070a266... finger 2 size 88812
16:55:28 Notebook-PC tudor_host_launcher[1195108]: [INF] Added record GUID 05c6acd1... finger 2 size 88812
16:55:31 Notebook-PC tudor_host_launcher[1195108]: [INF] Identify result -> matches GUID 45e38506... finger 2

Tried fprint-delete $USER but this not help

  1. It appears like the fingerprint sensor has timed out. This probably indicates a hardware / connection issue, which I sadly cannot really help with.

  2. What are you referring to with "did not help"? More details would be appreciated to help track this down.

777Raim commented 1 year ago

@Popax21, thanks for answer!

What are you referring to with "did not help"? More details would be appreciated to help track this down.

Below are my steps:

  1. Standard output fprint-list $USER (I deleted all my enrolls before):

    found 1 devices
    Device at /net/reactivated/Fprint/Device/0
    Using device /net/reactivated/Fprint/Device/0
    User $USER has no fingers enrolled for Synaptics Tudor.
  2. Trying to enroll my point finger: fprintd-enroll $USER right-point-finger:

    Using device /net/reactivated/Fprint/Device/0
    Enrolling right-index-finger finger.
    Enroll result: enroll-duplicate

    At journalctl had this:

    13 09:12:05 Notenook-PC tudor_host_launcher[148228]: [INF] Identify result -> matches GUID 45e38506... finger 2

    I think it's mean that fprintd find my 'finger' at it's own base, isn't it?

  3. I found several python scripts to delete all fprintd fingerprints:

For each of they, I had this:

Looking for fingerprint devices.
libusb: error [udev_hotplug_event] ignoring udev action change
libusb: error [udev_hotplug_event] ignoring udev action change
libusb: error [udev_hotplug_event] ignoring udev action change
libusb: error [udev_hotplug_event] ignoring udev action change
<__gi__.FpiDeviceTudor object at 0x7f82c583e240 (FpiDeviceTudor at 0x558d4fe4f120)>
syna_tudor_relink
86521C845BF50000
All prints deleted.
libusb: warning [libusb_exit] device 3.4 still referenced
libusb: warning [libusb_exit] device 3.2 still referenced
libusb: warning [libusb_exit] device 3.1 still referenced

journalctl at that time:

13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Activated sandbox
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Received init message - USB device 3-4
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initialized libcrypto
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initialized libusb
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] PE file contains unsupported resource data directory!
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] PE file contains unsupported exception data directory!
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Loaded driver DLL 'synaFpAdapter104.dll' [186656 bytes]
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] PE file contains unsupported resource data directory!
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] PE file contains unsupported exception data directory!
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] Data directory 4 has invalid bounds! [end 0x17ebe0 > image end 0x17e000]
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Loaded driver DLL 'synaWudfBioUsb104.dll' [1567712 bytes]
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'...
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'...
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initialized tudor driver
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Opened USB device
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x7fe1a90b2710]
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Getting pairing data for sensor '86521C845BF50000'...
13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Setting pairing data for sensor '86521C845BF50000'...
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Opend tudor device
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Sent ready message
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Cleared 0 records
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Closed tudor device
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Uninitializing driver DLL 'synaFpAdapter104.dll'...
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Uninitializing driver DLL 'synaWudfBioUsb104.dll'...
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Shutdown tudor driver
13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Shutdown libusb
  1. Tried again fprintd-enroll $USER right-point-finger:
    Using device /net/reactivated/Fprint/Device/0
    Enrolling right-index-finger finger.
    Enroll result: enroll-duplicate

    At journalctl had this:

    13 09:33:17 Notebook-PC tudor_host_launcher[148228]: [INF] Identify result -> matches GUID 45e38506... finger 2

    The same error as at step 2.


I have that error with 3 fingers: In February I first time built and installed synaTudor and enrolled my fingers - all worked. Some days ago I reenrolled my fingers cos sometimes my fingers didn't match. After that I began have this issue. I rebuilt and installed last git version of fprintd-tod and synaTudor but the issue saves.

Popax21 commented 1 year ago

Sorry for the late response, I'm just now finding time to (quickly) look into this again. I think there might be a bug in libtudor/tudor-host regarding the biometric record clearing code, as can be seen in the log snippet you sent: it seems to receive the clear request, but it looks like it doesn't actually clear any records

13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initializing driver DLL 'synaFpAdapter104.dll'... 13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initializing driver DLL 'synaWudfBioUsb104.dll'... 13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Initialized tudor driver 13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Opened USB device 13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [WRN] GetModuleHandleExW called with unsupported flag GET_MODULE_HANDLE_EX_FLAG_FROM_ADDRESS! [addr=0x7fe1a90b2710] 13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Getting pairing data for sensor '86521C845BF50000'... 13 09:53:28 Notebook-PC tudor_host_launcher[185945]: [INF] Setting pairing data for sensor '86521C845BF50000'... 13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Opend tudor device 13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Sent ready message 13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Cleared 0 records 13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Closed tudor device 13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Uninitializing driver DLL 'synaFpAdapter104.dll'... 13 09:53:31 Notebook-PC tudor_host_launcher[185945]: [INF] Uninitializing driver DLL 'synaWudfBioUsb104.dll'...

I will let you know once I find the underlying issue.

777Raim commented 1 year ago

Thanks for answer! I'm looking forward to your reply.

Popax21 commented 1 year ago

Actually, that makes sense considering no prints have been sent to the host yet. Additionally, fprintd already reported that no prints are stored, so I'm not sure where it is pulling all the extra prints from.

Can you set the env var G_MESSAGES_DEBUG=all in the fprintd systemd unit file, restart both the host launcher and fprintd, then set the journalctl log of both a list, clear, and (failed) enroll, in that order?

777Raim commented 1 year ago

Logs are below: journalctl_fprintd_restart.txt journalctl_tudor_restart.txt journalctl_fprintd_fprint-list.txt journalctl_tudor_fprint-list.txt journalctl_fprintd_remove_by_python.txt journalctl_tudor_remove_by_python.txt journalctl_fprintd_fprint-enroll.txt journalctl_tudor_fprint-enroll.txt

After remove enrolls via python script, tudor enrolls didn't removed. After python removed enrolls, fprintd-list has the same output as before: 2 enrolled fingers.


EDITED: I found "non-deletable" enrolls. I saw location of enrolls at logs (/var/lib/fprint) and I had some wrong users for fingers. I deleted all wrong user's enrolls and now can enroll all my fingers!

Thombela commented 1 year ago

Hey, thank you very much for this. It is the only solution that has actually worked for me. However, I wanted to ask, does it only work for login? Like can I not set it to authenticate everything else as well, like when I am using chrome and want to authenticate a password, or like when I want to unlock to make changes in settings and etc.