Bug#681837: d-conf: gnome-session crashes in gvdb_table_is_valid() with default settings

Cyril Brulebois kibi at debian.org
Tue Jul 17 00:28:08 UTC 2012


Package: d-conf
Version: 0.12.1-2
Severity: serious
Tags: d-i
Justification: makes default installation unusable

Hi,

tagging with d-i since the default desktop installation is unusable and
not easy to debug (along with gdm3 bug #681830). Using nasty techniques
like diverting /usr/bin/gnome-session away and using a shell wrapper to
intercept the PID so that I could attach gdb, I could get to the
attached backtrace.

The trivial attached patch makes gnome-session stop crashing, which
should make it possible to debug what's wrong with the default settings.
I'll try and figure out the right package to assign the next bug report
to (which might be gnome-session).

FTR, the attached patch means I get to see the “Oops, something went
wrong” screen, instead of a flickering display with gdm3 spawning X
instances as hell.

Mraw,
KiBi.
-------------- next part --------------
(gdb) cont
Continuing.
process 9451 is executing new program: /usr/bin/gnome-session.diverted
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/i386-linux-gnu/i686/cmov/libthread_db.so.1".

Program received signal SIGSEGV, Segmentation fault.
0xb6d0e956 in gvdb_table_is_valid (table=0x80d1040) at ../gvdb/gvdb-reader.c:572
572	  return !!*table->data;
(gdb) bt full
#0  0xb6d0e956 in gvdb_table_is_valid (table=0x80d1040) at ../gvdb/gvdb-reader.c:572
No locals.
#1  0xb6d0c903 in dconf_engine_refresh_system (engine=0x80c4720, i=1) at ../engine/dconf-engine.c:170
No locals.
#2  0xb6d0caea in dconf_engine_refresh (engine=0x80c4720) at ../engine/dconf-engine.c:209
        i = 1
#3  0xb6d0cb7b in dconf_engine_get_state (engine=0x80c4720) at ../engine/dconf-engine.c:231
        state = 13211598609864785088
#4  0xb6d0fb7d in outstanding_watch_new (dcsb=0x80f7c18, name=0x8101b60 "/org/gnome/gnome-session/") at dconfsettingsbackend.c:538
        watch = 0x808fca8
#5  0xb6d0fdda in dconf_settings_backend_subscribe (backend=0x80f7c18, name=0x8101b60 "/org/gnome/gnome-session/") at dconfsettingsbackend.c:626
        dcsb = 0x80f7c18
#6  0xb767a157 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#7  0xb767db90 in ?? () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#8  0xb75929a2 in g_object_newv () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#9  0xb7592d4a in g_object_new_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#10 0xb7592f90 in g_object_new () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#11 0xb767e8c1 in g_settings_new () from /usr/lib/i386-linux-gnu/libgio-2.0.so.0
No symbol table info available.
#12 0x0806d5c4 in gsm_manager_init (manager=0x80d2800) at gsm-manager.c:2764
No locals.
#13 0xb75ae507 in g_type_create_instance () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#14 0xb7590cf1 in ?? () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#15 0x0806cd0d in gsm_manager_constructor (type=135274632, n_construct_properties=3, construct_properties=0x80e9a40) at gsm-manager.c:2497
        manager = 0xb75cdff4
#16 0xb75924fd in g_object_newv () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#17 0xb7592d4a in g_object_new_valist () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#18 0xb7592f90 in g_object_new () from /usr/lib/i386-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#19 0x0806d8ae in gsm_manager_new (client_store=0x808fb68, failsafe=1) at gsm-manager.c:2831
        res = 135074712
#20 0x08065dad in main (argc=1, argv=0xbffffb34) at main.c:343
        sa = {__sigaction_handler = {sa_handler = 0x1, sa_sigaction = 0x1}, sa_mask = {__val = {0 <repeats 32 times>}}, sa_flags = 0, sa_restorer = 0xb744aff4}
        error = 0x0
        display_str = 0x80cb938 "\001"
        manager = 0xbffffae0
        client_store = 0x808fb68
        xsmp_server = 0x80a2940
        signal_handler = 0xb7fffac0
        override_autostart_dirs = 0x0
        session_name = 0x0
        entries = {{long_name = 0x807c2d1 "autostart", short_name = 97 'a', flags = 0, arg = G_OPTION_ARG_STRING_ARRAY, arg_data = 0x808ab84, description = 0x807c2dc "Override standard autostart directories", 
            arg_description = 0x807c304 "AUTOSTART_DIR"}, {long_name = 0x807c312 "session", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_STRING, arg_data = 0x808ab80, description = 0x807c31a "Session to use", 
            arg_description = 0x807c329 "SESSION_NAME"}, {long_name = 0x807c336 "debug", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x808ab78, description = 0x807c33c "Enable debugging code", 
            arg_description = 0x0}, {long_name = 0x807c352 "failsafe", short_name = 102 'f', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x808ab70, description = 0x807c35c "Do not load user-specified applications", 
            arg_description = 0x0}, {long_name = 0x807c384 "version", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x808ab74, description = 0x807c38c "Version of this application", 
            arg_description = 0x0}, {long_name = 0x807c3a8 "whale", short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x808ab7c, description = 0x807c3b0 "Show the fail whale dialog for testing", 
            arg_description = 0x0}, {long_name = 0x0, short_name = 0 '\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0x0, description = 0x0, arg_description = 0x0}}
(gdb) p table->data
$1 = (const gchar *) 0x0
(gdb) quit
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 02_avoid_trivial_segfaults.patch
Type: text/x-diff
Size: 298 bytes
Desc: not available
URL: <http://lists.alioth.debian.org/pipermail/pkg-gnome-maintainers/attachments/20120717/0c90ed5c/attachment.patch>


More information about the pkg-gnome-maintainers mailing list