On Sun, 6 Mar 2016 23:10:07 +0100 Philippe Teuwen <p...@teuwen.org> wrote:
Mmm activating libudev debug didn't bring much I think.
I attached one log with LIBUSB_DEBUG=99 and one with recompiled pcscd
with udev debug support.
For both I just ran pcscd with the yubikey plugged in then plugged a USB
hub that triggered the CPU to 100%
libccid 1.4.22-1
libusb-1.0-0 2:1.0.20-1
udev 228-6
I'll see if I can get more from gdb...
Cheers
Phil
Thanks Philippe for the libudev trace.
hotplug_libudev.c contains an infinite for() loop.
But for each loop execution a line is logged:
00000022 hotplug_libudev.c:619:HPEstablishUSBNotifications()
Since you do not get a infinite of these logs I guess the infinite loop occurs
inside a function called in the for() loop.
I have an idea. Can you test with the proposed patch:
--- /var/folders/sg/t7kts8_n6j13n11r6_tgr36r0000gn/T//3ql5ya_hotplug_libudev.c
2016-03-07 00:38:32.000000000 +0100
+++ src/hotplug_libudev.c 2016-03-07 00:38:08.000000000 +0100
@@ -621,7 +621,7 @@ static void HPEstablishUSBNotifications(
pthread_setcancelstate(PTHREAD_CANCEL_ENABLE, NULL);
/* wait for a udev event */
- r = TEMP_FAILURE_RETRY(poll(&pfd, 1, -1));
+ r = poll(&pfd, 1, -1);
if (r < 0)
{
Log2(PCSC_LOG_ERROR, "select(): %s", strerror(errno));
--
Dr. Ludovic Rousseau