Bug 648558

Summary: yast sw module crashes from root console
Product: [openSUSE] openSUSE 11.4 Reporter: Jiri Slaby <jslaby>
Component: GNOMEAssignee: E-mail List <gnome-bugs>
Status: RESOLVED DUPLICATE QA Contact: E-mail List <qa-bugs>
Severity: Normal    
Priority: P5 - None CC: forgotten_7L3tOtZIov, forgotten_cAXlJ_FoSf, forgotten_h13THG8RK1, terjejhanssen
Version: Milestone 3 of 6   
Target Milestone: ---   
Hardware: All   
OS: Other   
Whiteboard:
Found By: --- Services Priority:
Business Priority: Blocker: ---
Marketing QA Status: --- IT Deployment: ---

Description Jiri Slaby 2010-10-22 07:51:14 UTC
When yast sw module is run from within a root console, it crashes:
# /sbin/yast2 sw_single
**
GLib-GIO:ERROR:gdbusconnection.c:2152:initable_init: assertion failed: (connection->initialization_error == NULL)
YaST got signal 6 at YCP file Wizard.ycp:707
/sbin/yast2: line 399: 27062 Aborted                 $ybindir/y2base $module "$@" "$SELECTED_GUI" $Y2_GEOMETRY $Y2UI_ARGS
# gdb --args /usr/lib/YaST2/bin/y2base sw_single qt

#0  0x00007ffff5562965 in raise () from /lib64/libc.so.6
No symbol table info available.
#1  0x00007ffff5563e66 in abort () from /lib64/libc.so.6
No symbol table info available.
#2  0x00007fffe80b3f34 in g_assertion_message (domain=<value optimized out>, file=<value optimized out>, 
    line=<value optimized out>, func=0x7fffe4f4924d "initable_init", 
    message=0x14e57b0 "assertion failed: (connection->initialization_error == NULL)") at gtestutils.c:1358
        lstr = "2152\000\177\000\000\070Q\005\350\377\177\000\000I\200p\366\000\000\000\000\060\210\364\344\377\177\000"
        s = 0x14e27e0 ""
#3  0x00007fffe80b44d0 in g_assertion_message_expr (domain=0x7fffe4f2e081 "GLib-GIO", file=0x7fffe4f47099 "gdbusconnection.c", 
    line=2152, func=0x7fffe4f4924d "initable_init", expr=<value optimized out>) at gtestutils.c:1369
        s = 0x0
#4  0x00007fffe4f02d4d in initable_init (initable=<value optimized out>, cancellable=0x0, error=0x7fffe60a8ce0)
    at gdbusconnection.c:2152
        connection = 0x1440810
        ret = 0
        __PRETTY_FUNCTION__ = "initable_init"
#5  0x00007fffe4f03591 in g_bus_get_sync (bus_type=<value optimized out>, cancellable=0x0, error=0x7fffe60a8ce0)
    at gdbusconnection.c:6121
        connection = 0x1440810
        __PRETTY_FUNCTION__ = "g_bus_get_sync"
#6  0x00007fffe519513d in ?? () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#7  0x00007fffe51953d2 in gconf_activate_server () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#8  0x00007fffe519ee34 in ?? () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#9  0x00007fffe519f532 in ?? () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#10 0x00007fffe519f931 in ?? () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#11 0x00007fffe51a2932 in gconf_engine_get_fuller () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#12 0x00007fffe51a2cdc in gconf_engine_get_entry () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#13 0x00007fffe51a597e in ?? () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#14 0x00007fffe51a801d in ?? () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#15 0x00007fffe51a8613 in gconf_client_get_bool () from /usr/lib64/libgconf-2.so.4
No symbol table info available.
#16 0x00007fffe8ff28ec in ?? () from /usr/lib64/libQtGui.so.4
No symbol table info available.
#17 0x00007fffe8cf4351 in ?? () from /usr/lib64/libQtGui.so.4
No symbol table info available.
#18 0x00007fffe8c7ff75 in QApplicationPrivate::construct(_XDisplay*, unsigned long, unsigned long) ()
   from /usr/lib64/libQtGui.so.4
