mate-desktop / mate-settings-daemon

MATE settings daemon
https://mate-desktop.org
GNU General Public License v2.0
43 stars 48 forks source link

MsdHousekeepingManager plugin: "free(): invalid pointer" crash #410

Open rdiez opened 9 months ago

rdiez commented 9 months ago

On Ubuntu MATE 22.04.3, with the standard package version 1.26.0-1ubuntu1, mate-settings-daemon seems to crash every day on start-up. The call stack is:

#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140566015160064) at ./nptl/pthread_kill.c:44
        tid = <optimized out>
        ret = 0
        pd = 0x7fd81366af00

                    old_mask = {__val = {8, 93826868145664, 4, 140566033708704, 8, 140566032764179, 206158430240, 140735021306208, 140735021306016, 9011396951244848640, 17, 93826869508528, 93826869508628, 93826868145664, 1, 1}}
        ret = <optimized out>
#1  __pthread_kill_internal (signo=6, threadid=140566015160064) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140566015160064, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007fd814642476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
        ret = <optimized out>
#4  0x00007fd8146287f3 in __GI_abort () at ./stdlib/abort.c:79
        save_stage = 1

                  act = {__sigaction_handler = {sa_handler = 0x4, sa_sigaction = 0x4}, sa_mask = {__val = {8, 0, 140566046862525, 0, 140566046879680, 4294967295, 8, 8, 140566048038930, 140566047763776, 3, 93826858298288, 140566046863289, 140566047230738, 140566047221265, 18446744073709551615}}, sa_flags = 357567053, sa_restorer = 0x5555c53a39b0}
        sigs = {__val = {32, 140566032176211, 140566033692160, 140566032019882, 8, 8, 93826868145664, 140566046879545, 0, 8, 93826863835856, 4, 140735021306384, 140566047156703, 8, 0}}
#5  0x00007fd814689676 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7fd8147dbb77 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
        ap = {{gp_offset = 24, fp_offset = 0, overflow_arg_area = 0x7fff6cf3d370, reg_save_area = 0x7fff6cf3d300}}
        fd = <optimized out>
        list = <optimized out>
        nlist = <optimized out>
        cp = <optimized out>
#6  0x00007fd8146a0cfc in malloc_printerr (str=str@entry=0x7fd8147d9744 "free(): invalid pointer") at ./malloc/malloc.c:5664
#7  0x00007fd8146a2a44 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at ./malloc/malloc.c:4439
        size = 0
        fb = <optimized out>
        nextchunk = <optimized out>
        nextsize = <optimized out>
        nextinuse = <optimized out>
        prevsize = <optimized out>
        bck = <optimized out>
        fwd = <optimized out>
        __PRETTY_FUNCTION__ = "_int_free"
#8  0x00007fd8146a5453 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3391
        ar_ptr = <optimized out>
        p = <optimized out>
        err = 25
#9  0x00007fd8154bbb20 in g_slist_foreach (list=<optimized out>, list@entry=0x5555c4fc9140 = {...}, func=0x7fd8154a4d50 <g_free>, user_data=user_data@entry=0x0) at ../../../glib/gslist.c:885
        next = 0x0
#10 0x00007fd8154bfa8f in g_slist_free_full (list=0x5555c4fc9140 = {...}, free_func=<optimized out>) at ../../../glib/gslist.c:198
#11 0x00007fd8100ccc2e in msd_ldsm_clean () at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-disk-space.c:699
#12 0x00007fd8100ccda2 in msd_housekeeping_manager_stop (manager=<optimized out>)
    at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-housekeeping-manager.c:301
#13 0x00007fd8100cce20 in msd_housekeeping_manager_finalize (object=0x5555c5251f80 [MsdHousekeepingManager])
    at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-housekeeping-manager.c:271
#14 0x00007fd8155a6f9d in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3690
        weak_locations = <optimized out>
        nqueue = 0x5555c4fdfcb0
        old_ref = <optimized out>
        object = 0x5555c5251f80 [MsdHousekeepingManager]
        __func__ = "g_object_unref"
