Package: xine-lib
Severity: normal

When starting xine (and apps using libxine like amarok), unless I override the 
audio
output plugin manually (-A), it tries various audio output plugins. All well
and good, but:

When it tries pulseaudio, unless a pulseaudio daemon is running, it segfaults
rather than moving onto the next audio out plugin (e.g. alsa)
If the pulseaudio daemon is running, it works.

Explicitly doing 'xine -A pulseaudio' also segfaults in the absence of the 
pulseaudio daemon.

backtrace suggests the problem may be in libpulse/libpulsecore itself and its 
thread handling, but I'm not sure, and can presently only repeat with xine and
apps using xine.

Using the libpulse* from debian/unstable, looking at the upstream pulseaudio
changelog I do see various fixes around threading in later version changelog, 
so it's also possible it's a known/fixed issue upstream.
 
ii  libpulse-browse0                     0.9.10-3                          
PulseAudio client libraries (zeroconf support)
ii  libpulse-browse0-dbg                 0.9.10-3                          
PulseAudio client libraries (zeroconf support) debugging symbols
ii  libpulse-mainloop-glib0              0.9.10-3                          
PulseAudio client libraries (glib support)
ii  libpulse-mainloop-glib0-dbg          0.9.10-3                          
PulseAudio client libraries (glib support) debugging symbols
ii  libpulse0                            0.9.10-3                          
PulseAudio client libraries
ii  libpulse0-dbg                        0.9.10-3                          
PulseAudio client libraries detached debugging symbols
ii  libpulsecore5                        0.9.10-3                          
PulseAudio sound server core
ii  libpulsecore5-dbg                    0.9.10-3                          
PulseAudio sound server core detached debugging symbols
ii  pulseaudio                           0.9.10-3                          
PulseAudio sound server
ii  pulseaudio-esound-compat             0.9.10-3                          
PulseAudio ESD compatibility layer
ii  pulseaudio-module-gconf              0.9.10-3                          
GConf module for PulseAudio sound server
ii  pulseaudio-module-hal                0.9.10-3                          HAL 
device detection module for PulseAudio sound server
ii  pulseaudio-module-x11                0.9.10-3                          X11 
module for PulseAudio sound server
ii  pulseaudio-module-x11-dbg            0.9.10-3                          X11 
module for PulseAudio sound server debugging symbols
ii  pulseaudio-module-zeroconf           0.9.10-3                          
Zeroconf module for PulseAudio sound server
ii  pulseaudio-module-zeroconf-dbg       0.9.10-3                          
Zeroconf module for PulseAudio sound server debugging symbols
ii  pulseaudio-utils                     0.9.10-3  

-- System Information:
Debian Release: 5.0
  APT prefers unstable
  APT policy: (500, 'unstable')
Architecture: amd64 (x86_64)

Kernel: Linux 2.6.26-1-amd64 (SMP w/8 CPU cores)
Locale: LANG=en_IE.UTF-8, LC_CTYPE=en_IE.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/bash
Starting program: /usr/bin/xine -A pulseaudio /home/david/wooog.wav
[Thread debugging using libthread_db enabled]
[New Thread 0x7fe19362c700 (LWP 28884)]
[New Thread 0x51ad8950 (LWP 28887)]
[New Thread 0x61ad9950 (LWP 28888)]
[New Thread 0x71ada950 (LWP 28889)]
[New Thread 0x7fe188a76950 (LWP 28890)]
[New Thread 0x7fe177ef6950 (LWP 28891)]
[New Thread 0x7fe15ffff950 (LWP 28892)]
[New Thread 0x7fe14fffe950 (LWP 28893)]
[Thread 0x7fe15ffff950 (LWP 28892) exited]
[Thread 0x7fe14fffe950 (LWP 28893) exited]
[Thread 0x7fe177ef6950 (LWP 28891) exited]

Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fe19362c700 (LWP 28884)]
pthread_join (threadid=140606356547920, thread_return=0x0) at pthread_join.c:46
46      pthread_join.c: No such file or directory.
        in pthread_join.c

