[pulseaudio-tickets] [PulseAudio] #390: pulse clients might abort if the pulseaudio server goes down

PulseAudio trac-noreply at tango.0pointer.de
Sat Nov 1 07:47:30 PDT 2008


#390: pulse clients might abort if the pulseaudio server goes down
-----------------------+----------------------------------------------------
  Reporter:  mkretz    |       Owner:  lennart
      Type:  defect    |      Status:  new    
  Priority:  normal    |   Milestone:         
 Component:  libpulse  |    Severity:  major  
Resolution:            |    Keywords:         
-----------------------+----------------------------------------------------
Comment (by mkretz):

 Application: Phonon Play (phononplay), signal SIGABRT
 0x00007f3beb9c2621 in nanosleep () from /lib/libc.so.6
 [Current thread is 0 (LWP 25055)]

 Thread 8 (Thread 0x42702950 (LWP 25058)):
 #0  0x00007f3beff6a55d in pthread_cond_timedwait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 #1  0x00007f3be5ffd19a in metronom_sync_loop (this=0xc60790) at
 metronom.c:870
 #2  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #3  0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #4  0x0000000000000000 in ?? ()

 Thread 7 (Thread 0x417bc950 (LWP 25059)):
 #0  0x00007f3beb9f9482 in select () from /lib/libc.so.6
 #1  0x00007f3be602d82b in xine_usec_sleep (usec=10000) at utils.c:482
 #2  0x00007f3be600c89b in video_out_loop (this_gen=0xc66310) at
 video_out.c:1246
 #3  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #4  0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #5  0x0000000000000000 in ?? ()

 Thread 6 (Thread 0x42f03950 (LWP 25060)):
 #0  0x00007f3beb9f7206 in poll () from /lib/libc.so.6
 #1  0x00007f3bea7943a8 in ?? () from /usr/lib/libglib-2.0.so.0
 #2  0x00007f3bea7946cb in g_main_context_iteration () from
 /usr/lib/libglib-2.0.so.0
 #3  0x00007f3bf0324f9a in QEventDispatcherGlib::processEvents
 (this=0x108a830, flags=@0x42f02f20) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventdispatcher_glib.cpp:321
 #4  0x00007f3bf02eca98 in QEventLoop::processEvents (this=0x42f02ff0,
 flags=@0x42f02fa0) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventloop.cpp:143
 #5  0x00007f3bf02ecc94 in QEventLoop::exec (this=0x42f02ff0,
 flags=@0x42f03010) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventloop.cpp:194
 #6  0x00007f3bf01de5aa in QThread::exec (this=0x108a200) at
 /home/mkretz/KDE/src/qt-copy/src/corelib/thread/qthread.cpp:458
 #7  0x00007f3be6264d4e in Phonon::Xine::XineThread::run () from
 /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #8  0x00007f3bf01e3119 in QThreadPrivate::start (arg=0x108a200) at
 /home/mkretz/KDE/src/qt-copy/src/corelib/thread/qthread_unix.cpp:185
 #9  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #10 0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #11 0x0000000000000000 in ?? ()

 Thread 5 (Thread 0x4099b950 (LWP 25064)):
 #0  0x00007f3beff6a2d9 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 #1  0x00007f3be600e51c in fifo_peek_int (fifo=0x10968a0, blocking=1) at
 audio_out.c:346
 #2  0x00007f3be600e676 in fifo_peek (fifo=0x10968a0) at audio_out.c:386
 #3  0x00007f3be6010093 in ao_loop (this_gen=0x1093110) at audio_out.c:1013
 #4  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #5  0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #6  0x0000000000000000 in ?? ()

 Thread 4 (Thread 0x43f05950 (LWP 25065)):
 #0  0x00007f3beff6a2d9 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 #1  0x00007f3be600064c in fifo_buffer_get (fifo=0x11be360) at buffer.c:230
 #2  0x00007f3be6007c46 in video_decoder_loop (stream_gen=0x11bcfb0) at
 video_decoder.c:130
 #3  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #4  0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #5  0x0000000000000000 in ?? ()

 Thread 3 (Thread 0x44706950 (LWP 25066)):
 #0  0x00007f3beff6a2d9 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 #1  0x00007f3be600064c in fifo_buffer_get (fifo=0x11d7de0) at buffer.c:230
 #2  0x00007f3be6009127 in audio_decoder_loop (stream_gen=0x11bcfb0) at
 audio_decoder.c:66
 #3  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #4  0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #5  0x0000000000000000 in ?? ()

 Thread 2 (Thread 0x44f07950 (LWP 25067)):
 #0  0x00007f3beff6a2d9 in pthread_cond_wait@@GLIBC_2.3.2 () from
 /lib/libpthread.so.0
 #1  0x00007f3be6014a72 in xine_event_wait (queue=0x11f9d10) at events.c:56
 #2  0x00007f3be6014f62 in listener_loop (queue_gen=0x11f9d10) at
 events.c:214
 #3  0x00007f3beff663ea in start_thread () from /lib/libpthread.so.0
 #4  0x00007f3beba00c6d in clone () from /lib/libc.so.6
 #5  0x0000000000000000 in ?? ()

 Thread 1 (Thread 0x7f3bf117a6f0 (LWP 25055)):
 [KCrash Handler]
 #5  0x00007f3beb94cfd5 in raise () from /lib/libc.so.6
 #6  0x00007f3beb94eb43 in abort () from /lib/libc.so.6
 #7  0x00007f3bdd03da7b in pa_mutex_lock (m=<value optimized out>) at
 pulsecore/mutex-posix.c:92
 #8  0x00007f3bdd256e7c in ao_pulse_set_property (this_gen=0x108ff50,
 property=-1, value=942) at audio_pulse_out.c:641
 #9  0x00007f3be601278a in ao_set_property (this_gen=0x1093110,
 property=-1, value=942) at audio_out.c:1923
 #10 0x00007f3be6276ded in Phonon::Xine::AudioOutput::event () from
 /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #11 0x00007f3bee264f1b in QApplicationPrivate::notify_helper
 (this=0xa23cd0, receiver=0xaa03d0, e=0x108f280) at /home/mkretz/KDE/src
 /qt-copy/src/gui/kernel/qapplication.cpp:3808
 #12 0x00007f3bee265225 in QApplication::notify (this=0x7ffff91b1fb0,
 receiver=0xaa03d0, e=0x108f280) at /home/mkretz/KDE/src/qt-
 copy/src/gui/kernel/qapplication.cpp:3398
 #13 0x00007f3becc8c806 in KApplication::notify (this=0x7ffff91b1fb0,
 receiver=0xaa03d0, event=0x108f280) at
 /home/mkretz/KDE/src/kdelibs/kdeui/kernel/kapplication.cpp:307
 #14 0x00007f3bf02f0045 in QCoreApplication::notifyInternal
 (this=0x7ffff91b1fb0, receiver=0xaa03d0, event=0x108f280) at
 /home/mkretz/KDE/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:587
 #15 0x00007f3be6279dfb in QCoreApplication::sendEvent () from
 /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #16 0x00007f3be62772bb in Phonon::Xine::AudioOutput::downstreamEvent ()
 from /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #17 0x00007f3be6263500 in Phonon::Xine::SourceNode::downstreamEvent ()
 from /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #18 0x00007f3be627acfb in Phonon::Xine::MediaObject::downstreamEvent ()
 from /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #19 0x00007f3be627d713 in Phonon::Xine::MediaObject::qt_metacall () from
 /home/mkretz/KDE/kde4/lib/kde4/plugins/phonon_backend/phonon_xine.so
 #20 0x00007f3bf0301125 in QMetaCallEvent::placeMetaCall (this=0x1091620,
 object=0x1089fc0) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qobject.cpp:529
 #21 0x00007f3bf0305ec2 in QObject::event (this=0x1089fc0, e=0x1091620) at
 /home/mkretz/KDE/src/qt-copy/src/corelib/kernel/qobject.cpp:1155
 #22 0x00007f3bee264f1b in QApplicationPrivate::notify_helper
 (this=0xa23cd0, receiver=0x1089fc0, e=0x1091620) at /home/mkretz/KDE/src
 /qt-copy/src/gui/kernel/qapplication.cpp:3808
 #23 0x00007f3bee265225 in QApplication::notify (this=0x7ffff91b1fb0,
 receiver=0x1089fc0, e=0x1091620) at /home/mkretz/KDE/src/qt-
 copy/src/gui/kernel/qapplication.cpp:3398
 #24 0x00007f3becc8c806 in KApplication::notify (this=0x7ffff91b1fb0,
 receiver=0x1089fc0, event=0x1091620) at
 /home/mkretz/KDE/src/kdelibs/kdeui/kernel/kapplication.cpp:307
 #25 0x00007f3bf02f0045 in QCoreApplication::notifyInternal
 (this=0x7ffff91b1fb0, receiver=0x1089fc0, event=0x1091620) at
 /home/mkretz/KDE/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:587
 #26 0x00007f3bf02f46dd in QCoreApplication::sendEvent (receiver=0x1089fc0,
 event=0x1091620) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qcoreapplication.h:209
 #27 0x00007f3bf02f0651 in QCoreApplicationPrivate::sendPostedEvents
 (receiver=0x0, event_type=0, data=0xa13b00) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qcoreapplication.cpp:1198
 #28 0x00007f3bf02f091c in QCoreApplication::sendPostedEvents
 (receiver=0x0, event_type=0) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qcoreapplication.cpp:1091
 #29 0x00007f3bf0326bd9 in QCoreApplication::sendPostedEvents () at
 /home/mkretz/KDE/src/qt-copy/src/corelib/kernel/qcoreapplication.h:214
 #30 0x00007f3bf0325df3 in postEventSourceDispatch (s=0xa26990) at
 /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventdispatcher_glib.cpp:205
 #31 0x00007f3bea790d3b in g_main_context_dispatch () from
 /usr/lib/libglib-2.0.so.0
 #32 0x00007f3bea79450d in ?? () from /usr/lib/libglib-2.0.so.0
 #33 0x00007f3bea7946cb in g_main_context_iteration () from
 /usr/lib/libglib-2.0.so.0
 #34 0x00007f3bf0324f7c in QEventDispatcherGlib::processEvents
 (this=0xa23980, flags=@0x7ffff91b1de0) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventdispatcher_glib.cpp:319
 #35 0x00007f3bee31db93 in QGuiEventDispatcherGlib::processEvents
 (this=0xa23980, flags=@0x7ffff91b1e40) at /home/mkretz/KDE/src/qt-
 copy/src/gui/kernel/qguieventdispatcher_glib.cpp:198
 #36 0x00007f3bf02eca98 in QEventLoop::processEvents (this=0x7ffff91b1f00,
 flags=@0x7ffff91b1ec0) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventloop.cpp:143
 #37 0x00007f3bf02ecc94 in QEventLoop::exec (this=0x7ffff91b1f00,
 flags=@0x7ffff91b1f20) at /home/mkretz/KDE/src/qt-
 copy/src/corelib/kernel/qeventloop.cpp:194
 #38 0x00007f3bf02f0a27 in QCoreApplication::exec () at
 /home/mkretz/KDE/src/qt-copy/src/corelib/kernel/qcoreapplication.cpp:845
 #39 0x00007f3bee264c80 in QApplication::exec () at /home/mkretz/KDE/src
 /qt-copy/src/gui/kernel/qapplication.cpp:3336
 #40 0x0000000000406e39 in main (argc=<value optimized out>, argv=<value
 optimized out>) at /home/mkretz/KDE/src/playground-
 multimedia/phonon/phononplay/main.cpp:278


 This is the code in xine's pulse audio output - last line is where it
 calls the mutex:

 static int ao_pulse_set_property (ao_driver_t *this_gen, int property, int
 value) {
   pulse_driver_t *this = (pulse_driver_t *) this_gen;
   int result = ~value;
   pa_operation *o = NULL;

   pa_threaded_mainloop_lock(this->mainloop);

-- 
Ticket URL: <http://www.pulseaudio.org/ticket/390#comment:4>
PulseAudio <http://pulseaudio.org/>
The PulseAudio Sound Server


More information about the pulseaudio-bugs mailing list