Comment 15 for bug 404538

Revision history for this message
Tony Espy (awe) wrote :

It looks like the GvcMixerStream gets unref'd whilst it's still the default sink.

I attached to gsd using gdb, and caught the crash:

Program received signal SIGSEGV, Segmentation fault.
gvc_mixer_stream_is_running (stream=0x6de170) at gvc-mixer-stream.c:679
679 if (stream->priv->change_volume_op == NULL)
(gdb) bt
#0 gvc_mixer_stream_is_running (stream=0x6de170) at gvc-mixer-stream.c:679
#1 0x00007fffea265534 in update_sink (control=0x6de010, info=0x7fffffffdc40) at gvc-mixer-control.c:661
#2 0x00007fffecd0daa1 in ?? () from /usr/lib/libpulse.so.0
#3 0x00007fffecad9bd3 in ?? () from /usr/lib/libpulsecommon-0.9.15.so
#4 0x00007fffecada0c9 in pa_pdispatch_run () from /usr/lib/libpulsecommon-0.9.15.so
#5 0x00007fffecd0b8cd in ?? () from /usr/lib/libpulse.so.0
#6 0x00007fffecaddcd4 in ?? () from /usr/lib/libpulsecommon-0.9.15.so
#7 0x00007fffecf38fda in ?? () from /usr/lib/libpulse-mainloop-glib.so.0
#8 0x00007ffff49f2a8e in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#9 0x00007ffff49f6458 in ?? () from /usr/lib/libglib-2.0.so.0
#10 0x00007ffff49f68b5 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#11 0x00007ffff78de117 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#12 0x00000000004046a5 in main (argc=1, argv=0x7fffffffe308) at main.c:489

Here's what the stream looks like:

(gdb) print stream
$1 = (GvcMixerStream *) 0x6de170
(gdb) print *stream
$2 = {parent = {g_type_instance = {g_class = 0x6de380}, ref_count = 0, qdata = 0xaaaaaaaaaaaaaaaa}, priv = 0xaaaaaaaaaaaaaaaa}