Bug 375891 - pulseaudio does crash on start
pulseaudio does crash on start
Status: CLOSED NOTABUG
Product: Fedora
Classification: Fedora
Component: pulseaudio (Show other bugs)
8
x86_64 Linux
low Severity high
: ---
: ---
Assigned To: Lennart Poettering
Fedora Extras Quality Assurance
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2007-11-11 08:41 EST by Gert Vervoort
Modified: 2007-11-30 17:12 EST (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2007-11-12 09:08:16 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Gert Vervoort 2007-11-11 08:41:51 EST
Description of problem:

The pulsaudio component crashes when started with following error message
(copy/pasted from .xsession-errors):

SESSION_MANAGER=local/unix:@/tmp/.ICE-unix/4040,unix/unix:/tmp/.ICE-unix/4040
pulseaudio: pulsecore/mutex-posix.c:98: pa_mutex_unlock: Assertion `pthread_mute
x_unlock(&m->mutex) == 0' failed.

** (gnome-session:4040): WARNING **: Failed to start sound.




Version-Release number of selected component (if applicable):

[gert@apollo ~]$ yum list | grep installed | grep pulseaudio
alsa-plugins-pulseaudio.x86_64           1.0.14-5.fc8           installed       
pulseaudio.x86_64                        0.9.7-0.17.svn20071017 installed       
pulseaudio-core-libs.x86_64              0.9.7-0.17.svn20071017 installed       
pulseaudio-esound-compat.x86_64          0.9.7-0.17.svn20071017 installed       
pulseaudio-libs.x86_64                   0.9.7-0.17.svn20071017 installed       
pulseaudio-utils.x86_64                  0.9.7-0.17.svn20071017 installed       
[gert@apollo ~]$ 


How reproducible:

Always


Steps to Reproduce:
1. Login as a user via gdm
2. cat .xsession-errors
3.

  
Actual results:

Error message in .xsession-errors
And no sound apps using pulseaudio


Expected results:

No error message in .xsession-errors
And sound in apps using pulseaudio


Additional info:

-
Comment 1 Gert Vervoort 2007-11-11 08:43:03 EST
Some problem occurs when trying to start pulseaudio manually:

[gert@apollo ~]$ pulseaudio 
pulseaudio: pulsecore/mutex-posix.c:98: pa_mutex_unlock: Assertion
`pthread_mutex_unlock(&m->mutex) == 0' failed.
Aborted
[gert@apollo ~]$ 
Comment 2 Lennart Poettering 2007-11-11 11:15:46 EST
This is most likely a bug in libltdl. Could you please tell me which version of
libltdl you have installed?
Comment 3 Lennart Poettering 2007-11-11 11:17:20 EST
Or to be more exact: 1.5.22 i broken. 1.5.24 is fine.
Comment 4 Gert Vervoort 2007-11-11 11:22:54 EST
Version 1.5.24:

[gert@apollo tmp]$ yum list | grep installed | grep ltdl 
libtool-ltdl.x86_64                      1.5.24-3.fc8           installed       
[gert@apollo tmp]$ 

Comment 5 Lennart Poettering 2007-11-11 11:37:59 EST
Uh. and with that version you say the problem persists?

Hmm, could you please provide me with the full output of pulseaudio -vv and even
better a strack trace with debugging symbols when this happens?
Comment 6 Gert Vervoort 2007-11-11 12:37:54 EST
Yes, that is the version I had installed on my system when noticing the problem

pulseaudio -vv does not give anymore information:

[gert@apollo tmp]$ pulseaudio -vv
pulseaudio: pulsecore/mutex-posix.c:98: pa_mutex_unlock: Assertion
`pthread_mutex_unlock(&m->mutex) == 0' failed.
Aborted
[gert@apollo tmp]$ 

After installing the debuginfo packages for pulseaudio and the used libraries, I
get the following stacktrace using gdb:

[gert@apollo ~]$ gdb /usr/bin/pulseaudio 
GNU gdb Red Hat Linux (6.6-35.fc8rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r
Starting program: /usr/bin/pulseaudio 
[Thread debugging using libthread_db enabled]
[New process 8125]
[New process 8125]
pulseaudio: pulsecore/mutex-posix.c:98: pa_mutex_unlock: Assertion
`pthread_mutex_unlock(&m->mutex) == 0' failed.

Program received signal SIGABRT, Aborted.
0x0000003b83830ec5 in *__GI_raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(gdb) bt
#0  0x0000003b83830ec5 in *__GI_raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
#1  0x0000003b83832970 in *__GI_abort () at abort.c:88
#2  0x0000003b8382a11f in *__GI___assert_fail (
    assertion=0x2b94a4190ee8 "pthread_mutex_unlock(&m->mutex) == 0", 
    file=0x2b94a4190e09 "pulsecore/mutex-posix.c", line=98, 
    function=0x2b94a41910c0 "pa_mutex_unlock") at assert.c:78
#3  0x00002b94a41804c5 in ?? ()
#4  0x0000000000000000 in ?? ()
(gdb) 



Comment 7 Lennart Poettering 2007-11-11 12:48:41 EST
Hmm, that backtrace doesn't really help. :-( Could you please do a full back
trace over all threads?
Comment 8 Gert Vervoort 2007-11-11 13:05:42 EST
A full backtrace:

