Bug 2056326 - 1.0.25-4.fc37 breaks yubikey and fingerprint reader
Summary: 1.0.25-4.fc37 breaks yubikey and fingerprint reader
Keywords:
Status: CLOSED NEXTRELEASE
Alias: None
Product: Fedora
Classification: Fedora
Component: libusb1
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: Benjamin Berg
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 2056322 (view as bug list)
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2022-02-21 02:00 UTC by Kevin Fenzi
Modified: 2022-02-22 21:49 UTC (History)
8 users (show)

Fixed In Version:
Clone Of:
Environment:
Last Closed: 2022-02-22 13:17:50 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Kevin Fenzi 2022-02-21 02:00:02 UTC
With libusb1-1.0.25-4.fc37 installed: 

Feb 16 21:21:55 logain.scrye.com kernel: usb 3-1: new full-speed USB device number 2 using xhci_hcd
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-1: New USB device found, idVendor=1050, idProduct=0407, bcdDevice= 4.37
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-1: Product: Yubikey 4 OTP+U2F+CCID
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-1: Manufacturer: Yubico
Feb 16 21:21:55 logain.scrye.com kernel: input: Yubico Yubikey 4 OTP+U2F+CCID as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:1050:0407.0001/input/input3
Feb 16 21:21:55 logain.scrye.com kernel: hid-generic 0003:1050:0407.0001: input,hidraw0: USB HID v1.10 Keyboard [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:00:14.0-1/input0
Feb 16 21:21:55 logain.scrye.com kernel: hid-generic 0003:1050:0407.0002: hiddev96,hidraw1: USB HID v1.10 Device [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:00:14.0-1/input1
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-3: new full-speed USB device number 3 using xhci_hcd
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-3: device descriptor read/64, error -71
Feb 16 21:21:55 logain.scrye.com kernel: usb 3-3: device descriptor read/64, error -71
Feb 16 21:21:56 logain.scrye.com kernel: usb 3-3: new full-speed USB device number 4 using xhci_hcd
Feb 16 21:21:56 logain.scrye.com kernel: usb 3-3: device descriptor read/64, error -71
Feb 16 21:21:56 logain.scrye.com kernel: usb 3-3: device descriptor read/64, error -71
Feb 16 21:21:56 logain.scrye.com kernel: usb usb3-port3: attempt power cycle

Feb 16 21:22:16 logain.scrye.com fprintd[1880]: Ignoring device due to initialization error: USB error on device 27c6:609c : No such device (it may have been disconnected) [-4]
Feb 16 21:24:33 logain.scrye.com fprintd[6918]: Ignoring device due to initialization error: USB error on device 27c6:609c : No such device (it may have been disconnected) [-4]
Feb 16 21:24:33 logain.scrye.com upowerd[1151]: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb3/3-9
Feb 16 21:24:33 logain.scrye.com upowerd[1151]: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb3/3-9
Feb 16 21:24:38 logain.scrye.com pcscd[6934]: 00000000 ccid_usb.c:886:WriteUSB() write failed (3/2): LIBUSB_ERROR_NO_DEVICE
Feb 16 21:25:37 logain.scrye.com fprintd[7111]: Failed to open /sys/bus/usb/devices/3-9/power/persist
Feb 16 21:25:37 logain.scrye.com kernel: usb 3-9: reset full-speed USB device number 7 using xhci_hcd
Feb 16 21:25:37 logain.scrye.com fprintd[7111]: Ignoring device due to initialization error: USB error on device 27c6:609c : No such device (it may have been disconnected) [-4]
Feb 16 21:25:37 logain.scrye.com upowerd[1151]: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb3/3-9
Feb 16 21:25:37 logain.scrye.com upowerd[1151]: treating change event as add on /sys/devices/pci0000:00/0000:00:14.0/usb3/3-9
Feb 16 21:26:00 logain.scrye.com pcscd[7157]: 00000000 ccid_usb.c:886:WriteUSB() write failed (3/2): LIBUSB_ERROR_NO_DEVICE

Downgrading to previous ( libusb1-1.0.25-3.fc37 ) and everything works again. 

Feb 14 20:25:59 logain.scrye.com kernel: usbcore: registered new interface driver usbserial_generic
Feb 14 20:25:59 logain.scrye.com kernel: usbserial: USB Serial support registered for generic
Feb 14 20:25:59 logain.scrye.com kernel: usbcore: registered new interface driver usbhid
Feb 14 20:25:59 logain.scrye.com kernel: usbhid: USB HID core driver
Feb 14 20:25:59 logain.scrye.com kernel: usb 3-1: new full-speed USB device number 2 using xhci_hcd
Feb 14 20:25:59 logain.scrye.com kernel: usb 3-1: New USB device found, idVendor=1050, idProduct=0407, bcdDevice= 4.37
Feb 14 20:25:59 logain.scrye.com kernel: usb 3-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 14 20:25:59 logain.scrye.com kernel: usb 3-1: Product: Yubikey 4 OTP+U2F+CCID
Feb 14 20:25:59 logain.scrye.com kernel: usb 3-1: Manufacturer: Yubico
Feb 14 20:25:59 logain.scrye.com kernel: input: Yubico Yubikey 4 OTP+U2F+CCID as /devices/pci0000:00/0000:00:14.0/usb3/3-1/3-1:1.0/0003:1050:0407.0001/input/input3
Feb 14 20:25:59 logain.scrye.com kernel: hid-generic 0003:1050:0407.0001: input,hidraw0: USB HID v1.10 Keyboard [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:00:14.0-1/input0
Feb 14 20:25:59 logain.scrye.com kernel: hid-generic 0003:1050:0407.0002: hiddev96,hidraw1: USB HID v1.10 Device [Yubico Yubikey 4 OTP+U2F+CCID] on usb-0000:00:14.0-1/input1

Comment 1 Hans de Goede 2022-02-21 12:22:04 UTC
*** Bug 2056322 has been marked as a duplicate of this bug. ***

Comment 2 Hans de Goede 2022-02-21 12:23:37 UTC
I'm seeing this too with a nitrokey start, systemctl status pcscd says:

Feb 21 12:02:21 x1.localdomain pcscd[16446]: 00000000 ccid_usb.c:863:WriteUSB() write failed (1/14): -4 LIBUSB_ERROR_NO_DEVICE

Downgrading to 1.0.25-3 fixes things.

Comment 3 Benjamin Berg 2022-02-22 09:17:30 UTC
Yes, libusb1 is currently horribly broken and I am really sorry for not pushing out fixes earlier. I spent time on finding a long-term solution instead of reverting the problematic parts of the upstream changes (this includes working on new CI tests for libusb upstream).

There are two upstream changes causing major issues:
 1. Logging now dereferences to the context more often, causing multiple use-after-free situations (two different cases)
 2. libusb_init(&ptr) doesn't set a global context anymore, causing crashes on API misuse (bug #2055504)

Then, one of the patches I did for 1. caused the synchronous API to completely break, which is likely the reason that most people are coming this way.

I'll prepare an update now with three new patches. 1 & 2 are the fixed versions for issue #1. Then, a third new patch to revert the behaviour change of libusb_init(&ptr), to implicitly use the first created context as the default one when available.

I'll remove the third patch again as soon as gutenprint bug #2055504 is addressed.

Comment 4 Benjamin Berg 2022-02-22 13:17:50 UTC
OK, this should be fixed by:
  https://bodhi.fedoraproject.org/updates/FEDORA-2022-b445cd59eb
and
  https://bodhi.fedoraproject.org/updates/FEDORA-2022-b8a20d6a06

I'll back out the ugly workaround for the gutenprint bug as soon as that is resolved. Other than that, we have much more comprehensive testing using umockdev (as submitted upstream) which are run both during RPM build and as a gating test.

I hope that future updates will not result in as much breakage and I hope there will be no further fallout from this update.

Comment 5 Hans de Goede 2022-02-22 13:39:09 UTC
Thank you I can confirm that things work again for me with libusb1-1.0.25-8.fc36 .

Comment 6 Kevin Fenzi 2022-02-22 21:49:31 UTC
Same here, thanks for the quick fixes!


Note You need to log in before you can comment on or make changes to this bug.