#166: Various asserts in pulseaudio that result in mplayer crash
----------------------+-----------------------------------------------------
 Reporter:  Stax      |       Owner:  lennart
     Type:  defect    |      Status:  new    
 Priority:  normal    |   Milestone:         
Component:  libpulse  |    Severity:  major  
 Keywords:            |  
----------------------+-----------------------------------------------------
 I'm getting errors which crash mplayer's ao_pulse sometimes. Both seem to
 happen on stopping playback, making switching to next file in playlist
 impossible. They are

 mplayer: pulse/mainloop.c:287: mainloop_defer_enable: Assertion
 `e->mainloop->n_enabled_defer_events > 0' failed.

 It produces segfault and leaves core file, here is trace:
 {{{
 (gdb) where
 #0  0x00000037766571db in glDeleteProgramsNV () from /usr/lib64/libGL.so.1
 #1  0x000000000049c9e7 in uninitGl () at vo_gl.c:360
 #2  0x000000000049ca0a in uninit () at vo_gl.c:774
 #3  0x000000000045ae02 in uninit_player (mask=3787) at mplayer.c:615
 #4  0x000000000045b27d in exit_player_with_rc (how=0x0, rc=1) at
 mplayer.c:669
 #5  <signal handler called>
 #6  0x000000376ac30ec5 in raise () from /lib64/libc.so.6
 #7  0x000000376ac32970 in abort () from /lib64/libc.so.6
 #8  0x000000376ac2a11f in __assert_fail () from /lib64/libc.so.6
 #9  0x000000394b417761 in close () from /usr/lib64/libpulse.so.0
 #10 0x000000394b42a930 in close () from /usr/lib64/libpulse.so.0
 #11 0x000000394b4174b9 in pa_mainloop_dispatch () from
 /usr/lib64/libpulse.so.0
 #12 0x000000394b4175f6 in pa_mainloop_iterate () from
 /usr/lib64/libpulse.so.0
 #13 0x000000394b417680 in pa_mainloop_run () from /usr/lib64/libpulse.so.0
 #14 0x000000394b41d79d in close () from /usr/lib64/libpulse.so.0
 #15 0x000000394b431d2d in close () from /usr/lib64/libpulse.so.0
 #16 0x000000376b806407 in start_thread () from /lib64/libpthread.so.0
 #17 0x000000376acd4b0d in clone () from /lib64/libc.so.6
 (gdb)
 }}}

 And another one:
 mplayer: pulsecore/queue.c:67: pa_queue_free: Assertion `q->length == 0'
 failed.

 This one leaves no trace, just crashes, but reports that it happens in
 uninit function, which looks like this:
 {{{
 static void uninit(int immed) {
     if (stream && !immed) {
             pa_threaded_mainloop_lock(mainloop);
             waitop(pa_stream_drain(stream, success_cb, NULL));
     }

     if (mainloop)
         pa_threaded_mainloop_stop(mainloop);

     if (stream) {
         pa_stream_disconnect(stream);
         pa_stream_unref(stream);
         stream = NULL;
     }

     if (context) {
         pa_context_disconnect(context);
         pa_context_unref(context);
         context = NULL;
     }

     if (mainloop) {
         pa_threaded_mainloop_free(mainloop);
         mainloop = NULL;
     }
 }
 }}}

-- 
Ticket URL: <http://pulseaudio.org/ticket/166>
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

Reply via email to