Thread 5 (Thread 0x7fe188a76950 (LWP 28890)):
#0  0x00007fe191a49ce2 in select () from /usr/lib/debug/libc.so.6
No symbol table info available.
#1  0x00007fe19332c304 in xine_usec_sleep (usec=<value optimized out>) at 
utils.c:481
        tm = {tv_sec = 0, tv_usec = 8000}
#2  0x00007fe19331179b in video_out_loop (this_gen=<value optimized out>) at 
video_out.c:1246
        vpts = 18055
        img = (vo_frame_t *) 0x0
        this = (vos_t *) 0x2619aa0
        next_frame_vpts = 18055
        usec_to_sleep = 1000
#3  0x00007fe19176bfc7 in start_thread (arg=<value optimized out>) at 
pthread_create.c:297
        __res = <value optimized out>
        pd = (struct pthread *) 0x7fe188a76950
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {140606637042000, 
7942061745608195603, 140735935816480, 140606784847616, 0, 4096, 
-7929486154035757549, -7929433796591747565}, 
      mask_was_saved = 0}}, priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 
0x0, cleanup = 0x0, canceltype = 0}}}
        not_first_call = <value optimized out>
        robust = <value optimized out>
#4  0x00007fe191a505ad in clone () from /usr/lib/debug/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 *) 
0x7fe191a86480
#5  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 4 (Thread 0x71ada950 (LWP 28889)):
#0  0x00007fe19176ffad in pthread_cond_timedwait@@GLIBC_2.3.2 () from 
/usr/lib/debug/libpthread.so.0
No locals.
#1  0x00007fe193303cb1 in metronom_sync_loop (this=0x2614910) at metronom.c:870
        tv = {tv_sec = 1232372102, tv_usec = 660059}
        ts = {tv_sec = 1232372107, tv_nsec = 660059000}
        scr = (scr_plugin_t **) 0x2614a50
        pts = 1
#2  0x00007fe19176bfc7 in start_thread (arg=<value optimized out>) at 
pthread_create.c:297
        __res = <value optimized out>
        pd = (struct pthread *) 0x71ada950
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1907206480, 
7942061745608195603, 140606784886752, 140606784847616, 0, 4096, 
7941882779658223123, -7929433796591747565}, mask_was_saved = 0}}, 
  priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, 
canceltype = 0}}}
        not_first_call = <value optimized out>
        robust = <value optimized out>
#3  0x00007fe191a505ad in clone () from /usr/lib/debug/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 *) 
0x7fe191a86480
#4  0x0000000000000000 in ?? ()
No symbol table info available.
Warning: the current language does not match this frame.

Thread 3 (Thread 0x61ad9950 (LWP 28888)):
#0  0x00007fe191a49ce2 in select () from /usr/lib/debug/libc.so.6
No symbol table info available.
#1  0x00007fe19332c304 in xine_usec_sleep (usec=<value optimized out>) at 
utils.c:481
        tm = {tv_sec = 0, tv_usec = 240000}
#2  0x000000000043ea7a in slider_loop (dummy=<value optimized out>) at 
panel.c:511
        status = <value optimized out>
        speed = 1
        pos = 0
        secs = 0
        i = 1
#3  0x00007fe19176bfc7 in start_thread (arg=<value optimized out>) at 
pthread_create.c:297
        __res = <value optimized out>
        pd = (struct pthread *) 0x61ad9950
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1638766928, 
7942061745608195603, 140735935816336, 140606784847616, 0, 4096, 
7941847593675521555, -7929433796591747565}, mask_was_saved = 0}}, 
  priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, 
canceltype = 0}}}
        not_first_call = <value optimized out>
        robust = <value optimized out>