[gert@apollo ~]$ gdb /usr/bin/pulseaudio 
GNU gdb Red Hat Linux (6.6-35.fc8rh)
Copyright (C) 2006 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "x86_64-redhat-linux-gnu"...
Using host libthread_db library "/lib64/libthread_db.so.1".
(gdb) r
Starting program: /usr/bin/pulseaudio 
[Thread debugging using libthread_db enabled]
[New process 8462]
[New process 8462]
pulseaudio: pulsecore/mutex-posix.c:98: pa_mutex_unlock: Assertion
`pthread_mutex_unlock(&m->mutex) == 0' failed.

Program received signal SIGABRT, Aborted.
0x0000003b83830ec5 in *__GI_raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
64        return INLINE_SYSCALL (tgkill, 3, pid, selftid, sig);
(gdb) bt full
#0  0x0000003b83830ec5 in *__GI_raise (sig=<value optimized out>)
    at ../nptl/sysdeps/unix/sysv/linux/raise.c:64
        pid = <value optimized out>
        selftid = 0
#1  0x0000003b83832970 in *__GI_abort () at abort.c:88
        act = {__sigaction_handler = {sa_handler = 0x1ec01, 
    sa_sigaction = 0x1ec01}, sa_mask = {__val = {255612758488, 0, 
      255612758408, 140735872757264, 47073025957385, 140735872757504, 
      255609672507, 206158430232, 6349824, 255612758400, 125952, 255610466288, 
      6350384, 125392, 255609742718, 6349952}}, sa_flags = 1853185912, 
  sa_restorer = 0x7fff9fb408c5}
        sigs = {__val = {32, 0 <repeats 15 times>}}
#2  0x0000003b8382a11f in *__GI___assert_fail (
    assertion=0x2ad00afd9ee8 "pthread_mutex_unlock(&m->mutex) == 0", 
    file=0x2ad00afd9e09 "pulsecore/mutex-posix.c", line=98, 
    function=0x2ad00afda0c0 "pa_mutex_unlock") at assert.c:78
        buf = 0x60e5c0 "pulseaudio: pulsecore/mutex-posix.c:98: pa_mutex_unlock:
Assertion `pthread_mutex_unlock(&m->mutex) == 0' failed.\n"
        errstr = "Unexpected error.\n"
#3  0x00002ad00afc94c5 in ?? ()
No symbol table info available.
#4  0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) 

Also it still seems to be missing symbol information, but as far as I know I
have installed debuginfo for all libraries it links to:

alsa-lib-debuginfo.x86_64                1.0.15-1.fc8           installed       
dbus-debuginfo.x86_64                    1.1.2-7.fc8            installed       
glibc-debuginfo.x86_64                   2.7-2                  installed       
libcap-debuginfo.x86_64                  1.10-30                installed       
liboil-debuginfo.x86_64                  0.3.12-11.fc8          installed       
libsamplerate-debuginfo.x86_64           0.1.2-7.fc8            installed       
libsndfile-debuginfo.x86_64              1.0.17-2.fc8           installed       
libtool-debuginfo.x86_64                 1.5.24-3.fc8           installed       
pulseaudio-debuginfo.x86_64              0.9.7-0.17.svn20071017 installed       
Comment 9 Gert Vervoort 2007-11-11 13:37:31 EST
I found the problem, there was an old version libltdl of in /usr/local/lib64 :-( 

[gert@apollo tmp]$ ldd /usr/bin/pulseaudio 
        linux-vdso.so.1 =>  (0x00007fff6a9fe000)
        libpulsecore.so.4 => /usr/lib64/libpulsecore.so.4 (0x00002aaaaaac9000)
        libpthread.so.0 => /lib64/libpthread.so.0 (0x0000003b84400000)
        libltdl.so.3 => /usr/local/lib64/libltdl.so.3 (0x00002aaaaad28000)
        libsamplerate.so.0 => /usr/lib64/libsamplerate.so.0 (0x00002aaaaae30000)
        libsndfile.so.1 => /usr/lib64/libsndfile.so.1 (0x0000003b82a00000)
        liboil-0.3.so.0 => /usr/lib64/liboil-0.3.so.0 (0x0000003b82e00000)
        libdbus-1.so.3 => /lib64/libdbus-1.so.3 (0x0000003b8d200000)
        libcap.so.1 => /lib64/libcap.so.1 (0x0000003b8ce00000)
        librt.so.1 => /lib64/librt.so.1 (0x0000003b86800000)
        libdl.so.2 => /lib64/libdl.so.2 (0x0000003b84000000)
        libm.so.6 => /lib64/libm.so.6 (0x0000003b83c00000)
        libc.so.6 => /lib64/libc.so.6 (0x0000003b83800000)
        /lib64/ld-linux-x86-64.so.2 (0x0000003b82600000)
[gert@apollo tmp]$ 

rm /usr/local/lib64/libltdl* solves the problem.

Now pulseaudio starts:

[gert@apollo tmp]$ pulseaudio 
W: alsa-util.c: Device hw:1 doesn't support 2 channels, changed to 1.
W: alsa-util.c: Cannot find mixer control "Capture".


Comment 10 Lennart Poettering 2007-11-12 09:08:16 EST
Closing this bug as notabug, then.

Note You need to log in before you can comment on or make changes to this bug.