[pulseaudio-tickets] [PulseAudio] #755: Pulseaudio randomly starts taking 100% cpu in mainloop polling
PulseAudio
trac-noreply at tango.0pointer.de
Thu Dec 24 15:41:04 PST 2009
#755: Pulseaudio randomly starts taking 100% cpu in mainloop polling
-----------------------+----------------------------------------------------
Reporter: lukehutch | Owner: lennart
Type: defect | Status: new
Milestone: | Component: daemon
Keywords: |
-----------------------+----------------------------------------------------
pulseaudio-0.9.21-3.fc13.x86_64 in F13 randomly starts taking 100% CPU on
semi-frequent occasions, while not even playing sounds. Here is the gdb
trace of where it is looping:
--------------------------------------
^C
Program received signal SIGINT, Interrupt.
0x0000003a71cd90c7 in ppoll () from /lib64/libc.so.6
(gdb) thread apply all bt
Thread 3 (Thread 0x7f59f3cfa710 (LWP 1752)):
#0 0x0000003a71cd90c7 in ppoll () from /lib64/libc.so.6
#1 0x0000003a730325fe in pa_rtpoll_run (p=0x13f4be0,
wait_op=<value optimized out>) at pulsecore/rtpoll.c:304
#2 0x00007f59f2299f5e in thread_func (userdata=0x13f4290)
at modules/alsa/alsa-sink.c:1430
#3 0x0000003a83c38660 in internal_thread_func (userdata=0x140ef00)
at pulsecore/thread-posix.c:72
#4 0x0000003a72806aea in start_thread () from /lib64/libpthread.so.0
#5 0x0000003a71ce234d in clone () from /lib64/libc.so.6
Thread 2 (Thread 0x7f59f21ce710 (LWP 1753)):
#0 0x0000003a71cd90c7 in ppoll () from /lib64/libc.so.6
#1 0x0000003a730325fe in pa_rtpoll_run (p=0x1410150,
wait_op=<value optimized out>) at pulsecore/rtpoll.c:304
#2 0x00007f59f229f200 in thread_func (userdata=0x1413f90)
at modules/alsa/alsa-source.c:1274
#3 0x0000003a83c38660 in internal_thread_func (userdata=0x1410230)
at pulsecore/thread-posix.c:72
#4 0x0000003a72806aea in start_thread () from /lib64/libpthread.so.0
#5 0x0000003a71ce234d in clone () from /lib64/libc.so.6
Thread 1 (Thread 0x7f59f9b2c780 (LWP 1751)):
#0 0x0000003a71cd90c7 in ppoll () from /lib64/libc.so.6
#1 0x0000003a8301cc07 in pa_mainloop_poll (m=0x13daeb0)
at pulse/mainloop.c:887
#2 0x0000003a8301df29 in pa_mainloop_iterate (m=0x13daeb0,
block=<value optimized out>, retval=0x7fffa22a89ec) at
pulse/mainloop.c:961
#3 0x0000003a8301dfe0 in pa_mainloop_run (m=0x13daeb0,
retval=0x7fffa22a89ec)
at pulse/mainloop.c:979
#4 0x000000000040a4b8 in main (argc=<value optimized out>,
argv=<value optimized out>) at daemon/main.c:971
------------------------------------------
Here is what it's doing MOST of the time, over and over again:
------------------------------------------
ppoll([{fd=4, events=POLLIN}, {fd=29, events=0}, {fd=22, events=POLLIN},
{fd=21, events=POLLIN}, {fd=10, events=POLLIN}, {fd=7, events=POLLIN},
{fd=23, events=POLLIN}, {fd=30, events=POLLIN}, {fd=33, events=POLLIN},
{fd=32, events=POLLIN}, {fd=31, events=POLLIN|POLLERR|POLLHUP}, {fd=31,
events=0}, {fd=24, events=POLLIN}, {fd=27, events=POLLIN}, {fd=17,
events=POLLIN}, {fd=20, events=POLLIN}, {fd=16,
events=POLLIN|POLLERR|POLLHUP}, {fd=16, events=0}, {fd=15, events=POLLIN},
{fd=14, events=POLLIN}, {fd=8, events=POLLIN}], 21, NULL, NULL, 8) = 1
([{fd=29, revents=POLLHUP}])
------------------------------------------------------
Here is what it does OCCASIONALLY, among many, many syscalls of the above
form:
------------------------------------------------------
ppoll([{fd=4, events=POLLIN}, {fd=29, events=0}, {fd=22, events=POLLIN},
{fd=21, events=POLLIN}, {fd=10, events=POLLIN}, {fd=7, events=POLLIN},
{fd=23, events=POLLIN}, {fd=30, events=POLLIN}, {fd=33, events=POLLIN},
{fd=32, events=POLLIN}, {fd=31, events=POLLIN|POLLERR|POLLHUP}, {fd=31,
events=0}, {fd=24, events=POLLIN}, {fd=27, events=POLLIN}, {fd=17,
events=POLLIN}, {fd=20, events=POLLIN}, {fd=16,
events=POLLIN|POLLERR|POLLHUP}, {fd=16, events=0}, {fd=15, events=POLLIN},
{fd=14, events=POLLIN}, {fd=8, events=POLLIN}], 21, NULL, NULL, 8) = 2
([{fd=29, revents=POLLHUP}, {fd=22, revents=POLLIN}])
recvmsg(22, {msg_name(0)=NULL,
msg_iov(1)=[{"\0\0\0\30\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0", 20}],
msg_controllen=32, {cmsg_len=28, cmsg_level=SOL_SOCKET,
cmsg_type=SCM_CREDENTIALS{pid=2761, uid=500, gid=500}}, msg_flags=0}, 0) =
20
ppoll([{fd=4, events=POLLIN}, {fd=29, events=0}, {fd=22, events=POLLIN},
{fd=21, events=POLLIN}, {fd=10, events=POLLIN}, {fd=7, events=POLLIN},
{fd=23, events=POLLIN}, {fd=30, events=POLLIN}, {fd=33, events=POLLIN},
{fd=32, events=POLLIN}, {fd=31, events=POLLIN|POLLERR|POLLHUP}, {fd=31,
events=0}, {fd=24, events=POLLIN}, {fd=27, events=POLLIN}, {fd=17,
events=POLLIN}, {fd=20, events=POLLIN}, {fd=16,
events=POLLIN|POLLERR|POLLHUP}, {fd=16, events=0}, {fd=15, events=POLLIN},
{fd=14, events=POLLIN}, {fd=8, events=POLLIN}], 21, NULL, NULL, 8) = 2
([{fd=29, revents=POLLHUP}, {fd=22, revents=POLLIN}])
recvmsg(22, {msg_name(0)=NULL,
msg_iov(1)=[{"L\0\0\0\16L\0\1\22\212L\0\0\0\0TK3\371\35\0\5\376\272",
24}], msg_controllen=32, {cmsg_len=28, cmsg_level=SOL_SOCKET,
cmsg_type=SCM_CREDENTIALS{pid=2761, uid=500, gid=500}}, msg_flags=0}, 0) =
24
write(18, "\1\0\0\0\0\0\0\0", 8) = 8
sendto(22, "\0\0\0S\377\377\377\377\0\0\0\0\0\0\0\0\0\0\0\0", 20,
MSG_NOSIGNAL, NULL, 0) = 20
ppoll([{fd=4, events=POLLIN}, {fd=29, events=0}, {fd=22,
events=POLLIN|POLLOUT}, {fd=21, events=POLLIN}, {fd=10, events=POLLIN},
{fd=7, events=POLLIN}, {fd=23, events=POLLIN}, {fd=30, events=POLLIN},
{fd=33, events=POLLIN}, {fd=32, events=POLLIN}, {fd=31,
events=POLLIN|POLLERR|POLLHUP}, {fd=31, events=0}, {fd=24, events=POLLIN},
{fd=27, events=POLLIN}, {fd=17, events=POLLIN}, {fd=20, events=POLLIN},
{fd=16, events=POLLIN|POLLERR|POLLHUP}, {fd=16, events=0}, {fd=15,
events=POLLIN}, {fd=14, events=POLLIN}, {fd=8, events=POLLIN}], 21, NULL,
NULL, 8) = 2 ([{fd=29, revents=POLLHUP}, {fd=22, revents=POLLOUT}])
sendto(22,
"L\0\0\0\2L\0\1\22\212U\0\0\0\0\0\0\0\0U\0\0\0\0\0\0\0\0000TK3"..., 83,
MSG_NOSIGNAL, NULL, 0) = 83
ppoll([{fd=4, events=POLLIN}, {fd=29, events=0}, {fd=22,
events=POLLIN|POLLOUT}, {fd=21, events=POLLIN}, {fd=10, events=POLLIN},
{fd=7, events=POLLIN}, {fd=23, events=POLLIN}, {fd=30, events=POLLIN},
{fd=33, events=POLLIN}, {fd=32, events=POLLIN}, {fd=31,
events=POLLIN|POLLERR|POLLHUP}, {fd=31, events=0}, {fd=24, events=POLLIN},
{fd=27, events=POLLIN}, {fd=17, events=POLLIN}, {fd=20, events=POLLIN},
{fd=16, events=POLLIN|POLLERR|POLLHUP}, {fd=16, events=0}, {fd=15,
events=POLLIN}, {fd=14, events=POLLIN}, {fd=8, events=POLLIN}], 21, NULL,
NULL, 8) = 2 ([{fd=29, revents=POLLHUP}, {fd=22, revents=POLLOUT}])
--
Ticket URL: <http://pulseaudio.org/ticket/755>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server
More information about the pulseaudio-bugs
mailing list