#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 _______________________________________________ pulseaudio-tickets mailing list pulseaudio-tickets@mail.0pointer.de https://tango.0pointer.de/mailman/listinfo/pulseaudio-tickets