[pulseaudio-tickets] [PulseAudio] #225: Deadlock/crash in flashsupport closing stream

PulseAudio trac-noreply at tango.0pointer.de
Wed Jan 23 14:42:09 PST 2008


#225: Deadlock/crash in flashsupport closing stream
-----------------------------+----------------------------------------------
 Reporter:  ed at catmur.co.uk  |       Owner:  lennart
     Type:  defect           |      Status:  new    
 Priority:  normal           |   Milestone:         
Component:  daemon           |    Severity:  normal 
 Keywords:                   |  
-----------------------------+----------------------------------------------
 Occasionally, when closing a window or tab containing a Flash animation
 (output to pa via libflashsupport from git.0pointer.de), the browser
 (Epiphany) will crash, with a fairly useless stacktrace.  Very
 occasionally it will deadlock, with the following trace:

 {{{
 Thread 8 (Thread 0xb4b00b90 (LWP 16863)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb747a7b7 in *__GI___poll (fds=0xb4b000b8, nfds=1, timeout=-1)
     at ../sysdeps/unix/sysv/linux/poll.c:87
         resultvar = <value optimized out>
         oldtype = 0
         result = <value optimized out>
 #2  0xb7ef9c8b in PR_Poll (pds=0x84517d0, npds=1, timeout=4294967295)
     at mozilla/nsprpub/pr/src/pthreads/ptio.c:3877
 No locals.
 #3  0xb599b0ed in nsSocketTransportService::Poll (this=0x84512e8,
     interval=0xb4b00338) at nsSocketTransportService2.cpp:361
         pollList = (PRPollDesc *) 0x84517d0
         pollCount = 1
         pollTimeout = 4294967295
         ts = 2750063544
         rv = <value optimized out>
         passedInterval = <value optimized out>
 #4  0xb599b8ba in nsSocketTransportService::Run (this=0x84512e8)
     at nsSocketTransportService2.cpp:578
         pollInterval = 0
         n = 1
         i = -1
         active = 1
 #5  0xb738bd37 in nsThread::Main (arg=0x8451a90) at nsThread.cpp:118
 No locals.
 #6  0xb7efea97 in _pt_root (arg=0x8451b10)
     at mozilla/nsprpub/pr/src/pthreads/ptthread.c:220
         detached = 0
 #7  0xb763017b in start_thread (arg=0xb4b00b90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xb4b00b90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1263532920, 742323512, -1975843521}, mask_was_saved = 0}}, priv =
 {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #8  0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 7 (Thread 0xb2cabb90 (LWP 18020)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb7634805 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 No symbol table info available.
 #2  0xb7ef7242 in PR_WaitCondVar (cvar=0x8305f00, timeout=4294967295)
     at mozilla/nsprpub/pr/src/pthreads/ptsynch.c:405
         rv = <value optimized out>
         thred = (PRThread *) 0x9001750
 #3  0xb738dede in TimerThread::Run (this=0x83173d0) at TimerThread.cpp:318
         waitFor = <value optimized out>
 #4  0xb738bd37 in nsThread::Main (arg=0x8fffc98) at nsThread.cpp:118
 No locals.
 #5  0xb7efea97 in _pt_root (arg=0x9001750)
     at mozilla/nsprpub/pr/src/pthreads/ptthread.c:220
         detached = 0
 #6  0xb763017b in start_thread (arg=0xb2cabb90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xb2cabb90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1295338360, -648088268, -1975843521}, mask_was_saved = 0}}, priv
 = {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #7  0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 6 (Thread 0xb1b9ab90 (LWP 18689)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb7634805 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 No symbol table info available.
 #2  0xb7ef7242 in PR_WaitCondVar (cvar=0x92ef600, timeout=4294967295)
     at mozilla/nsprpub/pr/src/pthreads/ptsynch.c:405
         rv = <value optimized out>
         thred = (PRThread *) 0x92ef640
 #3  0xb4d045df in nsSSLThread::Run (this=0x92ef578) at nsSSLThread.cpp:904
         pending_work = <value optimized out>
         busy_socket_ssl_state = 2981733208
         socketToDestroy = (class nsNSSSocketInfo *) 0x0
 #4  0xb4d03cc0 in nsPSMBackgroundThread::nsThreadRunner (arg=0x92ef578)
     at nsPSMBackgroundThread.cpp:44
 No locals.
 #5  0xb7efea97 in _pt_root (arg=0x92ef640)
     at mozilla/nsprpub/pr/src/pthreads/ptthread.c:220
         detached = 0
 #6  0xb763017b in start_thread (arg=0xb1b9ab90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xb1b9ab90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1313233784, 1065284914, -1975843521}, mask_was_saved = 0}}, priv
 = {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #7  0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 5 (Thread 0xaedafb90 (LWP 18690)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb7634805 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 No symbol table info available.
 #2  0xb7ef7242 in PR_WaitCondVar (cvar=0x92ef7a0, timeout=4294967295)
     at mozilla/nsprpub/pr/src/pthreads/ptsynch.c:405
         rv = <value optimized out>
         thred = (PRThread *) 0x92ef7e0
 #3  0xb4d05b3f in nsCertVerificationThread::Run (this=0x92ef6f0)
     at nsCertVerificationThread.cpp:138
 No locals.
 #4  0xb4d03cc0 in nsPSMBackgroundThread::nsThreadRunner (arg=0x92ef6f0)
     at nsPSMBackgroundThread.cpp:44
 No locals.
 #5  0xb7efea97 in _pt_root (arg=0x92ef7e0)
     at mozilla/nsprpub/pr/src/pthreads/ptthread.c:220
         detached = 0
 #6  0xb763017b in start_thread (arg=0xaedafb90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xaedafb90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1361382264, -102828788, -1975843521}, mask_was_saved = 0}}, priv
 = {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #7  0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 4 (Thread 0xb0b8ab90 (LWP 20315)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb7634805 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 No symbol table info available.
 #2  0xac425728 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #3  0xac51edd8 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #4  0xac425a7d in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #5  0xb763017b in start_thread (arg=0xb0b8ab90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xb0b8ab90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1330076536, 1031730480, -1975843521}, mask_was_saved = 0}}, priv
 = {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #6  0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 3 (Thread 0xae515b90 (LWP 20316)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb7636965 in sem_wait@@GLIBC_2.1 () from /lib/libpthread.so.0
 No symbol table info available.
 #2  0xac42f8d8 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #3  0xb763017b in start_thread (arg=0xae515b90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xae515b90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1370401656, -291572467, -1975843521}, mask_was_saved = 0}}, priv
 = {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #4  0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 2 (Thread 0xadd14b90 (LWP 20318)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb7637199 in __lll_lock_wait () from /lib/libpthread.so.0
 No symbol table info available.
 #2  0xb7632a14 in _L_lock_236 () from /lib/libpthread.so.0
 No symbol table info available.
 #3  0xb763246b in __pthread_mutex_lock (mutex=0xacab3cd0)
     at pthread_mutex_lock.c:69
         ignore3 = <value optimized out>
         ignore1 = 130
         ignore2 = <value optimized out>
         oldval = <value optimized out>
         retval = <value optimized out>
         __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
 #4  0xac43201c in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #5  0xb127ca80 in write_data (p=0xb3542f8) at flashsupport.c:872
         l = 4096
         length = 7192
         __PRETTY_FUNCTION__ = "write_data"
 #6  0xb1253c21 in pa_command_request (pd=0xb8edd48, command=61,
     tag=4294967295, t=0xaf20e6c0, userdata=0x8d9fe58) at
 pulse/stream.c:395
         bytes = 7192
         channel = 0
         __PRETTY_FUNCTION__ = "pa_command_request"
 #7  0xb1266ed0 in pa_pdispatch_run (pd=0xb8edd48, packet=0xaf2041e0,
     creds=0xb7ef058, userdata=0x8d9fe58) at pulsecore/pdispatch.c:241
         tag = 4294967295
         command = 61
         ts = (pa_tagstruct *) 0xaf20e6c0
         ret = <value optimized out>
         __PRETTY_FUNCTION__ = "pa_pdispatch_run"
         __func__ = "pa_pdispatch_run"
 #8  0xb12469c9 in pstream_packet_callback (p=0xb7eef90, packet=0xaf2041e0,
     creds=0xb7ef058, userdata=0x8d9fe58) at pulse/context.c:306
         __PRETTY_FUNCTION__ = "pstream_packet_callback"
 #9  0xb1267d76 in do_something (p=0xb7eef90) at pulsecore/pstream.c:818
         __PRETTY_FUNCTION__ = "do_something"
 #10 0xb125fa31 in callback (m=0xcded95c, e=0xa1c13b8, fd=37,
     f=PA_IO_EVENT_INPUT, userdata=0xa1c11e8) at pulsecore/iochannel.c:121
         io = <value optimized out>
         changed = <value optimized out>
         __PRETTY_FUNCTION__ = "callback"
 #11 0xb124ddaa in pa_mainloop_dispatch (m=0xcded918) at
 pulse/mainloop.c:679
         dispatched = 0
         __PRETTY_FUNCTION__ = "pa_mainloop_dispatch"
 #12 0xb124df41 in pa_mainloop_iterate (m=0xcded918, block=1, retval=0x0)
     at pulse/mainloop.c:922
         r = 1
         __PRETTY_FUNCTION__ = "pa_mainloop_iterate"
 #13 0xb124dfe4 in pa_mainloop_run (m=0xcded918, retval=0x0)
     at pulse/mainloop.c:937
         r = <value optimized out>
 #14 0xb1257683 in thread (userdata=0xa230b88) at pulse/thread-
 mainloop.c:91
         mask = {__val = {2147483647, 4294967294,
     4294967295 <repeats 30 times>}}
 #15 0xb1270139 in internal_thread_func (userdata=0xa1c1248)
     at pulsecore/thread-posix.c:73
         __PRETTY_FUNCTION__ = "internal_thread_func"
 #16 0xb763017b in start_thread (arg=0xadd14b90) at pthread_create.c:297
         __res = <value optimized out>
         __ignore1 = <value optimized out>
         __ignore2 = <value optimized out>
         pd = (struct pthread *) 0xadd14b90
         now = <value optimized out>
         unwind_buf = {cancel_jmp_buf = {{jmp_buf = {-1218183180, 0,
 4001536,
         -1378794360, -289475318, -1975843521}, mask_was_saved = 0}}, priv
 = {
     pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0,
       canceltype = 0}}}
         not_first_call = 0
         robust = <value optimized out>
 #17 0xb7483b8e in clone () from /lib/libc.so.6
         fstab_state = {fs_fp = 0x0, fs_buffer = 0x0, fs_mntres = {
     mnt_fsname = 0x0, mnt_dir = 0x0, mnt_type = 0x0, mnt_opts = 0x0,
     mnt_freq = 0, mnt_passno = 0}, fs_ret = {fs_spec = 0x0, fs_file = 0x0,
     fs_vfstype = 0x0, fs_mntops = 0x0, fs_type = 0x0, fs_freq = 0,
     fs_passno = 0}}
         __elf_set___libc_subfreeres_element_fstab_free__ = (
     const void *) 0xb74bed90

 Thread 1 (Thread 0xb600c6f0 (LWP 16472)):
 #0  0xffffe410 in __kernel_vsyscall ()
 No symbol table info available.
 #1  0xb76325fb in __pthread_mutex_lock (mutex=0xb763fff4)
     at pthread_mutex_lock.c:273
         resultvar = <value optimized out>
         kind = 1
         robust = 0
         oldval = <value optimized out>
         retval = <value optimized out>
         __PRETTY_FUNCTION__ = "__pthread_mutex_lock"
 #2  0xb126f991 in pa_mutex_lock (m=0xfffffdff) at pulsecore/mutex-
 posix.c:92
         __PRETTY_FUNCTION__ = "pa_mutex_lock"
 #3  0xb1257b15 in pa_threaded_mainloop_stop (m=0xa230b88)
     at pulse/thread-mainloop.c:158
         __PRETTY_FUNCTION__ = "pa_threaded_mainloop_stop"
 #4  0xb127c778 in FPX_SoundOutput_Close (ptr=0xb3542f8) at
 flashsupport.c:1006
         __PRETTY_FUNCTION__ = "FPX_SoundOutput_Close"
 #5  0xac42f046 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #6  0xac6cec8e in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #7  0xac5737f0 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #8  0xac7965fb in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #9  0xac4063bb in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #10 0xac3300b2 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #11 0xac325338 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #12 0xac31e181 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #13 0xac322937 in ?? () from /opt/netscape/plugins/libflashplayer.so
 No symbol table info available.
 #14 0x0a9d7eac in ?? ()
 No symbol table info available.
 #15 0xbfcadb70 in ?? ()
 No symbol table info available.
 #16 0x0bbec580 in ?? ()
 No symbol table info available.
 #17 0xb51fcff4 in ?? () from /usr/lib/mozilla-
 firefox/components/libgkplugin.so
 No symbol table info available.
 #18 0x00000000 in ?? ()
 No symbol table info available.
 #0  0xffffe410 in __kernel_vsyscall ()
 }}}

-- 
Ticket URL: <http://www.pulseaudio.org/ticket/225>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server


More information about the pulseaudio-bugs mailing list