Thanks for your patch, I tested it, but I can still trigger the crash with:
$ notify-send lala ; sleep 5; gconftool -t string -s /apps/notification-daemon/theme standard ; notify-send lala; gconftool -t string -s /apps/notification-daemon/theme ubuntu; sleep 10; notify-send lala
(sometimes this needs to be run a couple of times). The backtrace: (gdb) bt full #0 0x00007fd1f9b356a0 in strcmp () from /lib/libc.so.6 No symbol table info available. #1 0x00007fd1fa0a1149 in IA__g_str_equal (v1=0x7fd1f164a5d8, v2=0x7fd1ef52d5d8) at /build/buildd/glib2.0-2.20.0/glib/gstring.c:77 No locals. #2 0x00007fd1fa06ed59 in IA__g_hash_table_lookup (hash_table=0x1409450, key=0x7fd1ef52d5d8) at /build/buildd/glib2.0-2.20.0/glib/ghash.c:213 node = <value optimized out> node_index = 3169 __PRETTY_FUNCTION__ = "IA__g_hash_table_lookup" #3 0x00007fd1fa068b25 in IA__g_intern_static_string ( string=0x7fd1ef52d5d8 "SexyUrlLabel") at /build/buildd/glib2.0-2.20.0/glib/gdataset.c:625 quark = <value optimized out> result = ( const gchar *) 0x7fd1f9e2fa10 "AWAVAUATUSH\211�H\203�\bdD\213,%\220" #4 0x00007fd1ef52b458 in sexy_url_label_get_type () from /usr/lib/libsexy.so.2 No symbol table info available. #5 0x00007fd1ef52ba29 in sexy_url_label_new () from /usr/lib/libsexy.so.2 No symbol table info available. #6 0x00007fd1f1851296 in create_notification () from /usr/lib/notification-daemon-1.0/engines/libubuntu.so No symbol table info available. #7 0x0000000000406dad in theme_create_notification ( url_clicked_cb=0x4058f0 <url_clicked_cb>) at engines.c:183 engine = (ThemeEngine *) 0x1756a00 nw = <value optimized out> #8 0x000000000040487c in notify_daemon_notify_handler (daemon=0x15f0860, app_name=0x7fd1ef52d5d8 "SexyUrlLabel", id=0, icon=0x1588d10 "", summary=0x1588d60 "lala", body=0x1588e50 "", actions=0x177b740, hints=0x15fd280, timeout=-1, context=0x1756870) at daemon.c:1093 priv = (NotifyDaemonPrivate *) 0x15f0880 nt = (NotifyTimeout *) 0x0 nw = (GtkWindow *) 0x4082a0 use_pos_data = <value optimized out> new_notification = <value optimized out> x = <value optimized out> y = <value optimized out> window_xid = <value optimized out> return_id = <value optimized out> sender = <value optimized out> sound_file = <value optimized out> sound_enabled = <value optimized out> __PRETTY_FUNCTION__ = "notify_daemon_notify_handler" #9 0x00000000004061fc in dbus_glib_marshal_notification_daemon_VOID__STRING_UINT_STRING_STRING_STRING_BOXED_BOXED_INT_POINTER (closure=0x7fff042d0030, return_value=<value optimized out>, n_param_values=<value optimized out>, param_values=0x176ee00, invocation_hint=<value optimized out>, marshal_data=0x404830) at notificationdaemon-dbus-glue.h:100 data1 = (gpointer) 0x15f0860 data2 = <value optimized out> __PRETTY_FUNCTION__ = "dbus_glib_marshal_notification_daemon_VOID__STRING_UINT_STRING_STRING_STRING_BOXED_BOXED_INT_POINTER" #10 0x00007fd1fbe9e12b in ?? () from /usr/lib/libdbus-glib-1.so.2 No symbol table info available. #11 0x00007fd1fbc70081 in ?? () from /lib/libdbus-1.so.3 No symbol table info available. #12 0x00007fd1fbc62966 in dbus_connection_dispatch () from /lib/libdbus-1.so.3 No symbol table info available. #13 0x00007fd1fbe9ab55 in ?? () from /usr/lib/libdbus-glib-1.so.2 No symbol table info available. #14 0x00007fd1fa07d0ca in IA__g_main_context_dispatch (context=0x1583db0) at /build/buildd/glib2.0-2.20.0/glib/gmain.c:1814 No locals. #15 0x00007fd1fa0807a0 in g_main_context_iterate (context=0x1583db0, block=1, dispatch=1, self=<value optimized out>) at /build/buildd/glib2.0-2.20.0/glib/gmain.c:2448 max_priority = 0 timeout = 0 some_ready = 1 nfds = 8 allocated_nfds = <value optimized out> fds = (GPollFD *) 0x17346b0 __PRETTY_FUNCTION__ = "g_main_context_iterate" #16 0x00007fd1fa080c6d in IA__g_main_loop_run (loop=0x15fe590) at /build/buildd/glib2.0-2.20.0/glib/gmain.c:2656 self = (GThread *) 0x14074d0 __PRETTY_FUNCTION__ = "IA__g_main_loop_run" #17 0x00007fd1fb00da07 in IA__gtk_main () at /build/buildd/gtk+2.0-2.16.0/gtk/gtkmain.c:1205 tmp_list = (GList *) 0x1581498 functions = (GList *) 0x0 init = (GtkInitFunction *) 0x15f0860 loop = <value optimized out> #18 0x0000000000405cd6 in main (argc=1, argv=0x7fff042d0648) at daemon.c:1470 connection = <value optimized out> bus_proxy = <value optimized out> error = (GError *) 0x0 request_name_result = 1
Thanks for your patch, I tested it, but I can still trigger the crash with:
$ notify-send lala ; sleep 5; gconftool -t string -s /apps/notificat ion-daemon/ theme standard ; notify-send lala; gconftool -t string -s /apps/notificat ion-daemon/ theme ubuntu; sleep 10; notify-send lala
(sometimes this needs to be run a couple of times). The backtrace: 0x7fd1ef52d5d8) at /build/ buildd/ glib2.0- 2.20.0/ glib/gstring. c:77 table_lookup (hash_table= 0x1409450, 0x7fd1ef52d5d8) at /build/ buildd/ glib2.0- 2.20.0/ glib/ghash. c:213 FUNCTION_ _ = "IA__g_ hash_table_ lookup" static_ string ( 0x7fd1ef52d5d8 "SexyUrlLabel") buildd/ glib2.0- 2.20.0/ glib/gdataset. c:625 211�H\203� \bdD\213, %\220" label_get_ type () from /usr/lib/ libsexy. so.2 libsexy. so.2 notification- daemon- 1.0/engines/ libubuntu. so notification ( clicked_ cb=0x4058f0 <url_clicked_cb>) at engines.c:183 daemon_ notify_ handler (daemon=0x15f0860, name=0x7fd1ef52 d5d8 "SexyUrlLabel", id=0, icon=0x1588d10 "", 0x1588d60 "lala", body=0x1588e50 "", actions=0x177b740, 0x15fd280, timeout=-1, context=0x1756870) at daemon.c:1093 ivate *) 0x15f0880 FUNCTION_ _ = "notify_ daemon_ notify_ handler" marshal_ notification_ daemon_ VOID__STRING_ UINT_STRING_ STRING_ STRING_ BOXED_BOXED_ INT_POINTER (closure= 0x7fff042d0030, value=< value optimized out>, n_param_ values= <value optimized out>, values= 0x176ee00, invocation_ hint=<value optimized out>, data=0x404830) at notificationdae mon-dbus- glue.h: 100 FUNCTION_ _ = "dbus_glib_ marshal_ notification_ daemon_ VOID__STRING_ UINT_STRING_ STRING_ STRING_ BOXED_BOXED_ INT_POINTER" libdbus- glib-1. so.2 _dispatch () from /lib/libdbus-1.so.3 libdbus- glib-1. so.2 context_ dispatch (context=0x1583db0) buildd/ glib2.0- 2.20.0/ glib/gmain. c:1814 context_ iterate (context=0x1583db0, block=1, buildd/ glib2.0- 2.20.0/ glib/gmain. c:2448 FUNCTION_ _ = "g_main_ context_ iterate" buildd/ glib2.0- 2.20.0/ glib/gmain. c:2656 FUNCTION_ _ = "IA__g_ main_loop_ run" buildd/ gtk+2.0- 2.16.0/ gtk/gtkmain. c:1205 0648) at daemon.c:1470 name_result = 1
(gdb) bt full
#0 0x00007fd1f9b356a0 in strcmp () from /lib/libc.so.6
No symbol table info available.
#1 0x00007fd1fa0a1149 in IA__g_str_equal (v1=0x7fd1f164a5d8,
v2=
No locals.
#2 0x00007fd1fa06ed59 in IA__g_hash_
key=
node = <value optimized out>
node_index = 3169
__PRETTY_
#3 0x00007fd1fa068b25 in IA__g_intern_
string=
at /build/
quark = <value optimized out>
result = (
const gchar *) 0x7fd1f9e2fa10 "AWAVAUATUSH\
#4 0x00007fd1ef52b458 in sexy_url_
No symbol table info available.
#5 0x00007fd1ef52ba29 in sexy_url_label_new () from /usr/lib/
No symbol table info available.
#6 0x00007fd1f1851296 in create_notification ()
from /usr/lib/
No symbol table info available.
#7 0x0000000000406dad in theme_create_
url_
engine = (ThemeEngine *) 0x1756a00
nw = <value optimized out>
#8 0x000000000040487c in notify_
app_
summary=
hints=
priv = (NotifyDaemonPr
nt = (NotifyTimeout *) 0x0
nw = (GtkWindow *) 0x4082a0
use_pos_data = <value optimized out>
new_notification = <value optimized out>
x = <value optimized out>
y = <value optimized out>
window_xid = <value optimized out>
return_id = <value optimized out>
sender = <value optimized out>
sound_file = <value optimized out>
sound_enabled = <value optimized out>
__PRETTY_
#9 0x00000000004061fc in dbus_glib_
return_
param_
marshal_
data1 = (gpointer) 0x15f0860
data2 = <value optimized out>
__PRETTY_
#10 0x00007fd1fbe9e12b in ?? () from /usr/lib/
No symbol table info available.
#11 0x00007fd1fbc70081 in ?? () from /lib/libdbus-1.so.3
No symbol table info available.
#12 0x00007fd1fbc62966 in dbus_connection
No symbol table info available.
#13 0x00007fd1fbe9ab55 in ?? () from /usr/lib/
No symbol table info available.
#14 0x00007fd1fa07d0ca in IA__g_main_
at /build/
No locals.
#15 0x00007fd1fa0807a0 in g_main_
dispatch=1, self=<value optimized out>)
at /build/
max_priority = 0
timeout = 0
some_ready = 1
nfds = 8
allocated_nfds = <value optimized out>
fds = (GPollFD *) 0x17346b0
__PRETTY_
#16 0x00007fd1fa080c6d in IA__g_main_loop_run (loop=0x15fe590)
at /build/
self = (GThread *) 0x14074d0
__PRETTY_
#17 0x00007fd1fb00da07 in IA__gtk_main ()
at /build/
tmp_list = (GList *) 0x1581498
functions = (GList *) 0x0
init = (GtkInitFunction *) 0x15f0860
loop = <value optimized out>
#18 0x0000000000405cd6 in main (argc=1, argv=0x7fff042d
connection = <value optimized out>
bus_proxy = <value optimized out>
error = (GError *) 0x0
request_