Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
L
libfprint
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 47
    • Issues 47
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 12
    • Merge Requests 12
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • libfprint
  • libfprint
  • Issues
  • #355

Closed
Open
Created Jan 24, 2021 by Juan Carlos García@gavajc

Issue when unplug device while enrollment or verify process (UareU 4500)

I have tested the examples provided in the library v1.90.6 for the enroll and verify processes in Linux (Ubuntu 18.04 LTS) using the device: Digital Persona U are U 4500. So the driver used is the uru4000.

When the process for Enroll or Verify is executing and ask for the FINGER ON, if I unplug the USB device then the user callback will never be called. Internally the device is DEACTIVATE so the state change to DEACTIVATE but the action remains as FPI_DEVICE_ACTION_ENROLL or FPI_DEVICE_ACTION_VERIFY according to the case. This is a problem because I'm never notified and it causes the app to hang.

I Previously sent and email to the Mailing list (fprint@lists.freedesktop.org) and was told the following:

You should get a well defined behaviour. i.e. the following happening (in this order):

  1. "removed" property changes from FALSE to TRUE
  2. enroll callback being called with error
  3. "removed" signal is called
  4. FpContext emits the "device-removed" signal

But the enroll callback in point 2 is never called. I have enabled more debug output by setting:

G_MESSAGES_DEBUG=all and maybe also FP_DEBUG_TRANSFER=1

Here is my Debug trace for Enrollment process:

Selected device 0 (Digital Persona U.are.U 4000/4000B/4500) claimed by uru4000 driver
(process:5048): libfprint-image_device-DEBUG: 18:38:41.396: Image device open completed
(process:5048): libfprint-device-DEBUG: 18:38:41.396: Device reported open completion
(process:5048): libfprint-device-DEBUG: 18:38:41.396: Completing action FPI_DEVICE_ACTION_OPEN in idle!
Opened device. It's now time to enroll your finger.

You will need to successfully scan your right index finger 1 times to complete the process.

