I am experiencing the same bug.

My computer is a Dell Latitude E6220. I can reliably reproduce the bug
with the following steps:

 1. Switch off wireless (using the hardware button)
 2. Suspend
 3. Resume
 4. Switch on wireless

Le 02/08/2013 10:56, Ludovic Rousseau a écrit :
> Can you:
> 1. run pcscd inside gdb
> 2. stop pcscd using Ctrl-C while in the 100% CPU loop
> 3. use the "bt" gdb command to generate a backtrace
> 4. send the result

There:
> (gdb) bt
> #0  0x00007ffff72d6793 in select () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x0000000000410b70 in ?? ()
> #2  0x00000000004035b0 in ?? ()
> #3  0x00007ffff7216995 in __libc_start_main () from 
> /lib/x86_64-linux-gnu/libc.so.6
> #4  0x00000000004038de in _start ()

I've noticed that only one thread (and not the main one) was consuming
100% CPU:
> (gdb) thread apply all bt
> 
> Thread 5 (Thread 0x7ffff55c1700 (LWP 8126)):
> #0  0x00007ffff72d6793 in select () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x000000000040e2ab in ?? ()
> #2  0x00007ffff75a8e0e in start_thread () from 
> /lib/x86_64-linux-gnu/libpthread.so.0
> #3  0x00007ffff72dd93d in clone () from /lib/x86_64-linux-gnu/libc.so.6
> 
> Thread 4 (Thread 0x7ffff5dc2700 (LWP 8125)):
> #0  0x00007ffff72d219d in poll () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x00007ffff6dcd73e in poll (__timeout=60000, __nfds=4, 
> __fds=0x7ffff00009c0) at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
> #2  handle_events (ctx=ctx@entry=0x6586c0, tv=tv@entry=0x7ffff5dc1d80) at 
> ../../libusb/io.c:1963
> #3  0x00007ffff6dce3a3 in libusb_handle_events_timeout_completed 
> (ctx=0x6586c0, tv=tv@entry=0x7ffff5dc1dc0, completed=completed@entry=0x0) at 
> ../../libusb/io.c:2126
> #4  0x00007ffff6dce46f in libusb_handle_events (ctx=<optimized out>) at 
> ../../libusb/io.c:2202
> #5  0x00007ffff6fe8118 in ?? () from 
> /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
> #6  0x00007ffff6fe2fc2 in ?? () from 
> /usr/lib/pcsc/drivers/ifd-ccid.bundle/Contents/Linux/libccid.so
> #7  0x0000000000405eed in ?? ()
> #8  0x00007ffff75a8e0e in start_thread () from 
> /lib/x86_64-linux-gnu/libpthread.so.0
> #9  0x00007ffff72dd93d in clone () from /lib/x86_64-linux-gnu/libc.so.6
> 
> Thread 3 (Thread 0x7ffff65c3700 (LWP 8124)):
> #0  0x00007ffff72d219d in poll () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x00007ffff6dd36f8 in poll (__timeout=-1, __nfds=2, __fds=0x7ffff65c2ec0) 
> at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
> #2  linux_udev_event_thread_main (arg=<optimized out>) at 
> ../../libusb/os/linux_udev.c:175
> #3  0x00007ffff75a8e0e in start_thread () from 
> /lib/x86_64-linux-gnu/libpthread.so.0
> #4  0x00007ffff72dd93d in clone () from /lib/x86_64-linux-gnu/libc.so.6
> 
> Thread 2 (Thread 0x7ffff6dc4700 (LWP 8123)):
> #0  0x00007ffff72d219d in poll () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x00007ffff6dd36f8 in poll (__timeout=-1, __nfds=2, __fds=0x7ffff6dc3ec0) 
> at /usr/include/x86_64-linux-gnu/bits/poll2.h:46
> #2  linux_udev_event_thread_main (arg=<optimized out>) at 
> ../../libusb/os/linux_udev.c:175
> #3  0x00007ffff75a8e0e in start_thread () from 
> /lib/x86_64-linux-gnu/libpthread.so.0
> #4  0x00007ffff72dd93d in clone () from /lib/x86_64-linux-gnu/libc.so.6
> 
> Thread 1 (Thread 0x7ffff7fdb700 (LWP 8119)):
> #0  0x00007ffff72d6793 in select () from /lib/x86_64-linux-gnu/libc.so.6
> #1  0x0000000000410b70 in ?? ()
> #2  0x00000000004035b0 in ?? ()
> #3  0x00007ffff7216995 in __libc_start_main () from 
> /lib/x86_64-linux-gnu/libc.so.6
> #4  0x00000000004038de in _start ()

The loop seems to happen in thread 2. With strace, I see an active
poll-recvmsg loop.

> 5. kill any running pcscd
> 6. run in a terminal "sudo pcscd -dfa"
> 7. send me the result

After resume, I get:
> 31404819 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x413C, PID: 0x8187, path: /dev/bus/usb/001/007
> 00002486 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x413C, PID: 0x8187, path: /dev/bus/usb/001/007
> 00003401 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x413C, PID: 0x8187, path: /dev/bus/usb/001/007
> 00000944 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x413C, PID: 0x8187, path: /dev/bus/usb/001/007

Then after a while, I get:
> 29258929 hotplug_libudev.c:587:HPEstablishUSBNotifications() Device removed
> 00000412 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
> 00000114 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
> 00000116 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x8087, PID: 0x0024, path: /dev/bus/usb/001/002
> 00000143 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/002/001
> 00000103 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/002/001
> 00000116 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x8087, PID: 0x0024, path: /dev/bus/usb/002/002
> 00000119 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x0A5C, PID: 0x5800, path: /dev/bus/usb/002/003
> 00000131 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x0A5C, PID: 0x5800, path: /dev/bus/usb/002/003
> 00000130 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x8087, PID: 0x0024, path: /dev/bus/usb/002/002
> 00000034 hotplug_libudev.c:587:HPEstablishUSBNotifications() Device removed
> 00000252 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
> 00000064 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/001/001
> 00000064 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x8087, PID: 0x0024, path: /dev/bus/usb/001/002
> 00000080 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/002/001
> 00000061 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x1D6B, PID: 0x0002, path: /dev/bus/usb/002/001
> 00000063 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x8087, PID: 0x0024, path: /dev/bus/usb/002/002
> 00000065 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x0A5C, PID: 0x5800, path: /dev/bus/usb/002/003
> 00000074 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x0A5C, PID: 0x5800, path: /dev/bus/usb/002/003
> 00000072 hotplug_libudev.c:260:get_driver() Looking for a driver for VID: 
> 0x8087, PID: 0x0024, path: /dev/bus/usb/002/002

and so on...


Cheers,

-- 
Stéphane


-- 
To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org

Reply via email to