Comment 35 for bug 417778

Revision history for this message
Kyle (kyle-gibson) wrote :

Hi, I have found a use-case for this bug that I can repeat every single time. I have a USB webcam (Logitech C600). If I have the webcam plugged in when xfce4-mixer (and xfc4-volumed) starts, everything is fine. However, if I then unplug the webcam, both processes begin racing out of control. I removed xfce4-volumed to see if this behavior continues with just xfce4-mixer. I ran the webcam disconnect test again, revealing that even without volumed installed, xfce4-mixer still races to 100% CPU the moment after I unplug the USB cam.

I think what might be happening (in my case) is that because the device is removed, perhaps the mixer doesn't expect a device to just disappear, and still attempts to query it.

Release: Xubuntu 9.10 (with updates)

Before removing the webcam:

kyle@caeleo:~$ ls -l /proc/20580/fd
total 0
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 0 -> /dev/null
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 1 -> /home/kyle/.xsession-errors
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 10 -> pipe:[287424]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 11 -> pipe:[287424]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 12 -> /dev/snd/controlC0
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 13 -> pipe:[9197]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 14 -> pipe:[9197]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 15 -> pipe:[287425]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 16 -> pipe:[287425]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 17 -> /dev/snd/controlC1
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 18 -> /dev/mixer
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 19 -> socket:[287426]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 2 -> /home/kyle/.xsession-errors
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 21 -> pipe:[9206]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 3 -> socket:[287416]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 4 -> pipe:[7647]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 5 -> pipe:[7647]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 6 -> pipe:[9270]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 7 -> pipe:[9270]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 8 -> pipe:[287422]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 9 -> pipe:[287422]

After removing:

kyle@caeleo:~$ ls -l /proc/20580/fd
total 0
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 0 -> /dev/null
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 1 -> /home/kyle/.xsession-errors
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 10 -> pipe:[287424]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 11 -> pipe:[287424]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 12 -> /dev/snd/controlC0
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 13 -> pipe:[9197]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 14 -> pipe:[9197]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 15 -> pipe:[287425]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 16 -> pipe:[287425]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 17 -> /dev/snd/controlC1 (deleted)
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 18 -> /dev/mixer
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 19 -> socket:[287426]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 2 -> /home/kyle/.xsession-errors
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 21 -> pipe:[9206]
lrwx------ 1 kyle kyle 64 2010-02-24 11:33 3 -> socket:[287416]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 4 -> pipe:[7647]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 5 -> pipe:[7647]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 6 -> pipe:[9270]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 7 -> pipe:[9270]
lr-x------ 1 kyle kyle 64 2010-02-24 11:33 8 -> pipe:[287422]
l-wx------ 1 kyle kyle 64 2010-02-24 11:33 9 -> pipe:[287422]

Notice that /dev/snd/controlC1 is now deleted, where it was not.

See attached strace log for what happens when the webcam is unplugged.