#15 g_object_unref (_object=0x5555c5251f80) at ../../../gobject/gobject.c:3565
        object = 0x5555c5251f80 [MsdHousekeepingManager]
        __func__ = "g_object_unref"
#16 0x00007fd8100ccf86 in msd_housekeeping_plugin_finalize (object=0x5555c5251f60 [MsdHousekeepingPlugin])
    at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-housekeeping-plugin.c:62
        plugin = <optimized out>
        __func__ = "msd_housekeeping_plugin_finalize"
#17 0x00007fd8155a6f9d in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3690
        weak_locations = <optimized out>
        nqueue = 0x5555c531ae00
        old_ref = <optimized out>
        object = 0x5555c5251f60 [MsdHousekeepingPlugin]
        __func__ = "g_object_unref"
#18 g_object_unref (_object=0x5555c5251f60) at ../../../gobject/gobject.c:3565
        object = 0x5555c5251f60 [MsdHousekeepingPlugin]
        __func__ = "g_object_unref"
#19 0x00005555c48f3d30 in mate_settings_plugin_info_finalize (object=0x5555c51f3870 [MateSettingsPluginInfo]) at ./mate-settings-daemon/mate-settings-plugin-info.c:99
        info = 0x5555c51f3870 [MateSettingsPluginInfo]
        __func__ = "mate_settings_plugin_info_finalize"
#20 0x00007fd8155a6f9d in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3690
        weak_locations = <optimized out>
        nqueue = 0x5555c5326410
        old_ref = <optimized out>
        object = 0x5555c51f3870 [MateSettingsPluginInfo]
        __func__ = "g_object_unref"
#21 g_object_unref (_object=0x5555c51f3870) at ../../../gobject/gobject.c:3565
        object = 0x5555c51f3870 [MateSettingsPluginInfo]
        __func__ = "g_object_unref"
#22 0x00007fd8154bbb20 in g_slist_foreach (list=<optimized out>, func=func@entry=0x5555c48f3ff0 <_unload_plugin>, user_data=user_data@entry=0x0) at ../../../glib/gslist.c:885
        next = 0x5555c4fbe080 = {0x5555c525dd60, 0x5555c525db60, 0x5555c525d860, 0x5555c525dbe0}
#23 0x00005555c48f2b11 in _unload_all (manager=0x5555c51607a0 [MateSettingsManager]) at ./mate-settings-daemon/mate-settings-manager.c:302
        error = 0x0
        ret = <optimized out>
#24 mate_settings_manager_stop (manager=0x5555c51607a0 [MateSettingsManager]) at ./mate-settings-daemon/mate-settings-manager.c:379
        error = 0x0
        ret = <optimized out>
#25 on_session_end (proxy=<optimized out>, flags=<optimized out>, manager=0x5555c51607a0 [MateSettingsManager]) at ./mate-settings-daemon/main.c:267
        error = 0x0
        ret = <optimized out>
#26 0x00007fd813e80e2e in ffi_call_unix64 () at ../src/x86/unix64.S:105
#27 0x00007fd813e7d493 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
        classes = {X86_64_INTEGER_CLASS, 32728, 358987641, 32728}
        stack = <optimized out>
        argp = 0x7fff6cf3d5a0 ""
        arg_types = <optimized out>
        gprcount = 3
        ssecount = <optimized out>
        ngpr = <optimized out>
        nsse = <optimized out>
        i = <optimized out>
        avn = <optimized out>
        flags = <optimized out>
        reg_args = <optimized out>
#28 0x00007fd81559f16d in g_cclosure_marshal_generic
    (closure=closure@entry=0x5555c50317c0, return_gvalue=return_gvalue@entry=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=invocation_hint@entry=0x7fff6cf3d930, marshal_data=marshal_data@entry=0x0) at ../../../gobject/gclosure.c:1534
        rtype = <optimized out>
        rvalue = 0x7fff6cf3d6d0
        n_args = <optimized out>
        atypes = <optimized out>
        args = <optimized out>
        i = <optimized out>
        cif = {abi = FFI_UNIX64, nargs = 3, arg_types = 0x7fff6cf3d6b0, rtype = 0x7fd813e82240 <ffi_type_void>, bytes = 0, flags = 0}
        cc = 0x5555c50317c0
        enum_tmpval = 0x7fff6cf3d6e0
        tmpval_used = 0
