Hi,

I've had some bug reports come in and I am trying to debug the issue 
which is causing GTK apps to crash quite frequently.

I've narrowed down the test case to a simple example:

I am using pulseaudio 0.9.10 (will test with .13 shortly, but I suspect 
it is not at fault). I am using the alsa backend of libcanberra 0.10 
(same problem as on 0.9), with the alsa->pulse redirection provided by 
alsa-plugins 1.0.18rc3


Steps to reproduce:
1) Set libcanberra backend to alsa
2) export PULSE_SERVER=foo
3) zenity --info "Foo"

Clicking on OK (assuming your sound theme triggers a sound) will very 
frequently crash (about 4 times in 5 approx).

The backtraces I get from this (ulimit -c unlimited) are pretty useless:

(gdb) bt full
#0  0x00007f80174d9d9d in ?? ()
No symbol table info available.
#1  0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) quit

It could be I do not have the relevant debug packages installed, but I 
do have the GTK + canberra + alsa + pulse ones.

I suspect the lack of symbol table is a result of the GTK_MODULE loading 
system.


Making canberra-gtk-play crash is much harder, but it does happen too.

When this does happen, I get the following much more interesting backtrace:

(gdb) thread apply all bt full

Thread 2 (process 10896):
#0  0x00007f6b157a7eab in write () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007f6b15748f9a in _IO_file_write () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007f6b15748e7a in _IO_file_xsputn () from /lib64/libc.so.6
No symbol table info available.
#3  0x00007f6b1573e964 in fputs () from /lib64/libc.so.6
No symbol table info available.
#4  0x00007f6b160a8d82 in IA__g_printerr (format=<value optimized out>) 
at gmessages.c:1043
         charset = <value optimized out>
         args = {{gp_offset = 16, fp_offset = 48, overflow_arg_area = 
0x7fff1ef5b9a0, reg_save_area = 0x7fff1ef5b8c0}}
         string = (gchar *) 0x1b74600 "Failed to play sound: IO error\n"
         local_glib_printerr_func = (GPrintFunc) 0
         __PRETTY_FUNCTION__ = "IA__g_printerr"
#5  0x0000000000400f16 in main (argc=1, argv=0x7fff1ef5ba88) at 
canberra-gtk-play.c:141
         oc = <value optimized out>
         r = <value optimized out>
         event_id = (gchar *) 0x1afddc0 "menu-click"
         filename = (gchar *) 0x0
         event_description = (gchar *) 0x0
         cache_control = (gchar *) 0x0
         version = 0
         options = {{long_name = 0x4011f0 "id", short_name = 105 'i', 
flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x601998, description = 
0x40127f "Event sound identifier",
     arg_description = 0x401296 "STRING"}, {long_name = 0x4012a2 "file", 
short_name = 102 'f', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 
0x601990, description = 0x40129d "Play file",
     arg_description = 0x4012a7 "PATH"}, {long_name = 0x4012b8 
"description", short_name = 100 'd', flags = 0, arg = 
G_OPTION_ARG_STRING, arg_data = 0x601988,
     description = 0x4012ac "Event sound description", arg_description = 
0x401296 "STRING"}, {long_name = 0x401225 "cache-control", short_name = 
99 'c', flags = 0, arg = G_OPTION_ARG_STRING,
     arg_data = 0x601980, description = 0x401328 "Cache control 
(permanent, volatile, never)", arg_description = 0x401296 "STRING"}, 
{long_name = 0x4012c4 "loop", short_name = 108 'l', flags = 0,
     arg = G_OPTION_ARG_INT, arg_data = 0x601958, description = 0x401358 
"Loop how many times (detault: 1)", arg_description = 0x4012c9 
"INTEGER"}, {long_name = 0x4012d1 "version", short_name = 118 'v',
     flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x60197c, 
description = 0x401380 "Display version number and quit", 
arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\0', flags = 0,
     arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, 
arg_description = 0x0}}

Thread 1 (process 10898):
#0  0x00007f6b0f3b2d9d in ?? ()
No symbol table info available.
#1  0x0000000000000000 in ?? ()
No symbol table info available.




Sadly, as it is thread 1 that crashes, I don't think thread 2 actually 
helps...

Any advice?


Col



-- 

Colin Guthrie
gmane(at)colin.guthr.ie
http://colin.guthr.ie/

Day Job:
   Tribalogic Limited [http://www.tribalogic.net/]
Open Source:
   Mandriva Linux Contributor [http://www.mandriva.com/]
   PulseAudio Hacker [http://www.pulseaudio.org/]
   Trac Hacker [http://trac.edgewall.org/]

_______________________________________________
libcanberra-discuss mailing list
[email protected]
https://tango.0pointer.de/mailman/listinfo/libcanberra-discuss

Reply via email to