[vlc-devel] commit: Abort on invalid lock transition ( Rémi Denis-Courmont )

Ilkka Ollakka ilkka.ollakka+vlc at oamk.fi
Sun Nov 29 16:59:25 CET 2009


On Sun, Nov 29, 2009 at 05:25:23PM +0200, Rémi Denis-Courmont wrote:
> Please report post-mortem stack traces if you hit a violation in a code path.

I got this with pulse (trying to open mkv file):
---
ef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007fffe3d44838 in stream_request_cb (s=<value optimized out>,
length=59904, 
    userdata=<value optimized out>) at
../../../vlc/modules/audio_output/pulse.c:464
#6  0x00007fffe3b2a147 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007fffe38dbb86 in pa_pdispatch_run () from
/usr/lib64/libpulsecommon-0.9.19.so
#8  0x00007fffe3b131bd in ?? () from /usr/lib64/libpulse.so.0
#9  0x00007fffe38e021c in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#10 0x00007fffe3b1f41d in pa_mainloop_dispatch () from
/usr/lib64/libpulse.so.0
#11 0x00007fffe3b1f7a8 in pa_mainloop_iterate () from
/usr/lib64/libpulse.so.0
#12 0x00007fffe3b1f850 in pa_mainloop_run () from
/usr/lib64/libpulse.so.0
#13 0x00007fffe3b2dcdb in ?? () from /usr/lib64/libpulse.so.0
#14 0x00007fffe38eced0 in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#15 0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#17 0x0000000000000000 in ?? ()
(gdb) 
---

