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: -
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 ~]$
This is most likely a bug in libltdl. Could you please tell me which version of libltdl you have installed?
Or to be more exact: 1.5.22 i broken. 1.5.24 is fine.
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]$
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?
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)
Hmm, that backtrace doesn't really help. :-( Could you please do a full back trace over all threads?
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
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".
Closing this bug as notabug, then.