[Xfce-bugs] [Bug 8434] New: xfwm4 segfaulting on users first login.

bugzilla-daemon at xfce.org bugzilla-daemon at xfce.org
Tue Feb 7 20:42:20 CET 2012


https://bugzilla.xfce.org/show_bug.cgi?id=8434

             Bug #: 8434
           Summary: xfwm4 segfaulting on users first login.
    Classification: Xfce
           Product: Libxfce4ui
           Version: 4.8.0
          Platform: PC (x86)
        OS/Version: Linux
            Status: NEW
          Severity: major
          Priority: Medium
         Component: General
        AssignedTo: nick at xfce.org
        ReportedBy: george.mccollister at gmail.com
                CC: xfce-bugs at xfce.org


If I logout of xfce and return to gdm then remotely remove my users home
directory and login as that user again xfwm4 core dumps. If I logout and log
back in again everything is fine (as long as I dont delete the user's home dir
again).

In xfce-shortcuts-provider.c:290 (xfce_shortcuts_provider_property_changed)
provider->priv->custom_base_property is NULL which is causing the segfault. I'm
not sure why it is NULL, but maybe you should check because for some reason in
my case it is NULL. xfce4-settings seems to be core dumping at the same time.
Maybe it is happening in the same location?


Core was generated by `xfwm4'.
Program terminated with signal 11, Segmentation fault.
#0  __strlen_sse2 () at ../sysdeps/i386/i686/multiarch/strlen-sse2.S:46
46              cmpb    $0, (%edx)

(gdb) bt full
#0  __strlen_sse2 () at ../sysdeps/i386/i686/multiarch/strlen-sse2.S:46
No locals.
#1  0xb6e1d093 in g_str_has_prefix (str=0x8101dc8 "/providers", prefix=0x0) at
gstrfuncs.c:2949
        str_len = 10
        prefix_len = <value optimized out>
#2  0xb7801cea in xfce_shortcuts_provider_property_changed (channel=0x80f4e60,
property=0x8101dc8 "/providers", value=0x8101dd8, provider=0x80f4e40)
    at xfce-shortcuts-provider.c:290
        shortcut = <value optimized out>
        __PRETTY_FUNCTION__ = "xfce_shortcuts_provider_property_changed"
#3  0xb77f9caf in _xfconf_marshal_VOID__STRING_BOXED (closure=0x8102508,
return_value=0x0, n_param_values=3, param_values=0x80b5458,
invocation_hint=0xbfd61e80, 
    marshal_data=0x0) at xfconf-marshal.c:123
        callback = 0xb7801c60 <xfce_shortcuts_provider_property_changed>
        cc = 0x8102508
        data1 = <value optimized out>
        data2 = <value optimized out>
        __PRETTY_FUNCTION__ = "_xfconf_marshal_VOID__STRING_BOXED"
#4  0xb6ed6b72 in g_closure_invoke (closure=0x8102508, return_value=0x0,
n_param_values=3, param_values=0x80b5458, invocation_hint=0xbfd61e80) at
gclosure.c:767
        marshal = 0xb77f9c20 <_xfconf_marshal_VOID__STRING_BOXED>
        marshal_data = 0x0
        in_marshal = 135270656
#5  0xb6ee4483 in signal_emit_unlocked_R (node=0x80b8038, detail=550,
instance=0x80f4e60, emission_return=0x0, instance_and_params=0x80b5458) at
gsignal.c:3252
        tmp = <value optimized out>
        handler = 0x80f4f20
        accumulator = 0x0
        emission = {next = 0xbfd621c8, instance = 0x80f4e60, ihint = {signal_id
= 93, detail = 550, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN,
chain_type = 4}
        class_closure = 0x80dbea0
        handler_list = 0x80f4f20
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong
= 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0},
{v_int = 0, 
              v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 93
        max_sequential_handler_number = 19
        return_value_altered = 0
#6  0xb6eeb757 in g_signal_emit_valist (instance=0x80f4e60, signal_id=93,
detail=550, var_args=0xbfd62044 "\340", <incomplete sequence \362>) at
gsignal.c:2983
        instance_and_params = 0x80b5458
        signal_return_type = 4
        param_values = 0x80b546c
        node = 0x80b8038
        i = <value optimized out>
        n_params = 2
#7  0xb6eeb972 in g_signal_emit (instance=0x80f4e60, signal_id=93, detail=550)
at gsignal.c:3040
        var_args = 0xbfd6203c "pH\020\b\310\026\020\b\340", <incomplete
sequence \362>
#8  0xb77f54a2 in xfconf_channel_property_changed (cache=0x80f4e80,
channel_name=0x8104850 "xfce4-keyboard-shortcuts", property=0x8104870
"/providers", value=0x81016c8, 
    user_data=0x80f4e60) at xfconf-channel.c:391
        channel = <value optimized out>
#9  0xb77f9be6 in _xfconf_marshal_VOID__STRING_STRING_BOXED (closure=0x8103c18,
return_value=0x0, n_param_values=4, param_values=0x80b5060,
invocation_hint=0xbfd621d0, 
    marshal_data=0x0) at xfconf-marshal.c:85
        callback = 0xb77f53e0 <xfconf_channel_property_changed>
        cc = 0x8103c18
        data1 = <value optimized out>
        data2 = <value optimized out>
        __PRETTY_FUNCTION__ = "_xfconf_marshal_VOID__STRING_STRING_BOXED"
#10 0xb6ed6b72 in g_closure_invoke (closure=0x8103c18, return_value=0x0,
n_param_values=4, param_values=0x80b5060, invocation_hint=0xbfd621d0) at
gclosure.c:767
        marshal = 0xb77f9b50 <_xfconf_marshal_VOID__STRING_STRING_BOXED>
        marshal_data = 0x0
        in_marshal = 135272960
#11 0xb6ee4483 in signal_emit_unlocked_R (node=0x8100bd8, detail=0,
instance=0x80f4e80, emission_return=0x0, instance_and_params=0x80b5060) at
gsignal.c:3252
        tmp = <value optimized out>
        handler = 0x80f4f00
        accumulator = 0x0
        emission = {next = 0x0, instance = 0x80f4e80, ihint = {signal_id = 94,
detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type =
4}
        class_closure = 0x80b8020
        handler_list = 0x80f4f00
        return_accu = 0x0
        accu = {g_type = 0, data = {{v_int = 0, v_uint = 0, v_long = 0, v_ulong
= 0, v_int64 = 0, v_uint64 = 0, v_float = 0, v_double = 0, v_pointer = 0x0},
{v_int = 0, 
              v_uint = 0, v_long = 0, v_ulong = 0, v_int64 = 0, v_uint64 = 0,
v_float = 0, v_double = 0, v_pointer = 0x0}}}
        signal_id = 94
        max_sequential_handler_number = 19
        return_value_altered = 0
#12 0xb6eeb757 in g_signal_emit_valist (instance=0x80f4e80, signal_id=94,
detail=0, var_args=0xbfd62398 "h\032\020\b@") at gsignal.c:2983
        instance_and_params = 0x80b5060
        signal_return_type = 4
        param_values = 0x80b5074
        node = 0x8100bd8
        i = <value optimized out>
        n_params = 3
#13 0xb6eeb972 in g_signal_emit (instance=0x80f4e80, signal_id=94, detail=0) at
gsignal.c:3040
        var_args = 0xbfd6238c "h\032\020\b\037P\200\267l$h\032\020\b@"
#14 0xb77f4944 in xfconf_cache_set (cache=0x80f4e80, property=0xb780501f
"/providers", value=0xbfd6246c, error=0x0) at xfconf-cache.c:813
        proxy = 0x80dc688
        item = <value optimized out>
        old_item = <value optimized out>
#15 0xb77f50dd in xfconf_channel_set_internal (channel=0x80f4e60,
property=0xb780501f "/providers", value=0xbfd6246c) at xfconf-channel.c:407
        ret = <value optimized out>
        real_property = 0xb780501f "/providers"
        __PRETTY_FUNCTION__ = "xfconf_channel_set_internal"
#16 0xb77f780c in IA__xfconf_channel_set_arrayv (channel=0x80f4e60,
property=0xb780501f "/providers", values=0x8104350) at xfconf-channel.c:1719
        values_new = <value optimized out>
        val = {g_type = 135266240, data = {{v_int = 135283536, v_uint =
135283536, v_long = 135283536, v_ulong = 135283536, v_int64 = 135283536,
v_uint64 = 135283536, 
              v_float = 4.34125492e-34, v_double = 6.6838947585527527e-316,
v_pointer = 0x8104350}, {v_int = 134217728, v_uint = 134217728, v_long =
134217728, 
              v_ulong = 134217728, v_int64 = 134217728, v_uint64 = 134217728,
v_float = 3.85185989e-34, v_double = 6.631236846766476e-316, v_pointer =
0x8000000}}}
        ret = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__xfconf_channel_set_arrayv"
#17 0xb77f7eb5 in IA__xfconf_channel_set_string_list (channel=0x80f4e60,
property=0xb780501f "/providers", values=0x8102728) at xfconf-channel.c:1067
        arr = 0x8104350
        val = <value optimized out>
        i = <value optimized out>
        ret = <value optimized out>
        __PRETTY_FUNCTION__ = "IA__xfconf_channel_set_string_list"
#18 0xb780242e in xfce_shortcuts_provider_register (object=0x80f4e40) at
xfce-shortcuts-provider.c:266
        provider_names = 0x8103ef0
        i = <value optimized out>
        names = 0x8102728
        already_registered = 0
        name = 0x8101ad0 "xfwm4"
#19 xfce_shortcuts_provider_constructed (object=0x80f4e40) at
xfce-shortcuts-provider.c:163
        provider = 0x80f4e40
#20 0xb6edac5a in g_object_newv (object_type=135118200, n_parameters=1,
parameters=0x8102590) at gobject.c:1507
        cparams = <value optimized out>
        oparams = 0x8102718
        nqueue = <value optimized out>
        object = 0x80f4e40
        class = 0x8100b70
        unref_class = 0x0
        slist = <value optimized out>
        n_total_cparams = <value optimized out>
        n_cparams = <value optimized out>
        n_oparams = 0
        n_cvalues = <value optimized out>
        cvalues = <value optimized out>
        clist = <value optimized out>
        newly_constructed = 1
        i = <value optimized out>
        __PRETTY_FUNCTION__ = "g_object_newv"
#21 0xb6edb66b in g_object_new_valist (object_type=135118200,
first_property_name=0xb7804f81 "name", var_args=<value optimized out>) at
gobject.c:1596
        class = 0x8100b70
        params = 0x8102590
        name = <value optimized out>
        object = <value optimized out>
        n_params = <value optimized out>
        n_alloced_params = <value optimized out>
        __PRETTY_FUNCTION__ = "g_object_new_valist"
#22 0xb6edb78f in g_object_new (object_type=135118200,
first_property_name=0xb7804f81 "name") at gobject.c:1311
        var_args = 0xbfd626f8 "ߕ\b\b"
#23 0xb7801df8 in xfce_shortcuts_provider_new (name=0x80895df "xfwm4") at
xfce-shortcuts-provider.c:318
No locals.
#24 0x0807eb8a in initSettings (screen_info=0x80d33c0) at settings.c:1022
        keymap = <value optimized out>
        display_info = 0x80d1438
        names = 0x0
        val = 0
        i = 0
        __PRETTY_FUNCTION__ = "initSettings"
#25 0x0806ba53 in initialize (argc=1, argv=0xbfd628f4) at main.c:462
        screen_info = 0x80d33c0
        gscr = <value optimized out>
        ws = 134762073
        i = <value optimized out>
        nscreens = 1
#26 main (argc=1, argv=0xbfd628f4) at main.c:589
        daemon_mode = 0
        version = 0
        replace_wm = 0
        status = 0
        context = <value optimized out>
        error = 0x0
        option_entries = {{long_name = 0x808960c "daemon", short_name = 0
'\000', flags = 0, arg = G_OPTION_ARG_NONE, arg_data = 0xbfd6282c, 
            description = 0x8089613 "Fork to the background", arg_description =
0x0}, {long_name = 0x808962a "compositor", short_name = 0 '\000', flags = 0, 
            arg = G_OPTION_ARG_CALLBACK, arg_data = 0x806b680, description =
0x8089635 "Set the compositor mode", arg_description = 0x808964d
"on|off|auto"}, {
            long_name = 0x8089659 "replace", short_name = 0 '\000', flags = 0,
arg = G_OPTION_ARG_NONE, arg_data = 0xbfd62824, 
            description = 0x808977c "Replace the existing window manager",
arg_description = 0x0}, {long_name = 0x8089661 "version", short_name = 86 'V',
flags = 0, 
            arg = G_OPTION_ARG_NONE, arg_data = 0xbfd62828, description =
0x80897a0 "Print version information and exit", 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}}

--- Comment #1 from George McCollister <george.mccollister at gmail.com> 2012-02-07 20:42:20 CET ---
I've looked into it a bit more. I was getting some nuisance errors logged by
gdm on my distro so I rebuilt glib with --enable-debug=no. It looks like it may
cause g_return_val_if_fail not to perform the check in g_str_has_prefix. I was
under the impression that setting --enable-debug=no simply stopped those
messages from going to syslog.

If you don't intend for xfce to work when glib is built with --enable-debug=no
then I think you can close this and mark as won't fix. However, if you intend
for xfce to work when glib is built with --enable-debug=no you should probably
do something about this.

-- 
Configure bugmail: https://bugzilla.xfce.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.


More information about the Xfce-bugs mailing list