And with alsa:
---
0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007ffff66b5f4f in ALSAFill (p_aout=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:846
#6  0x00007ffff66b6239 in ALSAThread (data=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:764
#7  0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb) 
---
ef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007fffe3d44838 in stream_request_cb (s=<value optimized out>,
length=59904, 
    userdata=<value optimized out>) at
../../../vlc/modules/audio_output/pulse.c:464
#6  0x00007fffe3b2a147 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007fffe38dbb86 in pa_pdispatch_run () from
/usr/lib64/libpulsecommon-0.9.19.so
#8  0x00007fffe3b131bd in ?? () from /usr/lib64/libpulse.so.0
#9  0x00007fffe38e021c in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#10 0x00007fffe3b1f41d in pa_mainloop_dispatch () from
/usr/lib64/libpulse.so.0
#11 0x00007fffe3b1f7a8 in pa_mainloop_iterate () from
/usr/lib64/libpulse.so.0
#12 0x00007fffe3b1f850 in pa_mainloop_run () from
/usr/lib64/libpulse.so.0
#13 0x00007fffe3b2dcdb in ?? () from /usr/lib64/libpulse.so.0
#14 0x00007fffe38eced0 in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#15 0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#17 0x0000000000000000 in ?? ()
(gdb) 
---

And with alsa:
---
0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007ffff66b5f4f in ALSAFill (p_aout=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:846
#6  0x00007ffff66b6239 in ALSAThread (data=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:764
#7  0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb) 
---
ef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007fffe3d44838 in stream_request_cb (s=<value optimized out>,
length=59904, 
    userdata=<value optimized out>) at
../../../vlc/modules/audio_output/pulse.c:464
#6  0x00007fffe3b2a147 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007fffe38dbb86 in pa_pdispatch_run () from
/usr/lib64/libpulsecommon-0.9.19.so
#8  0x00007fffe3b131bd in ?? () from /usr/lib64/libpulse.so.0
#9  0x00007fffe38e021c in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#10 0x00007fffe3b1f41d in pa_mainloop_dispatch () from
/usr/lib64/libpulse.so.0
#11 0x00007fffe3b1f7a8 in pa_mainloop_iterate () from
/usr/lib64/libpulse.so.0
#12 0x00007fffe3b1f850 in pa_mainloop_run () from
/usr/lib64/libpulse.so.0
#13 0x00007fffe3b2dcdb in ?? () from /usr/lib64/libpulse.so.0
#14 0x00007fffe38eced0 in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#15 0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#17 0x0000000000000000 in ?? ()
(gdb) 
---

And with alsa:
---
0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007ffff66b5f4f in ALSAFill (p_aout=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:846
#6  0x00007ffff66b6239 in ALSAThread (data=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:764
#7  0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb) 
---
ef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007fffe3d44838 in stream_request_cb (s=<value optimized out>,
length=59904, 
    userdata=<value optimized out>) at
../../../vlc/modules/audio_output/pulse.c:464
#6  0x00007fffe3b2a147 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007fffe38dbb86 in pa_pdispatch_run () from
/usr/lib64/libpulsecommon-0.9.19.so
#8  0x00007fffe3b131bd in ?? () from /usr/lib64/libpulse.so.0
#9  0x00007fffe38e021c in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#10 0x00007fffe3b1f41d in pa_mainloop_dispatch () from
/usr/lib64/libpulse.so.0
#11 0x00007fffe3b1f7a8 in pa_mainloop_iterate () from
/usr/lib64/libpulse.so.0
#12 0x00007fffe3b1f850 in pa_mainloop_run () from
/usr/lib64/libpulse.so.0
#13 0x00007fffe3b2dcdb in ?? () from /usr/lib64/libpulse.so.0
#14 0x00007fffe38eced0 in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#15 0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#17 0x0000000000000000 in ?? ()
(gdb) 
---

And with alsa:
---
0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007ffff66b5f4f in ALSAFill (p_aout=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:846
#6  0x00007ffff66b6239 in ALSAThread (data=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:764
#7  0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb) 
---
ef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007fffe3d44838 in stream_request_cb (s=<value optimized out>,
length=59904, 
    userdata=<value optimized out>) at
../../../vlc/modules/audio_output/pulse.c:464
#6  0x00007fffe3b2a147 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007fffe38dbb86 in pa_pdispatch_run () from
/usr/lib64/libpulsecommon-0.9.19.so
#8  0x00007fffe3b131bd in ?? () from /usr/lib64/libpulse.so.0
#9  0x00007fffe38e021c in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#10 0x00007fffe3b1f41d in pa_mainloop_dispatch () from
/usr/lib64/libpulse.so.0
#11 0x00007fffe3b1f7a8 in pa_mainloop_iterate () from
/usr/lib64/libpulse.so.0
#12 0x00007fffe3b1f850 in pa_mainloop_run () from
/usr/lib64/libpulse.so.0
#13 0x00007fffe3b2dcdb in ?? () from /usr/lib64/libpulse.so.0
#14 0x00007fffe38eced0 in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#15 0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#17 0x0000000000000000 in ?? ()
(gdb) 
---

And with alsa:
---
0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at
../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized
out>)
    at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at
../../vlc/src/audio_output/output.c:349
#5  0x00007ffff66b5f4f in ALSAFill (p_aout=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:846
#6  0x00007ffff66b6239 in ALSAThread (data=<value optimized out>)
    at ../../../vlc/modules/audio_output/alsa.c:764
#7  0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb) 
---
ef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at ../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized out>) at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at ../../vlc/src/audio_output/output.c:349
#5  0x00007fffe3d44838 in stream_request_cb (s=<value optimized out>, length=59904, userdata=<value optimized out>) at ../../../vlc/modules/audio_output/pulse.c:464
#6  0x00007fffe3b2a147 in ?? () from /usr/lib64/libpulse.so.0
#7  0x00007fffe38dbb86 in pa_pdispatch_run () from /usr/lib64/libpulsecommon-0.9.19.so
#8  0x00007fffe3b131bd in ?? () from /usr/lib64/libpulse.so.0
#9  0x00007fffe38e021c in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#10 0x00007fffe3b1f41d in pa_mainloop_dispatch () from /usr/lib64/libpulse.so.0
#11 0x00007fffe3b1f7a8 in pa_mainloop_iterate () from /usr/lib64/libpulse.so.0
#12 0x00007fffe3b1f850 in pa_mainloop_run () from /usr/lib64/libpulse.so.0
#13 0x00007fffe3b2dcdb in ?? () from /usr/lib64/libpulse.so.0
#14 0x00007fffe38eced0 in ?? () from /usr/lib64/libpulsecommon-0.9.19.so
#15 0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#16 0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#17 0x0000000000000000 in ?? ()
(gdb) 
---

And with alsa:
---
0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
(gdb) bt
#0  0x00007ffff6aef4e5 in raise () from /lib64/libc.so.6
#1  0x00007ffff6af09b0 in abort () from /lib64/libc.so.6
#2  0x00007ffff794b482 in aout_lock (i=4) at ../../vlc/src/audio_output/common.c:156
#3  0x00007ffff7951ca7 in aout_lock_input_fifos (p_aout=<value optimized out>) at ../../vlc/src/audio_output/aout_internal.h:205
#4  aout_OutputNextBuffer (p_aout=<value optimized out>) at ../../vlc/src/audio_output/output.c:349
#5  0x00007ffff66b5f4f in ALSAFill (p_aout=<value optimized out>) at ../../../vlc/modules/audio_output/alsa.c:846
#6  0x00007ffff66b6239 in ALSAThread (data=<value optimized out>) at ../../../vlc/modules/audio_output/alsa.c:764
#7  0x00007ffff727765d in start_thread () from /lib64/libpthread.so.0
#8  0x00007ffff6b8e14d in clone () from /lib64/libc.so.6
#9  0x0000000000000000 in ?? ()
(gdb) 
---

Let me know if you want full backtrace and I'll post them.



-- 
Ilkka Ollakka



More information about the vlc-devel mailing list