Scan your finger now.
(process:5048): libfprint-image_device-DEBUG: 18:38:46.443: Activating image device
(process:5048): libfprint-image_device-DEBUG: 18:38:46.443: Image device internal state change from FPI_IMAGE_DEVICE_STATE_INACTIVE to FPI_IMAGE_DEVICE_STATE_ACTIVATING
(process:5048): libfprint-DEBUG: 18:38:46.443: Transfer 0x5599c62b29f0 submitted, requested length 64, endpoint 0x81
(process:5048): libfprint-SSM-DEBUG: 18:38:46.443: [uru4000] INIT_NUM_STATES entering state 0
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.443: read 1 regs at 7
(process:5048): libfprint-DEBUG: 18:38:46.443: Transfer 0x5599c62b2a60 submitted, requested length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:38:46.443: 00 
(process:5048): libfprint-DEBUG: 18:38:46.450: Transfer 0x5599c62b2a60 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.450: reg value 1
(process:5048): libfprint-SSM-DEBUG: 18:38:46.450: [uru4000] INIT_NUM_STATES entering state 1
(process:5048): libfprint-SSM-DEBUG: 18:38:46.450: [uru4000] INIT_NUM_STATES entering state 3
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.450: set 81
(process:5048): libfprint-DEBUG: 18:38:46.450: Transfer 0x5599c62b2ad0 submitted, requested length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:38:46.450: 81 
(process:5048): libfprint-DEBUG: 18:38:46.458: Transfer 0x5599c62b2ad0 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5048): libfprint-SSM-DEBUG: 18:38:46.458: [uru4000] INIT_NUM_STATES entering state 4
(process:5048): libfprint-SSM-DEBUG: 18:38:46.458: [uru4000] POWERUP_NUM_STATES entering state 0
(process:5048): libfprint-SSM-DEBUG: 18:38:46.458: [uru4000] POWERUP_NUM_STATES entering state 1
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.458: set 01
(process:5048): libfprint-DEBUG: 18:38:46.458: Transfer 0x5599c62b2b40 submitted, requested length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:38:46.458: 01 
(process:5048): libfprint-DEBUG: 18:38:46.458: Transfer 0x5599c62b29f0 completed successfully, requested length 64, actual length 64, endpoint 0x81
(process:5048): libfprint-DEBUG: 18:38:46.458: 56 aa 03 91 0e fe 0c 54 02 01 0d ee 0c 40 14 04 
(process:5048): libfprint-DEBUG: 18:38:46.458: 0c 44 16 04 02 70 0c 51 14 02 0f 11 0c 44 0f 10 
(process:5048): libfprint-DEBUG: 18:38:46.458: 16 0a 0c 40 02 3f 14 01 0f 10 0c 44 0d e0 0e f1 
(process:5048): libfprint-DEBUG: 18:38:46.458: 0c 40 00 4c 0e fe 14 01 0c 44 0d ee 00 10 0c 40 
(process:5048): libfprint-DEBUG: 18:38:46.458: Transfer 0x5599c62ddc40 submitted, requested length 64, endpoint 0x81
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.458: recv irq type 56aa
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.458: early scanpwr interrupt
(process:5048): libfprint-DEBUG: 18:38:46.463: Transfer 0x5599c62b2b40 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5048): libfprint-SSM-DEBUG: 18:38:46.463: [uru4000] POWERUP_NUM_STATES entering state 2
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.463: read 1 regs at 7
(process:5048): libfprint-DEBUG: 18:38:46.463: Transfer 0x5599c62ddcb0 submitted, requested length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:38:46.463: 00 
(process:5048): libfprint-DEBUG: 18:38:46.468: Transfer 0x5599c62ddcb0 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.468: reg value 0
(process:5048): libfprint-SSM-DEBUG: 18:38:46.468: [uru4000] POWERUP_NUM_STATES entering state 3
(process:5048): libfprint-SSM-DEBUG: 18:38:46.468: [uru4000] POWERUP_NUM_STATES completed successfully
(process:5048): libfprint-SSM-DEBUG: 18:38:46.468: [uru4000] INIT_NUM_STATES entering state 5
(process:5048): libfprint-SSM-DEBUG: 18:38:46.468: [uru4000] INIT_NUM_STATES entering state 6
(process:5048): libfprint-SSM-DEBUG: 18:38:46.468: [uru4000] INIT_NUM_STATES entering state 7
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.468: read 16 regs at f0
(process:5048): libfprint-DEBUG: 18:38:46.468: Transfer 0x5599c62ddd20 submitted, requested length 16, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:38:46.468: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
(process:5048): libfprint-DEBUG: 18:38:46.472: Transfer 0x5599c62ddc40 completed successfully, requested length 64, actual length 64, endpoint 0x81
(process:5048): libfprint-DEBUG: 18:38:46.472: 56 aa 03 91 0e fe 0c 54 02 01 0d ee 0c 40 14 04 
(process:5048): libfprint-DEBUG: 18:38:46.472: 0c 44 16 04 02 70 0c 51 14 02 0f 11 0c 44 0f 10 
(process:5048): libfprint-DEBUG: 18:38:46.472: 16 0a 0c 40 02 3f 14 01 0f 10 0c 44 0d e0 0e f1 
(process:5048): libfprint-DEBUG: 18:38:46.472: 0c 40 00 4c 0e fe 14 01 0c 44 0d ee 00 10 0c 40 
(process:5048): libfprint-DEBUG: 18:38:46.472: Transfer 0x5599c62ddd90 submitted, requested length 64, endpoint 0x81
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.472: recv irq type 56aa
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.472: ignoring interrupt
(process:5048): libfprint-DEBUG: 18:38:46.473: Transfer 0x5599c62ddd20 completed successfully, requested length 16, actual length 16, endpoint 0x0
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.473: reg value 1a
(process:5048): libfprint-SSM-DEBUG: 18:38:46.473: [uru4000] INIT_NUM_STATES entering state 8
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.473: Versions 0010 and 0115
(process:5048): libfprint-SSM-DEBUG: 18:38:46.473: [uru4000] INIT_NUM_STATES completed successfully
(process:5048): libfprint-image_device-DEBUG: 18:38:46.473: Image device activation completed
(process:5048): libfprint-image_device-DEBUG: 18:38:46.473: Image device internal state change from FPI_IMAGE_DEVICE_STATE_ACTIVATING to FPI_IMAGE_DEVICE_STATE_IDLE
(process:5048): libfprint-image_device-DEBUG: 18:38:46.473: Image device internal state change from FPI_IMAGE_DEVICE_STATE_IDLE to FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON
(process:5048): libfprint-uru4000-DEBUG: 18:38:46.473: wait finger on
(process:5048): libfprint-DEBUG: 18:38:46.473: Transfer 0x5599c62dde00 submitted, requested length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:38:46.473: 10 
(process:5048): libfprint-device-DEBUG: 18:38:46.473: Device reported finger status change: FP_FINGER_STATUS_NEEDED
(process:5048): libfprint-DEBUG: 18:38:46.479: Transfer 0x5599c62dde00 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:39:01.263: Transfer 0x5599c62ddd90 completed with error (endpoint stalled or request not supported), requested length 64, actual length -1, endpoint 0x81
(process:5048): libfprint-image_device-DEBUG: 18:39:01.263: Deactivating image device
(process:5048): libfprint-image_device-DEBUG: 18:39:01.263: Image device internal state change from FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON to FPI_IMAGE_DEVICE_STATE_DEACTIVATING
(process:5048): libfprint-uru4000-DEBUG: 18:39:01.263: deactivating
(process:5048): libfprint-DEBUG: 18:39:01.263: Transfer 0x5599c62dde70 submitted, requested length 1, endpoint 0x0
(process:5048): libfprint-DEBUG: 18:39:01.263: 70 
(process:5048): libfprint-DEBUG: 18:39:01.303: Transfer 0x5599c62dde70 completed with error (endpoint stalled or request not supported), requested length 1, actual length -1, endpoint 0x0