#29 0x00007fd8156a0bdd in marshal_dbus_message_to_g_marshaller
    (closure=0x5555c50317c0, return_value=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=0x7fff6cf3d930, marshal_data=0x0)
    at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1744
        value_array = 0x7fd808001c40
        proxy = 0x5555c514daa0 [DBusGProxy]
        message = <optimized out>
        gsignature = <optimized out>
        types = <optimized out>
        priv = <optimized out>
        __func__ = "marshal_dbus_message_to_g_marshaller"
#33 0x00007fd8155b6863 in <emit signal received:org-gnome-SessionManager-ClientPrivate-EndSession on instance 0x5555c514daa0 [DBusGProxy]>
    (instance=instance@entry=0x5555c514daa0, signal_id=<optimized out>, detail=detail@entry=1433) at ../../../gobject/gsignal.c:3587
        var_args = {{gp_offset = 40, fp_offset = 48, overflow_arg_area = 0x7fff6cf3dc70, reg_save_area = 0x7fff6cf3dbb0}}
    #30 0x00007fd815598d2f in g_closure_invoke (closure=0x5555c50317c0, return_value=0x0, n_param_values=3, param_values=0x7fff6cf3d9b0, invocation_hint=0x7fff6cf3d930)
    at ../../../gobject/gclosure.c:830
                marshal = 0x7fd8156a0aa0 <marshal_dbus_message_to_g_marshaller>
                marshal_data = 0x0
                in_marshal = 0
                real_closure = 0x5555c50317a0
                __func__ = "g_closure_invoke"
    #31 0x00007fd8155b4c36 in signal_emit_unlocked_R
    (node=node@entry=0x5555c4f854a0, detail=detail@entry=1433, instance=instance@entry=0x5555c514daa0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fff6cf3d9b0) at ../../../gobject/gsignal.c:3777
                tmp = <optimized out>
                handler = 0x5555c50a8840
                accumulator = 0x0

                                  emission = {next = 0x0, instance = 0x5555c514daa0, ihint = {signal_id = 223, detail = 1433, run_type = (G_SIGNAL_RUN_FIRST | G_SIGNAL_ACCUMULATOR_FIRST_RUN)}, state = EMISSION_RUN, chain_type = 0x4 [void]}
                class_closure = 0x0
                hlist = <optimized out>
                handler_list = 0x5555c50a56c0
                return_accu = 0x0

                                      accu = {g_type = 0x0, 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 = 223
                max_sequential_handler_number = 3424
                return_value_altered = 0
    #32 0x00007fd8155b6614 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fff6cf3db90)
    at ../../../gobject/gsignal.c:3530
                instance_and_params = 0x7fff6cf3d9b0
                signal_return_type = <optimized out>
                param_values = 0x7fff6cf3d9c8
                node = <optimized out>
                i = <optimized out>
                n_params = <optimized out>
                __func__ = "g_signal_emit_valist"
#34 0x00007fd81569d9c2 in dbus_g_proxy_emit_remote_signal (message=0x5555c4f5e800, proxy=0x5555c514daa0 [DBusGProxy]) at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1797
        gsignature = 0x5555c5292750
        i = <optimized out>
        interface = <optimized out>
        signal = <optimized out>
        q = <optimized out>
        name = <optimized out>
        priv = <optimized out>
        msg_gsignature = 0x5555c4f0fad0
        proxy = 0x5555c514daa0 [DBusGProxy]
        tri = <optimized out>
        tmp = 0x5555c4fd8130 = {0x5555c514daa0}
        full_list = 0x5555c4fd8130 = {0x5555c514daa0}
        owned_names = <optimized out>
        sender = <optimized out>
        manager = 0x5555c5027fc0
#35 dbus_g_proxy_manager_filter (connection=<optimized out>, user_data=0x5555c5027fc0, message=<optimized out>) at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1358
        proxy = 0x5555c514daa0 [DBusGProxy]
        tri = <optimized out>
        tmp = 0x5555c4fd8130 = {0x5555c514daa0}
        full_list = 0x5555c4fd8130 = {0x5555c514daa0}
        owned_names = <optimized out>
        sender = <optimized out>
        manager = 0x5555c5027fc0
#36 dbus_g_proxy_manager_filter (connection=<optimized out>, message=<optimized out>, user_data=0x5555c5027fc0) at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1198
#37 0x00007fd8156566a5 in dbus_connection_dispatch () at /lib/x86_64-linux-gnu/libdbus-1.so.3
#38 0x00007fd8156a7469 in message_queue_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../dbus-gmain/dbus-gmain.c:91
        connection = 0x5555c4f22d60
#39 0x00007fd81549fd3b in g_main_dispatch (context=0x5555c4e33180) at ../../../glib/gmain.c:3419
        dispatch = 0x7fd8156a7450 <message_queue_dispatch>
        prev_source = 0x0
        begin_time_nsec = 0
        was_in_call = 0
        user_data = 0x0
        callback = 0x0
        cb_funcs = <optimized out>
        cb_data = <optimized out>
        need_destroy = <optimized out>
        source = 0x5555c4ef5960
        current = 0x5555c4e20600
        i = 1
#40 g_main_context_dispatch (context=0x5555c4e33180) at ../../../glib/gmain.c:4137
#41 0x00007fd8154f5258 in g_main_context_iterate.constprop.0 (context=0x5555c4e33180, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4213
        max_priority = 0
        timeout = 0
        some_ready = 1
        nfds = <optimized out>
        allocated_nfds = <optimized out>
        fds = 0x5555c524c9a0
#42 0x00007fd81549f2b3 in g_main_loop_run (loop=0x5555c52544d0) at ../../../glib/gmain.c:4413
        __func__ = "g_main_loop_run"
#43 0x00007fd814e48cfd in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x00005555c48f2679 in main (argc=<optimized out>, argv=<optimized out>) at ./mate-settings-daemon/main.c:554
        manager = 0x5555c51607a0 [MateSettingsManager]
        bus = 0x5555c4f22d68
        res = <optimized out>
        error = 0x0
        debug_settings = 0x5555c4e29960 [GSettings]
rdiez commented 9 months ago

Sorry I got confused with other core dumps: This crash happened 2 days ago, but it was at the end of the day (on shutdown), and not every day. On this PC, Ubuntu's apport only stores the last crash per process, so I cannot say yet how often this happens.

cwendling commented 9 months ago

This could help (not that I ever seen this, but maybe I just don't have an auto-crash reported to tell me as it's in finalizing):

diff --git a/plugins/housekeeping/msd-disk-space.c b/plugins/housekeeping/msd-disk-space.c
index 91738e0..e87cbb8 100644
--- a/plugins/housekeeping/msd-disk-space.c
+++ b/plugins/housekeeping/msd-disk-space.c
@@ -695,6 +695,7 @@ msd_ldsm_clean (void)

         if (ignore_paths) {
                 g_slist_free_full (ignore_paths, g_free);
+                ignore_paths = NULL;
         }
 }