#4  0x00007fe191a505ad in clone () from /usr/lib/debug/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 *) 
0x7fe191a86480
#5  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 2 (Thread 0x51ad8950 (LWP 28887)):
#0  0x00007fe19176fd29 in pthread_cond_wait@@GLIBC_2.3.2 () from 
/usr/lib/debug/libpthread.so.0
No locals.
#1  0x00000000004873d7 in _tips_loop_thread (data=<value optimized out>) at 
tips.c:69
        tv = {tv_sec = 140606787068480, tv_usec = 1370327376}
        ts = {tv_sec = 0, tv_nsec = 0}
#2  0x00007fe19176bfc7 in start_thread (arg=<value optimized out>) at 
pthread_create.c:297
        __res = <value optimized out>
        pd = (struct pthread *) 0x51ad8950
        unwind_buf = {cancel_jmp_buf = {{jmp_buf = {1370327376, 
7942061745608195603, 140735935815936, 140606784847616, 0, 4096, 
7941953147328658963, -7929433796591747565}, mask_was_saved = 0}}, 
  priv = {pad = {0x0, 0x0, 0x0, 0x0}, data = {prev = 0x0, cleanup = 0x0, 
canceltype = 0}}}
        not_first_call = <value optimized out>
        robust = <value optimized out>
#3  0x00007fe191a505ad in clone () from /usr/lib/debug/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 *) 
0x7fe191a86480
#4  0x0000000000000000 in ?? ()
No symbol table info available.

Thread 1 (Thread 0x7fe19362c700 (LWP 28884)):
#0  pthread_join (threadid=140606356547920, thread_return=0x0) at 
pthread_join.c:46
        result = <value optimized out>
#1  0x00007fe17865ceb2 in pa_thread_free (t=0x7fe177ef6950) at 
pulsecore/thread-posix.c:114
        __func__ = "pa_thread_free"
        __PRETTY_FUNCTION__ = "pa_thread_free"
#2  0x00007fe178640924 in pa_threaded_mainloop_free (m=0x2a3fa40) at 
pulse/thread-mainloop.c:127
        __func__ = "pa_threaded_mainloop_free"
        __PRETTY_FUNCTION__ = "pa_threaded_mainloop_free"
#3  0x00007fe178874b55 in ao_pulse_exit (this_gen=<value optimized out>) at 
audio_pulse_out.c:564
        this = (pulse_driver_t *) 0x2a3f8f0
#4  0x00007fe178874e5d in open_plugin (class_gen=0x2a3f8c0, data=<value 
optimized out>) at audio_pulse_out.c:829
        device = <value optimized out>
        r = -1
        __FUNCTION__ = "open_plugin"
#5  0x00007fe19330c3a1 in xine_open_audio_driver (this=0x2557c50, id=0x2a3d1d0 
"pulseaudio", data=0x0) at load_plugins.c:1740
        driver = (ao_driver_t *) 0x0
        catalog = <value optimized out>
        list_id = 0
        list_size = 7
#6  0x0000000000426614 in main (argc=<value optimized out>, 
argv=0x7fffa3765c18) at main.c:980
        aids = (const char * const *) 0x25b7410
        i = <value optimized out>
        c = <value optimized out>
        aos = 1
        option_index = 0
        audio_channel = -1
        window_id = 0
        spu_channel = -1
        audio_driver_id = 0x254e080 "pulseaudio"
        video_driver_id = 0x0
        vo_mask = {__val = {8192, 0 <repeats 15 times>}}
        _argv = (char **) 0x2548680
        _argc = 4
        driver_num = 2
        session = -1
        aspect_ratio = 0
        no_auto_start = 0
        old_playlist_cfg = <value optimized out>
        no_old_playlist = 0
        pplugins = (char **) 0x0
        pplugins_num = 0
        tvout = 0x0
        pdeinterlace = 0x0
        enable_deinterlace = -1552524688
        session_argv = (char **) 0x0
        session_argv_num = 0
        retval = 0
        mutexattr = {__size = "\001\000\000", __align = 1}
Continuing.

Program terminated with signal SIGSEGV, Segmentation fault.
The program no longer exists.

Reply via email to