fprintd-verify fails with an USB UPEK reader

Bug #1888495 reported by Marco Trevisan (Treviño)
22
This bug affects 4 people
Affects Status Importance Assigned to Milestone
fprintd (Ubuntu)
Fix Released
Medium
Marco Trevisan (Treviño)
Focal
Fix Released
Undecided
Unassigned
Groovy
Won't Fix
Undecided
Unassigned

Bug Description

[ Impact ]

The fingerprint reader is an UPEK TCRE3C usb fingerprint reader. It was working fine with ubuntu 16.04 and 18.04.

[ Test case ]

With an UPEK fingerprint reader run:
 - fprintd-verify

Verification should work properly

[ Regression potential ]

Fingers are not verified

----

lsusb shows:

0483:2016 STMicroelectronics Fingerprint Reader

user@xubuntu:~$ fprintd-enroll
Using device /net/reactivated/Fprint/Device/0
failed to claim device: Open failed with error: transfer timed out

user@xubuntu:~$ fprintd-list user
found 1 devices
Device at /net/reactivated/Fprint/Device/0
Using device /net/reactivated/Fprint/Device/0
User user has no fingers enrolled for UPEK TouchStrip.

This bug is probably the same as:

https://bugzilla.redhat.com/show_bug.cgi?id=1832229

Related to bug #1881380

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

@Jesús, can you please provide a stacktrace for the crash?

You should be able to get one by calling fprintd-verify first, then Ctrl+C, meanwhile you run this:

sudo gdb -p $(pgrep -U fprintd -x fprintd) -batch \
  -ex "set logging on" -ex continue \
  -ex "bt full" \
  -ex quit

And that should catch the crash and save it as gdb.txt

Changed in libfprint (Ubuntu):
status: In Progress → Triaged
description: updated
Changed in libfprint (Ubuntu):
importance: Medium → High
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Ah, you also will need debug symbols: https://wiki.ubuntu.com/Debug%20Symbol%20Packages

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

This is actually a known PAM module issue: https://gitlab.freedesktop.org/libfprint/fprintd/-/merge_requests/64

However, the bug itself is due to a driver error that is hard to debug, so we will need the hardware go do proper analysis.

Changed in libfprint (Ubuntu):
status: Triaged → Won't Fix
Changed in fprintd (Ubuntu):
status: New → Triaged
importance: Undecided → High
assignee: nobody → Marco Trevisan (Treviño) (3v1n0)
importance: High → Medium
Revision history for this message
Jesús Diéguez Fernández (jesusdf) wrote :

I'm trying to provide the stacktrace, I installed the debug symbols and made the following:

$ fprintd-verify
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify result: verify-disconnected (done)

Execution ends there. I also tried the following with the same result:

$ fprintd-verify -f right-index-finger
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify result: verify-disconnected (done)

$ fprintd-verify -f 0
Using device /net/reactivated/Fprint/Device/0
Listing enrolled fingers:
 - #0: right-index-finger
Verify result: verify-disconnected (done)

Then I run gdb but it does not record anything meaningful:

$ sudo LANG=C gdb -p $(pgrep -U fprintd -x fprintd) -batch -ex "set logging on" -ex continue -ex "bt full" -ex quit
pgrep: nombre de usuario inválido: fprintd
GNU gdb (Ubuntu 9.1-0ubuntu1) 9.1
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word".
Illegal process-id: -batch.
Copying output to gdb.txt.
Copying debug output to gdb.txt.
The program is not being run.
No stack.

$ cat gdb.txt
The program is not being run.
No stack.

Revision history for this message
Jesús Diéguez Fernández (jesusdf) wrote :

About the PAM module issue, I followed Benjamin changes and this one is a bug:

https://gitlab.freedesktop.org/libfprint/fprintd/-/commit/a7cf0ae3b266f9c5ead7d8acc4e5210adbc088cf

That's the double free error origin. I was able to download the source code from there, build it and patch it and now it shows the following error on syslog:

Jul 23 13:15:02 izanagi fprintd[98658]: Device reported an error during verify: Response had wrong subcommand type
Jul 23 13:15:26 izanagi fprintd[98658]: Device reported an error during verify: Response had wrong subcommand type

Which matches the last message from Benjamin about the subcommand f0: https://bugzilla.redhat.com/show_bug.cgi?id=1832229#c57

I will try to debug it in the next days, If I find something I will report it here.

Revision history for this message
Jesús Diéguez Fernández (jesusdf) wrote :

I've been quite busy lately and couldn't debug it too much, but today I was just thinking: if this new version will drop support for existing hardware, can't we just have the package and source from 18.04 with a "-legacy" suffix in both the pam client and library?

That would be a low effort fix where everyone wins: old hardware works again and developers can focus on newer features.

Revision history for this message
MEA707 (mea707) wrote :

Having this same issue. It enrolls my fingerprint, but fails in verifying.

Had no problems using the fingerprint reader on Ubuntu 18.04.

Changed in fprintd (Ubuntu):
status: Triaged → Won't Fix
Changed in libfprint (Ubuntu):
status: Won't Fix → Triaged
Changed in fprintd (Ubuntu):
status: Won't Fix → In Progress
Revision history for this message
Launchpad Janitor (janitor) wrote :

This bug was fixed in the package fprintd - 1.90.7-1