rdiez commented 9 months ago

Thanks for all the extra information. I moved file /var/crash/_usr_bin_mate-settings-daemon.1000.crash out of the way, so that Ubuntu's apport would store an eventual new crash, and then it did. The crash happened again during logoff/shutdown, and it is the same call stack:

#0  __pthread_kill_implementation (no_tid=0, signo=6, threadid=140119286791936) at ./nptl/pthread_kill.c:44
#1  __pthread_kill_internal (signo=6, threadid=140119286791936) at ./nptl/pthread_kill.c:78
#2  __GI___pthread_kill (threadid=140119286791936, signo=signo@entry=6) at ./nptl/pthread_kill.c:89
#3  0x00007f7011642476 in __GI_raise (sig=sig@entry=6) at ../sysdeps/posix/raise.c:26
#4  0x00007f70116287f3 in __GI_abort () at ./stdlib/abort.c:79
#5  0x00007f7011689676 in __libc_message (action=action@entry=do_abort, fmt=fmt@entry=0x7f70117dbb77 "%s\n") at ../sysdeps/posix/libc_fatal.c:155
#6  0x00007f70116a0cfc in malloc_printerr (str=str@entry=0x7f70117d9744 "free(): invalid pointer") at ./malloc/malloc.c:5664
#7  0x00007f70116a2a44 in _int_free (av=<optimized out>, p=<optimized out>, have_lock=0) at ./malloc/malloc.c:4439
#8  0x00007f70116a5453 in __GI___libc_free (mem=<optimized out>) at ./malloc/malloc.c:3391
#9  0x00007f70118feb20 in g_slist_foreach (list=<optimized out>, list@entry=0x564178176740 = {...}, func=0x7f70118e7d50 <g_free>, user_data=user_data@entry=0x0) at ../../../glib/gslist.c:885
#10 0x00007f7011902a8f in g_slist_free_full (list=0x564178176740 = {...}, free_func=<optimized out>) at ../../../glib/gslist.c:198
#11 0x00007f700c66bc2e in msd_ldsm_clean () at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-disk-space.c:699
#12 0x00007f700c66bda2 in msd_housekeeping_manager_stop (manager=<optimized out>)
    at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-housekeeping-manager.c:301
