Comment 29 for bug 417778

Revision history for this message
cmeerw (cmeerw) wrote :

I am seeing 3 threads for the xfce4-volumed process, 2 of the threads appear to be related to gstreamer (maybe one for each sound device/mixer) and one of these threads is spinning when I unplug my USB headset, stacktrace for that thread is:

#0 0x00007ffff35063c3 in poll () from /lib/libc.so.6
#1 0x00007fffef086e9b in ?? () from /usr/lib/gstreamer-0.10/libgstalsa.so
#2 0x00007ffff6be5417 in ?? () from /usr/lib/libgstreamer-0.10.so.0
#3 0x00007ffff7b7e142 in ?? () from /lib/libglib-2.0.so.0
#4 0x00007ffff7b7cb44 in ?? () from /lib/libglib-2.0.so.0
#5 0x00007ffff7292a04 in start_thread () from /lib/libpthread.so.0
#6 0x00007ffff351280d in clone () from /lib/libc.so.6
#7 0x0000000000000000 in ?? ()

So looks like I need to have a closer look at gstreamer then...

BTW, strace for the spinning thread shows

poll([{fd=12, events=POLLIN|POLLERR|POLLNVAL}, {fd=10, events=POLLIN|POLLPRI|POLLERR|POLLHUP}], 2, -1) = 1 ([{fd=12, revents=POLLERR|POLLNVAL}])

So my guess would be that gstreamer doesn't handle the POLLERR|POLLNVAL result properly.