On 05/14/2013 04:09 PM, Tanu Kaskinen wrote: > void pa_thread_mq_done(pa_thread_mq *q) { > pa_assert(q); > > + if (!q->mainloop && !q->inq && !q->outq && > + !q->read_event && !q->write_event) > + return; > + > + pa_assert(q->mainloop); > + pa_assert(q->inq && q->outq); > + pa_assert(q->read_event && q->write_event); > + Coincidentally, a person with IRC nickname "johnflux" was on the channel today posting a backtrace that could be related to this. I'm reposting this backtrace as attachment - he was running Ubuntu 13.04 (which corresponds to PulseAudio 3.x-stable). -- David Henningsson, Canonical Ltd. https://launchpad.net/~diwic -------------- next part -------------- Calling gdb command: gdb --ex 'set debug-file-directory /tmp/apport_sandbox_nhAcw_/usr/lib/debug' --ex 'set solib-absolute-prefix /tmp/apport_sandbox_nhAcw_' --ex 'file "/tmp/apport_sandbox_nhAcw_//usr/bin/pulseaudio"' --ex 'core-file /tmp/apport_core_CbMtMW' GNU gdb (GDB) 7.5.91.20130417-cvs-ubuntu Copyright (C) 2013 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "x86_64-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>. Reading symbols from /tmp/apport_sandbox_nhAcw_/usr/bin/pulseaudio...Reading symbols from /tmp/apport_sandbox_nhAcw_/usr/lib/debug/usr/bin/pulseaudio...done. done. [New LWP 2058] [New LWP 2065] [New LWP 2067] warning: Can't read pathname for load map: Input/output error. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1". warning: no loadable sections found in added symbol-file system-supplied DSO at 0x7fffdc9fe000 Core was generated by `/usr/bin/pulseaudio --start --log-target=syslog'. Program terminated with signal 11, Segmentation fault. #0 0x00007fd7dc58acef in pa_thread_mq_done (q=q at entry=0xbb9180) at pulsecore/thread-mq.c:109 109 pulsecore/thread-mq.c: No such file or directory. (gdb) bt #0 0x00007fd7dc58acef in pa_thread_mq_done (q=q at entry=0xbb9180) at pulsecore/thread-mq.c:109 #1 0x00007fd7ca390616 in stop_thread (u=u at entry=0xbb9100) at modules/bluetooth/module-bluetooth-device.c:2121 #2 0x00007fd7ca3928b4 in card_set_profile (c=<optimised out>, new_profile=0xbf16a0) at modules/bluetooth/module-bluetooth-device.c:2239 #3 0x00007fd7dc54b593 in pa_card_set_profile (c=0xb311b0, name=name at entry=0x7fd7ca39458e "off", save=save at entry=false) at pulsecore/card.c:284 #4 0x00007fd7ca38d144 in transport_removed_cb (t=<optimised out>, call_data=<optimised out>, u=<optimised out>) at modules/bluetooth/module-bluetooth-device.c:1990 #5 0x00007fd7dc54fcbc in pa_hook_fire (hook=hook at entry=0xba8ca0, data=data at entry=0x0) at pulsecore/hook-list.c:106 #6 0x00007fd7d5067e57 in endpoint_clear_configuration (userdata=0xb48fb0, m=0x7fd7b4007ef0, c=<optimised out>) at modules/bluetooth/bluetooth-util.c:1241 #7 endpoint_handler (c=<optimised out>, m=0x7fd7b4007ef0, userdata=0xb48fb0) at modules/bluetooth/bluetooth-util.c:1458 #8 0x00007fd7dbc4c9f0 in ?? () from /tmp/apport_sandbox_nhAcw_/lib/x86_64-linux-gnu/libdbus-1.so.3 #9 0x00007fd7dbc3ec55 in dbus_connection_dispatch () from /tmp/apport_sandbox_nhAcw_/lib/x86_64-linux-gnu/libdbus-1.so.3 #10 0x00007fd7dc30abdc in dispatch_cb (ea=0xacf7a8, ev=0xb58ef0, userdata=<optimised out>) at pulsecore/dbus-util.c:55 #11 0x00007fd7dc0a0632 in dispatch_defer (m=0xacf750) at pulse/mainloop.c:684 #12 pa_mainloop_dispatch (m=m at entry=0xacf750) at pulse/mainloop.c:899 #13 0x00007fd7dc0a0875 in pa_mainloop_iterate (m=m at entry=0xacf750, block=block at entry=1, retval=retval at entry=0x7fffdc8940f4) at pulse/mainloop.c:939 #14 0x00007fd7dc0a0920 in pa_mainloop_run (m=m at entry=0xacf750, retval=retval at entry=0x7fffdc8940f4) at pulse/mainloop.c:954 #15 0x0000000000406d79 in main (argc=<optimised out>, argv=<optimised out>) at daemon/main.c:1148 (gdb) bt full #0 0x00007fd7dc58acef in pa_thread_mq_done (q=q at entry=0xbb9180) at pulsecore/thread-mq.c:109 __func__ = "pa_thread_mq_done" __PRETTY_FUNCTION__ = "pa_thread_mq_done" #1 0x00007fd7ca390616 in stop_thread (u=u at entry=0xbb9100) at modules/bluetooth/module-bluetooth-device.c:2121 k = <optimised out> __func__ = "stop_thread" __PRETTY_FUNCTION__ = "stop_thread" #2 0x00007fd7ca3928b4 in card_set_profile (c=<optimised out>, new_profile=0xbf16a0) at modules/bluetooth/module-bluetooth-device.c:2239 u = 0xbb9100 d = 0xbf16d0 __func__ = "card_set_profile" __PRETTY_FUNCTION__ = "card_set_profile" #3 0x00007fd7dc54b593 in pa_card_set_profile (c=0xb311b0, name=name at entry=0x7fd7ca39458e "off", save=save at entry=false) at pulsecore/card.c:284 profile = 0xbf16a0 r = <optimised out> __func__ = "pa_card_set_profile" __PRETTY_FUNCTION__ = "pa_card_set_profile" #4 0x00007fd7ca38d144 in transport_removed_cb (t=<optimised out>, call_data=<optimised out>, u=<optimised out>) at modules/bluetooth/module-bluetooth-device.c:1990 __func__ = "transport_removed_cb" __PRETTY_FUNCTION__ = "transport_removed_cb" #5 0x00007fd7dc54fcbc in pa_hook_fire (hook=hook at entry=0xba8ca0, data=data at entry=0x0) at pulsecore/hook-list.c:106 slot = 0xb4be80 next = <optimised out> result = PA_HOOK_OK __func__ = "pa_hook_fire" __PRETTY_FUNCTION__ = "pa_hook_fire" #6 0x00007fd7d5067e57 in endpoint_clear_configuration (userdata=0xb48fb0, m=0x7fd7b4007ef0, c=<optimised out>) at modules/bluetooth/bluetooth-util.c:1241 d = 0xb68cb0 t = 0xba8c60 state = 0xffffffffffffffff r = <optimised out> e = {name = 0x0, message = 0x0, dummy1 = 1, dummy2 = 0, dummy3 = 0, dummy4 = 1, dummy5 = 0, padding1 = 0x0} y = 0xb48fb0 path = 0x7fd7b40046d4 "/org/bluez/964/hci0/dev_00_1A_7D_25_C0_A3/fd8" #7 endpoint_handler (c=<optimised out>, m=0x7fd7b4007ef0, userdata=0xb48fb0) at modules/bluetooth/bluetooth-util.c:1458 y = 0xb48fb0 r = 0x0 e = {name = 0x0, message = 0x0, dummy1 = 1, dummy2 = 0, dummy3 = 0, dummy4 = 0, dummy5 = 0, padding1 = 0x7fffdc893e68} path = <optimised out> __func__ = "endpoint_handler" __PRETTY_FUNCTION__ = "endpoint_handler" #8 0x00007fd7dbc4c9f0 in ?? () from /tmp/apport_sandbox_nhAcw_/lib/x86_64-linux-gnu/libdbus-1.so.3 No symbol table info available. #9 0x00007fd7dbc3ec55 in dbus_connection_dispatch () from /tmp/apport_sandbox_nhAcw_/lib/x86_64-linux-gnu/libdbus-1.so.3 No symbol table info available. #10 0x00007fd7dc30abdc in dispatch_cb (ea=0xacf7a8, ev=0xb58ef0, userdata=<optimised out>) at pulsecore/dbus-util.c:55 conn = <optimised out> #11 0x00007fd7dc0a0632 in dispatch_defer (m=0xacf750) at pulse/mainloop.c:684 e = 0xb58ef0 r = <optimised out> #12 pa_mainloop_dispatch (m=m at entry=0xacf750) at pulse/mainloop.c:899 dispatched = 0 __func__ = "pa_mainloop_dispatch" __PRETTY_FUNCTION__ = "pa_mainloop_dispatch" #13 0x00007fd7dc0a0875 in pa_mainloop_iterate (m=m at entry=0xacf750, block=block at entry=1, retval=retval at entry=0x7fffdc8940f4) at pulse/mainloop.c:939 r = <optimised out> __func__ = "pa_mainloop_iterate" __PRETTY_FUNCTION__ = "pa_mainloop_iterate" #14 0x00007fd7dc0a0920 in pa_mainloop_run (m=m at entry=0xacf750, retval=retval at entry=0x7fffdc8940f4) at pulse/mainloop.c:954 r = <optimised out> #15 0x0000000000406d79 in main (argc=<optimised out>, argv=<optimised out>) at daemon/main.c:1148 c = 0xacf920 buf = <optimised out> conf = 0xacb090 mainloop = 0xacf750 s = <optimised out> configured_address = 0xacf920 "\002" r = <optimised out> retval = 0 d = 3 ltdl_init = true passed_fd = <optimised out> e = <optimised out> daemon_pipe = {-1, -1} daemon_pipe2 = {-1, -1} pid_monitor = 0xacd7e0 autospawn_fd = -1 autospawn_locked = false server_lookup = 0xada700 lookup_service_bus = 0xb12eb0 server_bus = 0xb12eb0 start_server = <optimised out> __func__ = "main" __PRETTY_FUNCTION__ = "main" (gdb) disassemble Dump of assembler code for function pa_thread_mq_done: 0x00007fd7dc58acc0 <+0>: push %rbx 0x00007fd7dc58acc1 <+1>: mov %rdi,%rbx 0x00007fd7dc58acc4 <+4>: sub $0x20,%rsp 0x00007fd7dc58acc8 <+8>: test %rdi,%rdi 0x00007fd7dc58accb <+11>: je 0x7fd7dc58ad3b <pa_thread_mq_done+123> 0x00007fd7dc58accd <+13>: mov 0x10(%rdi),%rdi 0x00007fd7dc58acd1 <+17>: callq 0x7fd7dc53d3f0 <pa_asyncmsgq_dispatching> 0x00007fd7dc58acd6 <+22>: test %al,%al 0x00007fd7dc58acd8 <+24>: jne 0x7fd7dc58ace8 <pa_thread_mq_done+40> 0x00007fd7dc58acda <+26>: mov 0x10(%rbx),%rdi 0x00007fd7dc58acde <+30>: mov $0x1,%esi 0x00007fd7dc58ace3 <+35>: callq 0x7fd7dc53d2f0 <pa_asyncmsgq_flush> 0x00007fd7dc58ace8 <+40>: mov (%rbx),%rax 0x00007fd7dc58aceb <+43>: mov 0x18(%rbx),%rdi => 0x00007fd7dc58acef <+47>: callq *0x18(%rax) 0x00007fd7dc58acf2 <+50>: mov (%rbx),%rax 0x00007fd7dc58acf5 <+53>: mov 0x20(%rbx),%rdi 0x00007fd7dc58acf9 <+57>: callq *0x18(%rax) 0x00007fd7dc58acfc <+60>: mov 0x8(%rbx),%rdi 0x00007fd7dc58ad00 <+64>: movq $0x0,0x20(%rbx) 0x00007fd7dc58ad08 <+72>: movq $0x0,0x18(%rbx) 0x00007fd7dc58ad10 <+80>: callq 0x7fd7dc53c530 <pa_asyncmsgq_unref> 0x00007fd7dc58ad15 <+85>: mov 0x10(%rbx),%rdi 0x00007fd7dc58ad19 <+89>: callq 0x7fd7dc53c530 <pa_asyncmsgq_unref> 0x00007fd7dc58ad1e <+94>: movq $0x0,0x10(%rbx) 0x00007fd7dc58ad26 <+102>: movq $0x0,0x8(%rbx) 0x00007fd7dc58ad2e <+110>: movq $0x0,(%rbx) 0x00007fd7dc58ad35 <+117>: add $0x20,%rsp 0x00007fd7dc58ad39 <+121>: pop %rbx 0x00007fd7dc58ad3a <+122>: retq 0x00007fd7dc58ad3b <+123>: lea 0x1cd1e(%rip),%rax # 0x7fd7dc5a7a60 <__PRETTY_FUNCTION__.7290> 0x00007fd7dc58ad42 <+130>: lea 0xdf86(%rip),%r9 # 0x7fd7dc598ccf 0x00007fd7dc58ad49 <+137>: lea 0x6970(%rip),%r8 # 0x7fd7dc5916c0 0x00007fd7dc58ad50 <+144>: lea 0x1cce9(%rip),%rcx # 0x7fd7dc5a7a40 <__func__.7289> 0x00007fd7dc58ad57 <+151>: mov $0x62,%edx 0x00007fd7dc58ad5c <+156>: xor %edi,%edi 0x00007fd7dc58ad5e <+158>: mov %rax,0x10(%rsp) 0x00007fd7dc58ad63 <+163>: lea 0x1cb8b(%rip),%rax # 0x7fd7dc5a78f5 0x00007fd7dc58ad6a <+170>: movl $0x62,0x8(%rsp) 0x00007fd7dc58ad72 <+178>: mov %rax,%rsi 0x00007fd7dc58ad75 <+181>: mov %rax,(%rsp) 0x00007fd7dc58ad79 <+185>: xor %eax,%eax 0x00007fd7dc58ad7b <+187>: callq 0x7fd7dc53a920 <pa_log_level_meta at plt> 0x00007fd7dc58ad80 <+192>: callq 0x7fd7dc53a420 <abort at plt> End of assembler dump. (gdb) info registers rax 0x0 0 rbx 0xbb9180 12292480 rcx 0x7fffdc893bc0 140736893369280 rdx 0x7fffdc893bb4 140736893369268 rsi 0x0 0 rdi 0x0 0 rbp 0xbf16a0 0xbf16a0 rsp 0x7fffdc893c10 0x7fffdc893c10 r8 0x7fffdc893bc8 140736893369288 r9 0x7fffdc893bd0 140736893369296 r10 0x0 0 r11 0x0 0 r12 0x0 0 r13 0x0 0 r14 0x0 0 r15 0xb48fb0 11833264 rip 0x7fd7dc58acef 0x7fd7dc58acef <pa_thread_mq_done+47> eflags 0x10202 [ IF RF ] cs 0x33 51 ss 0x2b 43 ds 0x0 0 es 0x0 0 fs 0x0 0 gs 0x0 0 (gdb)