#13 0x00007f700c66be20 in msd_housekeeping_manager_finalize (object=0x564178399010 [MsdHousekeepingManager])
    at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-housekeeping-manager.c:271
#14 0x00007f70119e9f9d in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3690
#15 g_object_unref (_object=0x564178399010) at ../../../gobject/gobject.c:3565
#16 0x00007f700c66bf86 in msd_housekeeping_plugin_finalize (object=0x564178398d90 [MsdHousekeepingPlugin])
    at /build/mate-settings-daemon-NgefVQ/mate-settings-daemon-1.26.0/plugins/housekeeping/msd-housekeeping-plugin.c:62
#17 0x00007f70119e9f9d in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3690
#18 g_object_unref (_object=0x564178398d90) at ../../../gobject/gobject.c:3565
#19 0x0000564176c96d30 in mate_settings_plugin_info_finalize (object=0x564178402070 [MateSettingsPluginInfo]) at ./mate-settings-daemon/mate-settings-plugin-info.c:99
#20 0x00007f70119e9f9d in g_object_unref (_object=<optimized out>) at ../../../gobject/gobject.c:3690
#21 g_object_unref (_object=0x564178402070) at ../../../gobject/gobject.c:3565
#22 0x00007f70118feb20 in g_slist_foreach (list=<optimized out>, func=func@entry=0x564176c96ff0 <_unload_plugin>, user_data=user_data@entry=0x0) at ../../../glib/gslist.c:885
#23 0x0000564176c95b11 in _unload_all (manager=0x5641783327a0 [MateSettingsManager]) at ./mate-settings-daemon/mate-settings-manager.c:302
#24 mate_settings_manager_stop (manager=0x5641783327a0 [MateSettingsManager]) at ./mate-settings-daemon/mate-settings-manager.c:379
#25 on_session_end (proxy=<optimized out>, flags=<optimized out>, manager=0x5641783327a0 [MateSettingsManager]) at ./mate-settings-daemon/main.c:267
#26 0x00007f7010d21e2e in ffi_call_unix64 () at ../src/x86/unix64.S:105
#27 0x00007f7010d1e493 in ffi_call_int (cif=<optimized out>, fn=<optimized out>, rvalue=<optimized out>, avalue=<optimized out>, closure=<optimized out>) at ../src/x86/ffi64.c:672
#28 0x00007f70119e216d in g_cclosure_marshal_generic
    (closure=closure@entry=0x56417807bbf0, return_gvalue=return_gvalue@entry=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=invocation_hint@entry=0x7fffd84ef880, marshal_data=marshal_data@entry=0x0) at ../../../gobject/gclosure.c:1534
#29 0x00007f7012540bdd in marshal_dbus_message_to_g_marshaller
    (closure=0x56417807bbf0, return_value=0x0, n_param_values=<optimized out>, param_values=<optimized out>, invocation_hint=0x7fffd84ef880, marshal_data=0x0)
    at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1744