Here is my Debug trace for Verify process

Selected device 0 (Digital Persona U.are.U 4000/4000B/4500) claimed by uru4000 driver
(process:5307): libfprint-image_device-DEBUG: 19:48:32.024: Image device open completed
(process:5307): libfprint-device-DEBUG: 19:48:32.024: Device reported open completion
(process:5307): libfprint-device-DEBUG: 19:48:32.024: Completing action FPI_DEVICE_ACTION_OPEN in idle!
Opened device. Choose the finger to verify:
  [0] left thumb
  [1] left index
  [2] left middle
  [3] left ring
  [4] left little
  [5] right thumb
  [6] right index
  [7] right middle
  [8] right ring
  [9] right little
> 6
Loading previously enrolled right index finger data...
Print loaded. Time to verify!
(process:5307): libfprint-image_device-DEBUG: 19:48:38.276: Activating image device
(process:5307): libfprint-image_device-DEBUG: 19:48:38.276: Image device internal state change from FPI_IMAGE_DEVICE_STATE_INACTIVE to FPI_IMAGE_DEVICE_STATE_ACTIVATING
(process:5307): libfprint-DEBUG: 19:48:38.276: Transfer 0x55aeee4d51f0 submitted, requested length 64, endpoint 0x81
(process:5307): libfprint-SSM-DEBUG: 19:48:38.276: [uru4000] INIT_NUM_STATES entering state 0
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.276: read 1 regs at 7
(process:5307): libfprint-DEBUG: 19:48:38.276: Transfer 0x55aeee4d5260 submitted, requested length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:38.276: 00 
(process:5307): libfprint-DEBUG: 19:48:38.297: Transfer 0x55aeee4d51f0 completed successfully, requested length 64, actual length 64, endpoint 0x81
(process:5307): libfprint-DEBUG: 19:48:38.297: 56 aa 03 91 0e fe 0c 54 02 01 0d ee 0c 40 14 04 
(process:5307): libfprint-DEBUG: 19:48:38.297: 0c 44 16 04 02 70 0c 51 14 02 0f 11 0c 44 0f 10 
(process:5307): libfprint-DEBUG: 19:48:38.297: 16 0a 0c 40 02 3f 14 01 0f 10 0c 44 0d e0 0e f1 
(process:5307): libfprint-DEBUG: 19:48:38.297: 0c 40 00 4c 0e fe 14 01 0c 44 0d ee 00 10 0c 40 
(process:5307): libfprint-DEBUG: 19:48:38.297: Transfer 0x55aeee4d52d0 submitted, requested length 64, endpoint 0x81
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.297: recv irq type 56aa
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.297: ignoring interrupt
(process:5307): libfprint-DEBUG: 19:48:38.297: Transfer 0x55aeee4d5260 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.297: reg value 1
(process:5307): libfprint-SSM-DEBUG: 19:48:38.297: [uru4000] INIT_NUM_STATES entering state 1
(process:5307): libfprint-SSM-DEBUG: 19:48:38.297: [uru4000] INIT_NUM_STATES entering state 3
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.297: set 81
(process:5307): libfprint-DEBUG: 19:48:38.297: Transfer 0x55aeee4d5340 submitted, requested length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:38.297: 81 
(process:5307): libfprint-DEBUG: 19:48:38.306: Transfer 0x55aeee4d5340 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5307): libfprint-SSM-DEBUG: 19:48:38.306: [uru4000] INIT_NUM_STATES entering state 4
(process:5307): libfprint-SSM-DEBUG: 19:48:38.306: [uru4000] POWERUP_NUM_STATES entering state 0
(process:5307): libfprint-SSM-DEBUG: 19:48:38.306: [uru4000] POWERUP_NUM_STATES entering state 1
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.306: set 01
(process:5307): libfprint-DEBUG: 19:48:38.306: Transfer 0x55aeee4ffc00 submitted, requested length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:38.306: 01 
(process:5307): libfprint-DEBUG: 19:48:38.312: Transfer 0x55aeee4ffc00 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5307): libfprint-SSM-DEBUG: 19:48:38.312: [uru4000] POWERUP_NUM_STATES entering state 2
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.312: read 1 regs at 7
(process:5307): libfprint-DEBUG: 19:48:38.312: Transfer 0x55aeee4ffc70 submitted, requested length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:38.312: 00 
(process:5307): libfprint-DEBUG: 19:48:38.319: Transfer 0x55aeee4ffc70 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.319: reg value 0
(process:5307): libfprint-SSM-DEBUG: 19:48:38.319: [uru4000] POWERUP_NUM_STATES entering state 3
(process:5307): libfprint-SSM-DEBUG: 19:48:38.319: [uru4000] POWERUP_NUM_STATES completed successfully
(process:5307): libfprint-SSM-DEBUG: 19:48:38.319: [uru4000] INIT_NUM_STATES entering state 5
(process:5307): libfprint-DEBUG: 19:48:38.321: Transfer 0x55aeee4d52d0 completed successfully, requested length 64, actual length 64, endpoint 0x81
(process:5307): libfprint-DEBUG: 19:48:38.321: 56 aa 03 91 0e fe 0c 54 02 01 0d ee 0c 40 14 04 
(process:5307): libfprint-DEBUG: 19:48:38.321: 0c 44 16 04 02 70 0c 51 14 02 0f 11 0c 44 0f 10 
(process:5307): libfprint-DEBUG: 19:48:38.321: 16 0a 0c 40 02 3f 14 01 0f 10 0c 44 0d e0 0e f1 
(process:5307): libfprint-DEBUG: 19:48:38.321: 0c 40 00 4c 0e fe 14 01 0c 44 0d ee 00 10 0c 40 
(process:5307): libfprint-DEBUG: 19:48:38.321: Transfer 0x55aeee4ffce0 submitted, requested length 64, endpoint 0x81
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.321: recv irq type 56aa
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.321: late scanpwr interrupt
(process:5307): libfprint-SSM-DEBUG: 19:48:38.321: [uru4000] INIT_NUM_STATES entering state 6
(process:5307): libfprint-SSM-DEBUG: 19:48:38.321: [uru4000] INIT_NUM_STATES entering state 7
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.321: read 16 regs at f0
(process:5307): libfprint-DEBUG: 19:48:38.321: Transfer 0x55aeee4ffd50 submitted, requested length 16, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:38.321: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 
(process:5307): libfprint-DEBUG: 19:48:38.327: Transfer 0x55aeee4ffd50 completed successfully, requested length 16, actual length 16, endpoint 0x0
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.327: reg value 1a
(process:5307): libfprint-SSM-DEBUG: 19:48:38.327: [uru4000] INIT_NUM_STATES entering state 8
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.327: Versions 0010 and 0115
(process:5307): libfprint-SSM-DEBUG: 19:48:38.327: [uru4000] INIT_NUM_STATES completed successfully
(process:5307): libfprint-image_device-DEBUG: 19:48:38.327: Image device activation completed
(process:5307): libfprint-image_device-DEBUG: 19:48:38.327: Image device internal state change from FPI_IMAGE_DEVICE_STATE_ACTIVATING to FPI_IMAGE_DEVICE_STATE_IDLE
(process:5307): libfprint-image_device-DEBUG: 19:48:38.327: Image device internal state change from FPI_IMAGE_DEVICE_STATE_IDLE to FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON
(process:5307): libfprint-uru4000-DEBUG: 19:48:38.327: wait finger on
(process:5307): libfprint-DEBUG: 19:48:38.327: Transfer 0x55aeee4ffdc0 submitted, requested length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:38.327: 10 
(process:5307): libfprint-device-DEBUG: 19:48:38.327: Device reported finger status change: FP_FINGER_STATUS_NEEDED
(process:5307): libfprint-DEBUG: 19:48:38.335: Transfer 0x55aeee4ffdc0 completed successfully, requested length 1, actual length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:43.769: Transfer 0x55aeee4ffce0 completed with error (endpoint stalled or request not supported), requested length 64, actual length -1, endpoint 0x81
(process:5307): libfprint-image_device-DEBUG: 19:48:43.769: Deactivating image device
(process:5307): libfprint-image_device-DEBUG: 19:48:43.769: Image device internal state change from FPI_IMAGE_DEVICE_STATE_AWAIT_FINGER_ON to FPI_IMAGE_DEVICE_STATE_DEACTIVATING
(process:5307): libfprint-uru4000-DEBUG: 19:48:43.769: deactivating
(process:5307): libfprint-DEBUG: 19:48:43.769: Transfer 0x55aeee4ffe30 submitted, requested length 1, endpoint 0x0
(process:5307): libfprint-DEBUG: 19:48:43.769: 70 
(process:5307): libfprint-DEBUG: 19:48:43.807: Transfer 0x55aeee4ffe30 completed with error (endpoint stalled or request not supported), requested length 1, actual length -1, endpoint 0x0
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None