---------------
fprintd (1.90.7-1) unstable; urgency=medium

  * New upstream release
    - Fix fprintd DBus configuration (Closes: #976990)
    - Change details of what requires authorization
    - Fix various race conditions in pam_fprintd
    - Permit interactive authorization from fprintd utilities
    - Do not allow deletion while another operation is ongoing
    - pam: Guard strdup calls against NULL pointers
  * debian/patches:
    - Refresh
    - Ignore NameOwnerChanged until fprintd is running

 -- Marco Trevisan (Treviño) <email address hidden> Fri, 11 Dec 2020 00:03:27 +0100

Changed in fprintd (Ubuntu):
status: In Progress → Fix Released
Revision history for this message
Sebastien Bacher (seb128) wrote :

Marco, is the fprintd fix enough or is there work needed on libfprintd

Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

Seb: No, there's still work going on to understand the root issue in libfprint, so fprintd side is fixed but may be not enough for this driver.

Revision history for this message
Chris Halse Rogers (raof) wrote : Please test proposed package

Hello Marco, or anyone else affected,

Accepted fprintd into groovy-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/fprintd/1.90.9-1~ubuntu20.10.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-groovy to verification-done-groovy. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-groovy. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Changed in fprintd (Ubuntu Groovy):
status: New → Fix Committed
tags: added: verification-needed verification-needed-groovy
Changed in fprintd (Ubuntu Focal):
status: New → Fix Committed
tags: added: verification-needed-focal
Revision history for this message
Chris Halse Rogers (raof) wrote :

Hello Marco, or anyone else affected,

Accepted fprintd into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/fprintd/1.90.9-1~ubuntu20.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

Revision history for this message
Brian Murray (brian-murray) wrote : [fprintd/focal] verification still needed

The fix for this bug has been awaiting testing feedback in the -proposed repository for focal for more than 90 days. Please test this fix and update the bug appropriately with the results. In the event that the fix for this bug is still not verified 15 days from now, the package will be removed from the -proposed repository.

tags: added: removal-candidate
Revision history for this message
Marco Trevisan (Treviño) (3v1n0) wrote :

The pam module side of this bugs is fixed here, tested with various sensors.

❯ apt-cache policy fprintd
fprintd:
  Installato: 1.90.9-1~ubuntu20.04.1
  Candidato: 1.90.9-1~ubuntu20.04.1
  Tabella versione:
 *** 1.90.9-1~ubuntu20.04.1 400
        400 http://archive.ubuntu.com/ubuntu focal-proposed/main amd64 Packages
        100 /var/lib/dpkg/status

tags: added: verification-done verification-done-focal
removed: verification-needed verification-needed-focal
tags: removed: removal-candidate
Revision history for this message
Launchpad Janitor (janitor) wrote :
Download full text (4.3 KiB)

This bug was fixed in the package fprintd - 1.90.9-1~ubuntu20.04.1

---------------
fprintd (1.90.9-1~ubuntu20.04.1) focal; urgency=medium

  * Backport to focal (LP: #1908119)

fprintd (1.90.9-1) unstable; urgency=medium

  [ Marco Trevisan (Treviño) ]
  * New upstream release:
    - Fix multiple daemon lockup issues (#97)
    - Fix print garbage collection to not delete used prints
    - pam: Use the device with the most prints
  * debian/control: Mark fprintd-doc as Multi-Arch: foreign

  [ Helmut Grohne ]
  * Fix nocheck FTFBS: Drop <!nocheck> from non-optional dependencies.
    (Closes: #977395)

fprintd (1.90.8-1~ubuntu20.04.1) focal; urgency=medium

  * Backport to focal (LP: #1908119)
  * debian/{control,gbp.conf}: Prepare for ubuntu focal branching
  * debian/{control, rules}: Do not use debhelper 13 features
  * debian/rules: Use meson test directly to handle timeouts
  * debian/patches: Drop all the patches applied upstream

fprintd (1.90.8-1) unstable; urgency=medium

  * New upstream release
    - pam: Only listen to NameOwnerChanged after fprintd is known to run
    - Place new ObjectManager DBus API at /net/reactivated/Fprint
  * debian/patches: Remove all patches, applied upstream or not needed anymore
  * debian/control: Depend on systemd 235, but only in linux
  * debian/rules: Require systemd and set unit path only on linux
  * debian/fprintd.install: Use dh-exec to filter linux-only files

fprintd (1.90.7-1) unstable; urgency=medium

  * New upstream release
    - Fix fprintd DBus configuration (Closes: #976990)
    - Change details of what requires authorization
    - Fix various race conditions in pam_fprintd
    - Permit interactive authorization from fprintd utilities
    - Do not allow deletion while another operation is ongoing
    - pam: Guard strdup calls against NULL pointers
  * debian/patches:
    - Refresh
    - Ignore NameOwnerChanged until fprintd is running

fprintd (1.90.5-2) unstable; urgency=medium

  * debian/patches: Make tests run with actual required libfprint version
  * debian/control: Remove test-only dependency on libfprint 1.90.4.
    Tests are now working with older libfprint versions too
  * debian/control: Add myself to Uploaders
  * debian/gbp.conf: Include suggested settings by GNOME team.
    Even if fprintd is not part of GNOME I think these settings are good
    practice anyways.

fprintd (1.90.5-1) unstable; urgency=medium

  * New upstream release:
    - Permit building with polkit older than 0.114
    - Fix possible issues with PAM test
    - Fix incorrect DBus policy
    - Fix build so that CFLAGS environment is correctly used
    - Skip hotplug test with older libfprint (which times out otherwise)
  * debian/patches: Drop patches applied upstream

fprintd (1.90.4-1) unstable; urgency=medium

  * Team upload.
  [ Marco Trevisan (Treviño) ]
  * New upstream release:
    - Use GDBus and async Polkit checks
    - Authentication is now required to enroll a new print (LP: #1532264,
      Closes: #719004)
    - Add support for the libfprint early reporting mechanism
    - Proper hotplug support together with libfprint 1.90.4
    - Handle STATE_DIRECTORY containing multiple paths
    - Vario...

Read more...

Changed in fprintd (Ubuntu Focal):
status: Fix Committed → Fix Released
Revision history for this message
Łukasz Zemczak (sil2100) wrote : Update Released

The verification of the Stable Release Update for fprintd has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

Revision history for this message
Brian Murray (brian-murray) wrote :

The Groovy Gorilla has reached end of life, so this bug will not be fixed for that release

Changed in fprintd (Ubuntu Groovy):
status: Fix Committed → Won't Fix
no longer affects: libfprint (Ubuntu)
To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.