No symbol table info available.
#19 0x00007fffe8c80861 in QApplication::QApplication(int&, char**, int) () from /usr/lib64/libQtGui.so.4
No symbol table info available.
#20 0x00007fffe9c964de in YQUI::initUI() () from /usr/lib64/YaST2/plugin/libpy2qt.so.2
No symbol table info available.
#21 0x00007fffe9c973f4 in YQUI::idleLoop(int) () from /usr/lib64/YaST2/plugin/libpy2qt.so.2
No symbol table info available.
#22 0x00007ffff368644c in YUI::uiThreadMainLoop() () from /usr/lib64/libyui.so.3
No symbol table info available.
#23 0x00007ffff36865ce in start_ui_thread(void*) () from /usr/lib64/libyui.so.3
No symbol table info available.
#24 0x00007ffff6768a4f in start_thread () from /lib64/libpthread.so.0
No symbol table info available.
#25 0x00007ffff56009fd in clone () from /lib64/libc.so.6
No symbol table info available.
#26 0x0000000000000000 in ?? ()
No symbol table info available.
#1  0x00007ffff5563e66 in abort () from /lib64/libc.so.6
#2  0x00007fffe80b3f34 in g_assertion_message (domain=<value optimized out>, file=<value optimized out>, 
    line=<value optimized out>, func=0x7fffe4f4924d "initable_init", 
    message=0x14e57b0 "assertion failed: (connection->initialization_error == NULL)") at gtestutils.c:1358
1358	gtestutils.c: Adresář nebo soubor neexistuje.
	in gtestutils.c
Comment 1 Thomas Göttlicher 2010-10-25 06:51:52 UTC
Could you please run qtconfig as user root and switch the GUI Style to Plastique. Does then the issue this occur?
Comment 2 Jiri Slaby 2010-10-25 08:50:45 UTC
Oops, qtconfig crashes too:
#2  0x00007fffe80b3f34 in g_assertion_message (domain=<value optimized out>, file=<value optimized out>, 
    line=<value optimized out>, func=0x7fffe4f4924d "initable_init", 
    message=0x14e57b0 "assertion failed: (connection->initialization_error == NULL)") at gtestutils.c:1358
        lstr = "2152\000\177\000\000\070Q\005\350\377\177\000\000I\200p\366\000\000\000\000\060\210\364\344\377\177\000"
        s = 0x14e27e0 ""
#3  0x00007fffe80b44d0 in g_assertion_message_expr (domain=0x7fffe4f2e081 "GLib-GIO", file=0x7fffe4f47099 "gdbusconnection.c", 
    line=2152, func=0x7fffe4f4924d "initable_init", expr=<value optimized out>) at gtestutils.c:1369
        s = 0x0
#4  0x00007fffe4f02d4d in initable_init (initable=<value optimized out>, cancellable=0x0, error=0x7fffe60a8ce0)
    at gdbusconnection.c:2152
        connection = 0x1440810
        ret = 0
        __PRETTY_FUNCTION__ = "initable_init"
#5  0x00007fffe4f03591 in g_bus_get_sync (bus_type=<value optimized out>, cancellable=0x0, error=0x7fffe60a8ce0)
    at gdbusconnection.c:6121
        connection = 0x1440810
        __PRETTY_FUNCTION__ = "g_bus_get_sync"

These are dot directories in ~root:
# ls -d .*/ -1
../
./
.cgdb/
.config/
.dbus/
.gconf/
.gconfd/
.gnupg/
.kbd/
.lftp/
.links/
.local/
.mcop/
.mplayer/
.pulse/
.rcc/
.ssh/
.texmf-config/
.texmf-var/
.tgdb/
.wireshark/

Should I delete some?
Comment 3 Thomas Göttlicher 2010-10-25 11:43:09 UTC
It seems YaST isn't involved at all.
Comment 4 Forgotten User cAXlJ_FoSf 2010-11-17 16:06:13 UTC
It is a problem in glib, when DBUS_SESSION_BUS_ADDRESS is set to bus of another user an assertion in initable_init in gio/gdbusconnection.c fails aborting the whole program. This does not only affect YaST but any application using DBus via glib. I suspect http://git.gnome.org/browse/glib/commit/?id=aab6d9ed1c54f215838da7939a97e33d46d94036 introduced this behavior but haven't fully investigated it.

As a workaround unset DBUS_SESSION_BUS_ADDRESS after su'ing to root (this only happens when not using a login shell and the environment of the previous user is preserved).
Comment 5 Forgotten User cAXlJ_FoSf 2010-11-17 16:12:44 UTC
This probably warrants a new bugreport but for now I'll reassign to GNOME since glib shouldn't abort on an invalid DBUS_SESSION_BUS_ADDRESS value.
Comment 6 Forgotten User cAXlJ_FoSf 2010-11-17 16:22:02 UTC
*** Bug 643374 has been marked as a duplicate of this bug. ***
Comment 7 Jiri Slaby 2010-11-17 19:12:32 UTC
(In reply to comment #4)
> As a workaround unset DBUS_SESSION_BUS_ADDRESS

Yes, this works. Thanks.
Comment 8 Forgotten User cAXlJ_FoSf 2010-11-24 14:42:20 UTC
Created a separate bug.

*** This bug has been marked as a duplicate of bug 655751 ***
Comment 9 Terje J. Hanssen 2011-01-15 22:55:40 UTC
Become super user first with 'su -' or 'su -l' does next start the applications correctly afterwards. Tested in 11.4 x86_64 Milestone 5/Gnome 2.32.1