#33 0x00007f70119f9863 in <emit signal received:org-gnome-SessionManager-ClientPrivate-EndSession on instance 0x564178320ea0 [DBusGProxy]>
    (instance=instance@entry=0x564178320ea0, signal_id=<optimized out>, detail=detail@entry=1433) at ../../../gobject/gsignal.c:3587
    #30 0x00007f70119dbd2f in g_closure_invoke (closure=0x56417807bbf0, return_value=0x0, n_param_values=3, param_values=0x7fffd84ef900, invocation_hint=0x7fffd84ef880)
    at ../../../gobject/gclosure.c:830
    #31 0x00007f70119f7c36 in signal_emit_unlocked_R
    (node=node@entry=0x564178154670, detail=detail@entry=1433, instance=instance@entry=0x564178320ea0, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7fffd84ef900) at ../../../gobject/gsignal.c:3777
    #32 0x00007f70119f9614 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7fffd84efae0)
    at ../../../gobject/gsignal.c:3530
#34 0x00007f701253d9c2 in dbus_g_proxy_emit_remote_signal (message=0x5641780f78d0, proxy=0x564178320ea0 [DBusGProxy]) at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1797
#35 dbus_g_proxy_manager_filter (connection=<optimized out>, user_data=0x5641781d28c0, message=<optimized out>) at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1358
#36 dbus_g_proxy_manager_filter (connection=<optimized out>, message=<optimized out>, user_data=0x5641781d28c0) at /build/dbus-glib-rGJYDH/dbus-glib-0.112/dbus/dbus-gproxy.c:1198
#37 0x00007f70124f66a5 in dbus_connection_dispatch () at /lib/x86_64-linux-gnu/libdbus-1.so.3
#38 0x00007f7012547469 in message_queue_dispatch (source=<optimized out>, callback=<optimized out>, user_data=<optimized out>) at ../dbus-gmain/dbus-gmain.c:91
#39 0x00007f70118e2d3b in g_main_dispatch (context=0x564177fdf180) at ../../../glib/gmain.c:3419
#40 g_main_context_dispatch (context=0x564177fdf180) at ../../../glib/gmain.c:4137
#41 0x00007f7011938258 in g_main_context_iterate.constprop.0 (context=0x564177fdf180, block=block@entry=1, dispatch=dispatch@entry=1, self=<optimized out>) at ../../../glib/gmain.c:4213
#42 0x00007f70118e22b3 in g_main_loop_run (loop=0x564178385650) at ../../../glib/gmain.c:4413
#43 0x00007f7011e48cfd in gtk_main () at /lib/x86_64-linux-gnu/libgtk-3.so.0
#44 0x0000564176c95679 in main (argc=<optimized out>, argv=<optimized out>) at ./mate-settings-daemon/main.c:554
rdiez commented 9 months ago

I didn't install any fix. You probably mean I should have patched it with the "ignore_paths = NULL;" suggestion about, right? If so, I am guessing that setting up a development environment, building it from source, replacing the mate-settings-daemon in my Ubuntu MATE distribution, and debugging something that happens on shutdown will probably take more than 5 minutes. Or is that really easy do to?

Is this problem hard for you guys to reproduce?

rdiez commented 9 months ago

I did answer to that question of yours above.

This is a bit of a contradiction. First you say "no" (I understand then that "it is not hard to reproduce"), but then you cannot reproduce it now.

I have 2 other similar systems which do not crash mate-settings-daemon in that way. As far as I remember, I never configured anything special about the plug-in you mentioned, which is active on both of them:

$ gsettings  get  org.mate.SettingsDaemon.plugins.housekeeping  active
true

I can't check on the PC where mate-settings-daemon is crashing until at least tuesday, but I suspect it will be the same.

All my systems have sufficient disk space and I do not expect any disk full warnings. By the way, is there a GUI way to configure such warnings? I had a quick look in the "Control Center" but couldn't find anything related.

The one difference with the crashing PC is that it is regularly connected to SMB network disk shares, and some of them are pretty full. Maybe the housekeeping plug-in behaves differently in such a scenario. I mean, even if it decides not to warn about a network share, maybe it is subscribed to them in some way when the system shuts down and the network connection is lost.

If there is an easy way, I could try enabling some tracing in order to help pin-point where the problem lies.