mate-desktop / mate-applets

Applets for use with the MATE panel
http://www.mate-desktop.org
GNU General Public License v2.0
79 stars 67 forks source link

netspeed-preferences: disconnect a signal handler on finalize #589

Closed rbuj closed 3 years ago

rbuj commented 3 years ago

systemd-coredump[137882]: [LNK] Process 137875 (mate-netspeed-a) of user 1000 dumped core.

                                                                Stack trace of thread 137875:
                                                                #0  0x000000000040dafe on_network_device_combo_changed (mate-netspeed-applet + 0xdafe)
                                                                #1  0x00007fd8358316a9 _g_closure_invoke_va (libgobject-2.0.so.0 + 0x146a9)
                                                                #2  0x00007fd8358493a8 g_signal_emit_valist (libgobject-2.0.so.0 + 0x2c3a8)
                                                                #3  0x00007fd835849582 g_signal_emit (libgobject-2.0.so.0 + 0x2c582)
                                                                #4  0x00007fd83635fd65 gtk_combo_box_set_active_internal.lto_priv.0 (libgtk-3.so.0 + 0x173d65)
                                                                #5  0x00007fd836360113 gtk_combo_box_set_active (libgtk-3.so.0 + 0x174113)
                                                                #6  0x000000000040de9f fill_device_combo (mate-netspeed-applet + 0xde9f)
                                                                #7  0x000000000040df41 netspeed_preferences_new (mate-netspeed-applet + 0xdf41)
                                                                #8  0x000000000040b5de settings_cb (mate-netspeed-applet + 0xb5de)
                                                                #9  0x00007fd83583147f g_closure_invoke (libgobject-2.0.so.0 + 0x1447f)
                                                                #10 0x00007fd835842e4b signal_emit_unlocked_R (libgobject-2.0.so.0 + 0x25e4b)
                                                                #11 0x00007fd83584907b g_signal_emit_valist (libgobject-2.0.so.0 + 0x2c07b)
                                                                #12 0x00007fd835849582 g_signal_emit (libgobject-2.0.so.0 + 0x2c582)
                                                                #13 0x00007fd8362a2e3f _gtk_action_emit_activate (libgtk-3.so.0 + 0xb6e3f)
                                                                #14 0x00007fd8358316a9 _g_closure_invoke_va (libgobject-2.0.so.0 + 0x146a9)
                                                                #15 0x00007fd8358493a8 g_signal_emit_valist (libgobject-2.0.so.0 + 0x2c3a8)
                                                                #16 0x00007fd835849582 g_signal_emit (libgobject-2.0.so.0 + 0x2c582)
                                                                #17 0x00007fd8365913dc gtk_widget_activate (libgtk-3.so.0 + 0x3a53dc)
                                                                #18 0x00007fd8364590fe gtk_menu_shell_activate_item (libgtk-3.so.0 + 0x26d0fe)
                                                                #19 0x00007fd836459483 gtk_menu_shell_button_release (libgtk-3.so.0 + 0x26d483)
                                                                #20 0x00007fd8365e1ccc _gtk_marshal_BOOLEAN__BOXEDv (libgtk-3.so.0 + 0x3f5ccc)
                                                                #21 0x00007fd8358316a9 _g_closure_invoke_va (libgobject-2.0.so.0 + 0x146a9)
                                                                #22 0x00007fd835848758 g_signal_emit_valist (libgobject-2.0.so.0 + 0x2b758)
                                                                #23 0x00007fd835849582 g_signal_emit (libgobject-2.0.so.0 + 0x2c582)
                                                                #24 0x00007fd8365a4bb4 gtk_widget_event_internal.part.0.lto_priv.0 (libgtk-3.so.0 + 0x3b8bb4)
                                                                #25 0x00007fd836442f50 propagate_event.lto_priv.0 (libgtk-3.so.0 + 0x256f50)
                                                                #26 0x00007fd836444223 gtk_main_do_event (libgtk-3.so.0 + 0x258223)
                                                                #27 0x00007fd836120633 _gdk_event_emit (libgdk-3.so.0 + 0x38633)
                                                                #28 0x00007fd836158466 gdk_event_source_dispatch (libgdk-3.so.0 + 0x70466)
                                                                #29 0x00007fd83574065b g_main_dispatch (libglib-2.0.so.0 + 0x5065b)
                                                                #30 0x00007fd8357408d8 g_main_context_iterate (libglib-2.0.so.0 + 0x508d8)
                                                                #31 0x00007fd835740bbb g_main_loop_run (libglib-2.0.so.0 + 0x50bbb)
                                                                #32 0x00007fd83643f7ad gtk_main (libgtk-3.so.0 + 0x2537ad)
                                                                #33 0x00007fd8369a7973 _mate_panel_applet_factory_main_internal (libmate-panel-applet-4.so.1 + 0xc973)
                                                                #34 0x00007fd8369a79d1 mate_panel_applet_factory_main (libmate-panel-applet-4.so.1 + 0xc9d1)
                                                                #35 0x000000000040d634 main (mate-netspeed-applet + 0xd634)
                                                                #36 0x00007fd8353d91e2 __libc_start_main (libc.so.6 + 0x281e2)
                                                                #37 0x0000000000405dfe _start (mate-netspeed-applet + 0x5dfe)

                                                                Stack trace of thread 137878:
                                                                #0  0x00007fd8354a780f __poll (libc.so.6 + 0xf680f)
                                                                #1  0x00007fd835740876 g_main_context_poll (libglib-2.0.so.0 + 0x50876)
                                                                #2  0x00007fd835740bbb g_main_loop_run (libglib-2.0.so.0 + 0x50bbb)
                                                                #3  0x00007fd83598ba46 gdbus_shared_thread_func (libgio-2.0.so.0 + 0x115a46)
                                                                #4  0x00007fd835768d1d g_thread_proxy (libglib-2.0.so.0 + 0x78d1d)
                                                                #5  0x00007fd835e4a3f9 start_thread (libpthread.so.0 + 0x93f9)
                                                                #6  0x00007fd8354b2903 __clone (libc.so.6 + 0x101903)

                                                                Stack trace of thread 137879:
                                                                #0  0x00007fd8354ad30d syscall (libc.so.6 + 0xfc30d)
                                                                #1  0x00007fd835790842 g_cond_wait_until (libglib-2.0.so.0 + 0xa0842)
                                                                #2  0x00007fd835711541 g_async_queue_pop_intern_unlocked (libglib-2.0.so.0 + 0x21541)
                                                                #3  0x00007fd835711b22 g_async_queue_timeout_pop (libglib-2.0.so.0 + 0x21b22)
                                                                #4  0x00007fd835769649 g_thread_pool_wait_for_new_pool (libglib-2.0.so.0 + 0x79649)
                                                                #5  0x00007fd835768d1d g_thread_proxy (libglib-2.0.so.0 + 0x78d1d)
                                                                #6  0x00007fd835e4a3f9 start_thread (libpthread.so.0 + 0x93f9)
                                                                #7  0x00007fd8354b2903 __clone (libc.so.6 + 0x101903)

                                                                Stack trace of thread 137877:
                                                                #0  0x00007fd8354a780f __poll (libc.so.6 + 0xf680f)
                                                                #1  0x00007fd835740876 g_main_context_poll (libglib-2.0.so.0 + 0x50876)
                                                                #2  0x00007fd83574097f g_main_context_iteration (libglib-2.0.so.0 + 0x5097f)
                                                                #3  0x00007fd8357409d1 glib_worker_main (libglib-2.0.so.0 + 0x509d1)
                                                                #4  0x00007fd835768d1d g_thread_proxy (libglib-2.0.so.0 + 0x78d1d)
                                                                #5  0x00007fd835e4a3f9 start_thread (libpthread.so.0 + 0x93f9)
                                                                #6  0x00007fd8354b2903 __clone (libc.so.6 + 0x101903)

                                                                Stack trace of thread 137880:
                                                                #0  0x00007fd8354a780f __poll (libc.so.6 + 0xf680f)
                                                                #1  0x00007fd835740876 g_main_context_poll (libglib-2.0.so.0 + 0x50876)
                                                                #2  0x00007fd83574097f g_main_context_iteration (libglib-2.0.so.0 + 0x5097f)
                                                                #3  0x00007fd82745864d dconf_gdbus_worker_thread (libdconfsettings.so + 0x664d)
                                                                #4  0x00007fd835768d1d g_thread_proxy (libglib-2.0.so.0 + 0x78d1d)
                                                                #5  0x00007fd835e4a3f9 start_thread (libpthread.so.0 + 0x93f9)
                                                                #6  0x00007fd8354b2903 __clone (libc.so.6 + 0x101903)
...
abrt-notification[137936]: [LNK] Process 13438 (mate-netspeed-applet) crashed in on_network_device_combo_changed()
raveit65 commented 3 years ago

Confirmed, switching from default device to my wire-card device in GtkComboBox crashes the applet and gives me a abrt alarm.

raveit65 commented 3 years ago

Hmm, applet crashes for me in f32 when

  1. Changing device in Combo box
  2. Closing preferences
  3. opening preferences again.
  4. boom!
Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib64/libthread_db.so.1".
Core was generated by `/usr/libexec/mate-applets/mate-netspeed-applet'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0  on_network_device_combo_changed (combo=<optimized out>, preferences=0x5596d2c64620 [NetspeedPreferences]) at netspeed-preferences.c:137
137     if (g_str_equal (devices->data, current_device_name))
[Current thread is 1 (Thread 0x7f55a2204a40 (LWP 178272))]

Thread 1 (Thread 0x7f55a2204a40 (LWP 178272)):
#0  on_network_device_combo_changed (combo=<optimized out>, preferences=0x5596d2c64620 [NetspeedPreferences]) at netspeed-preferences.c:137
        current_device_name = 0x5596d2caaea0 "tun0"
        devices = 0x0
        i = <optimized out>
        active = 1
        old_auto_change_device = 0
        auto_change_device = 0
        __func__ = "on_network_device_combo_changed"
#1  0x00007f55a33baae6 in _g_closure_invoke_va (closure=closure@entry=0x5596d2c84a30, return_value=return_value@entry=0x0, instance=instance@entry=0x5596d2c82530, args=args@entry=0x7ffd49d12f60, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873
        marshal = 0x7f55a33bcc20 <g_cclosure_marshal_VOID__VOIDv>
        marshal_data = 0x0
        in_marshal = 0
        real_closure = 0x5596d2c84a10
        __func__ = "_g_closure_invoke_va"
#2  0x00007f55a33d36e9 in g_signal_emit_valist (instance=0x5596d2c82530, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd49d12f60) at ../gobject/gsignal.c:3407
        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}}}
        accumulator = 0x0
        emission = {next = 0x7ffd49d13220, instance = 0x5596d2c82530, ihint = {signal_id = 240, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 0x5596d2c7c5b0 [GtkComboBoxText/GtkComboBox/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
        signal_id = 240
        instance_type = 0x5596d2c7c5b0 [GtkComboBoxText/GtkComboBox/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]
        emission_return = {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}}}
        rtype = 0x4 [void]
        static_scope = 0
        fastpath_handler = <optimized out>
        closure = <optimized out>
        run_type = <optimized out>
        hlist = <optimized out>
        l = <optimized out>
        fastpath = 1
        instance_and_params = <optimized out>
        signal_return_type = <optimized out>
        param_values = <optimized out>
        node = <optimized out>
        i = <optimized out>
        n_params = <optimized out>
        __func__ = "g_signal_emit_valist"
#3  0x00007f55a33d3c63 in g_signal_emit (instance=instance@entry=0x5596d2c82530, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd49d13040, reg_save_area = 0x7ffd49d12f80}}
#4  0x00007f55a39dc111 in gtk_combo_box_set_active_internal (combo_box=0x5596d2c82530 [GtkComboBoxText], path=<optimized out>) at gtkcombobox.c:3855
        priv = 0x5596d2c82340
        active_path = <optimized out>
        path_cmp = <optimized out>
        is_valid_row_reference = <optimized out>
#5  0x00007f55a39de7c3 in gtk_combo_box_set_active (combo_box=0x5596d2c82530 [GtkComboBoxText], index_=<optimized out>) at gtkcombobox.c:3779
        priv = <optimized out>
        path = 0x5596d2ad13c0
        __func__ = "gtk_combo_box_set_active"
#6  0x00005596d207dd9c in fill_device_combo (settings=0x5596d2b0fcd0 [GSettings], preferences=0x5596d2c64620 [NetspeedPreferences]) at netspeed-preferences.c:219
        devices = 0x5596d2865c40 = {0x5596d2c7b700, 0x5596d28f09e0, 0x5596d2b0f840, 0x5596d2c41ce0, 0x5596d2c78f70, 0x5596d2ce83e0}
        i = <optimized out>
        active = 1
        ptr = <optimized out>
        current_device_name = 0x5596d2caaea0 "tun0"
        auto_change_device = 0
        preferences = 0x5596d2c64620 [NetspeedPreferences]
        settings = 0x5596d2b0fcd0 [GSettings]
#7  netspeed_preferences_new (netspeed=<optimized out>) at netspeed-preferences.c:236
        preferences = 0x5596d2c64620 [NetspeedPreferences]
        settings = 0x5596d2b0fcd0 [GSettings]
#8  0x00005596d2079f78 in settings_cb (action=<optimized out>, netspeed=0x5596d271e5c0 [NetspeedApplet]) at netspeed.c:1097
        __func__ = "settings_cb"
#12 0x00007f55a33d3c63 in <emit signal ??? on instance 0x5596d2ae2510 [GtkAction]> (instance=instance@entry=0x5596d2ae2510, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd49d13510, reg_save_area = 0x7ffd49d13450}}
    #9  0x00007f55a33ba88a in g_closure_invoke (closure=0x5596d2b01e70, return_value=return_value@entry=0x0, n_param_values=1, param_values=param_values@entry=0x7ffd49d132b0, invocation_hint=invocation_hint@entry=0x7ffd49d13230) at ../gobject/gclosure.c:810
                marshal = 0x7f55a33bcb90 <g_cclosure_marshal_VOID__VOID>
                marshal_data = 0x0
                in_marshal = 0
                real_closure = 0x5596d2b01e50
                __func__ = "g_closure_invoke"
    #10 0x00007f55a33cd423 in signal_emit_unlocked_R (node=node@entry=0x5596d27ed070, detail=detail@entry=0, instance=instance@entry=0x5596d2ae2510, emission_return=emission_return@entry=0x0, instance_and_params=instance_and_params@entry=0x7ffd49d132b0) at ../gobject/gsignal.c:3742
                tmp = <optimized out>
                handler = 0x5596d2b18380
                accumulator = 0x0
                emission = {next = 0x7ffd49d13620, instance = 0x5596d2ae2510, ihint = {signal_id = 194, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 0x4 [void]}
                hlist = <optimized out>
                handler_list = 0x5596d2b18380
                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 = 194
                max_sequential_handler_number = 2258
                return_value_altered = <optimized out>
    #11 0x00007f55a33d3af9 in g_signal_emit_valist (instance=<optimized out>, signal_id=<optimized out>, detail=<optimized out>, var_args=var_args@entry=0x7ffd49d13430) at ../gobject/gsignal.c:3498
                instance_and_params = 0x7ffd49d132b0
                signal_return_type = <optimized out>
                param_values = 0x7ffd49d132c8
                node = <optimized out>
                i = <optimized out>
                n_params = <optimized out>
                __func__ = "g_signal_emit_valist"
#13 0x00007f55a3920a35 in _gtk_action_emit_activate (action=0x5596d2ae2510 [GtkAction]) at deprecated/gtkaction.c:909
        group = 0x5596d2ab8f40 [GtkActionGroup]
#14 0x00007f55a33baae6 in _g_closure_invoke_va (closure=closure@entry=0x5596d26e4b40, return_value=return_value@entry=0x0, instance=instance@entry=0x5596d2afe840, args=args@entry=0x7ffd49d13720, n_params=0, param_types=0x0) at ../gobject/gclosure.c:873
        marshal = 0x7f55a33b8d00 <g_type_class_meta_marshalv>
        marshal_data = 0x3f8
        in_marshal = 0
        real_closure = 0x5596d26e4b20
        __func__ = "_g_closure_invoke_va"
#15 0x00007f55a33d36e9 in g_signal_emit_valist (instance=0x5596d2afe840, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd49d13720) at ../gobject/gsignal.c:3407
        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}}}
        accumulator = 0x0
        emission = {next = 0x7ffd49d139f0, instance = 0x5596d2afe840, ihint = {signal_id = 111, detail = 0, run_type = G_SIGNAL_RUN_FIRST}, state = EMISSION_RUN, chain_type = 0x5596d2827b10 [GtkImageMenuItem/GtkMenuItem/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]}
        signal_id = 111
        instance_type = 0x5596d2827b10 [GtkImageMenuItem/GtkMenuItem/GtkBin/GtkContainer/GtkWidget/GInitiallyUnowned]
        emission_return = {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}}}
        rtype = 0x4 [void]
        static_scope = 0
        fastpath_handler = <optimized out>
        closure = <optimized out>
        run_type = <optimized out>
        hlist = <optimized out>
        l = <optimized out>
        fastpath = 1
        instance_and_params = <optimized out>
        signal_return_type = <optimized out>
        param_values = <optimized out>
        node = <optimized out>
        i = <optimized out>
        n_params = <optimized out>
        __func__ = "g_signal_emit_valist"
#16 0x00007f55a33d3c63 in g_signal_emit (instance=instance@entry=0x5596d2afe840, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd49d13800, reg_save_area = 0x7ffd49d13740}}
#17 0x00007f55a3c14b2c in gtk_widget_activate (widget=widget@entry=0x5596d2afe840 [GtkImageMenuItem]) at gtkwidget.c:7841
        __func__ = "gtk_widget_activate"
#18 0x00007f55a3ad6a0e in gtk_menu_shell_activate_item (menu_shell=0x5596d2afc2c0 [GtkMenu], menu_item=0x5596d2afe840 [GtkImageMenuItem], force_deactivate=<optimized out>) at gtkmenushell.c:1375
        slist = <optimized out>
        shells = 0x5596d2ad7350 = {0x5596d2afc2c0}
        deactivate = <optimized out>
        __func__ = "gtk_menu_shell_activate_item"
#19 0x00007f55a3ad6ce3 in gtk_menu_shell_button_release (widget=0x5596d2afc2c0 [GtkMenu], event=<optimized out>) at gtkmenushell.c:791
        submenu = 0x0
        menu_item = 0x5596d2afe840 [GtkImageMenuItem]
        deactivate = 1
        menu_shell = 0x5596d2afc2c0 [GtkMenu]
        priv = 0x5596d2afc160
#20 0x00007f55a3c6938c in _gtk_marshal_BOOLEAN__BOXEDv (closure=0x5596d26d53d0, return_value=0x7ffd49d13a20, instance=<optimized out>, args=<optimized out>, marshal_data=<optimized out>, n_params=<optimized out>, param_types=0x5596d26d5400) at gtkmarshalers.c:129
        data1 = 0x5596d2afc2c0
        data2 = <optimized out>
        callback = 0x7f55a3ac8bf0 <gtk_menu_button_release>
        v_return = <optimized out>
        arg0 = 0x5596d26bfda0
        args_copy = {{gp_offset = 32, fp_offset = 48, overflow_arg_area = 0x7ffd49d13bd0, reg_save_area = 0x7ffd49d13b10}}
        __func__ = "_gtk_marshal_BOOLEAN__BOXEDv"
#21 0x00007f55a33baae6 in _g_closure_invoke_va (closure=closure@entry=0x5596d26d53d0, return_value=return_value@entry=0x7ffd49d13a20, instance=instance@entry=0x5596d2afc2c0, args=args@entry=0x7ffd49d13af0, n_params=1, param_types=0x5596d26d5400) at ../gobject/gclosure.c:873
        marshal = 0x7f55a33b8d00 <g_type_class_meta_marshalv>
        marshal_data = 0x188
        in_marshal = 0
        real_closure = 0x5596d26d53b0
        __func__ = "_g_closure_invoke_va"
#22 0x00007f55a33d2e4b in g_signal_emit_valist (instance=0x5596d2afc2c0, signal_id=<optimized out>, detail=0, var_args=var_args@entry=0x7ffd49d13af0) at ../gobject/gsignal.c:3407
        return_accu = 0x7ffd49d13a20
        accu = {g_type = 0x14 [gboolean], 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}}}
        accumulator = 0x5596d26d5690
        emission = {next = 0x0, instance = 0x5596d2afc2c0, ihint = {signal_id = 61, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN, chain_type = 0x5596d26e6780 [GtkMenu/GtkMenuShell/GtkContainer/GtkWidget/GInitiallyUnowned]}
        signal_id = 61
        instance_type = 0x5596d26e6780 [GtkMenu/GtkMenuShell/GtkContainer/GtkWidget/GInitiallyUnowned]
        emission_return = {g_type = 0x14 [gboolean], 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}}}
        rtype = 0x14 [gboolean]
        static_scope = 0
        fastpath_handler = <optimized out>
        closure = <optimized out>
        run_type = <optimized out>
        hlist = <optimized out>
        l = <optimized out>
        fastpath = 1
        instance_and_params = <optimized out>
        signal_return_type = <optimized out>
        param_values = <optimized out>
        node = <optimized out>
        i = <optimized out>
        n_params = <optimized out>
        __func__ = "g_signal_emit_valist"
#23 0x00007f55a33d3c63 in g_signal_emit (instance=instance@entry=0x5596d2afc2c0, signal_id=<optimized out>, detail=detail@entry=0) at ../gobject/gsignal.c:3554
        var_args = {{gp_offset = 24, fp_offset = 48, overflow_arg_area = 0x7ffd49d13bd0, reg_save_area = 0x7ffd49d13b10}}
#24 0x00007f55a3c12474 in gtk_widget_event_internal (widget=0x5596d2afc2c0 [GtkMenu], event=0x5596d26bfda0) at gtkwidget.c:7808
        signal_num = <optimized out>
        return_val = <optimized out>
        handled = 0
        __func__ = "gtk_widget_event_internal"
#25 0x00007f55a3c146e2 in gtk_widget_event_internal (event=<optimized out>, widget=<optimized out>) at gtkwidget.c:7687
        return_val = 0
        __func__ = "gtk_widget_event_internal"
        __func__ = "gtk_widget_event"
#26 gtk_widget_event (widget=<optimized out>, event=<optimized out>) at gtkwidget.c:7378
        __func__ = "gtk_widget_event"
#27 0x00005596d2afc2c0 in  ()
#28 0x00007f5588003530 in  ()
#29 0x00005596d26bfda0 in  ()
#30 0x00005596d2afe840 in  ()
#31 0x00005596d2afc2c0 in  ()
#32 0x00005596d26c1800 in  ()
#33 0x0000000000000000 in  ()

full backtrace at https://www.dropbox.com/s/2h6vpfwyoll6jfy/backtrace-mate-netspeed-applet?dl=0

I am building mate-applets RPM from 1.25.2 tarball + this patch list:

# https://github.com/mate-desktop/mate-applets/pull/562
Patch1:        mate-applets_0001-multiload-load-menu-from-resource-bundle.patch
# https://github.com/mate-desktop/mate-applets/commit/fb15e10
Patch2:        mate-applets_0001-netspeed-code-style.patch
# https://github.com/mate-desktop/mate-applets/pull/559
Patch3:        mate-applets_0001-multiload-increase-refresh-rate-range-setting.patch
Patch4:        mate-applets_0002-multiload-Use-one-callback-for-each-of-the-spin-butt.patch
Patch5:        mate-applets_0003-multiload-fix-interval-on-autoscaler_init-call.patch
Patch6:        mate-applets_0004-multiload-Drop-scaler-from-GetNet.patch
Patch7:        mate-applets_0005-multiload-compute-combined-network-data-on-GetNet-on.patch
Patch8:        mate-applets_0006-multiload-use-bit-rate-in-netload-graph.patch
Patch9:        mate-applets_0007-multiload-use-guint64-as-data-source-for-graphs.patch
# https://github.com/mate-desktop/mate-applets/pull/561
Patch10:       mate-applets_0001-mateweather-set-values-before-connecting-signals-on-.patch
# https://github.com/mate-desktop/mate-applets/pull/560
Patch11:       mate-applets_0001-mateweather-Avoid-NULL-pointer-dereferences-if-there.patch
Patch12:       mate-applets_0002-mateweather-Do-not-update-panel-when-upgrade-process.patch
# https://github.com/mate-desktop/mate-applets/pull/564
Patch13:       mate-applets_0001-netspeed-show-all-IP-addresses-on-tooltip-if-enabled.patch
# https://github.com/mate-desktop/mate-applets/pull/568
Patch14:       mate-applets_0001-netspeed-show-all-ipv6-addrs-in-device-details-dialo.patch
# https://github.com/mate-desktop/mate-applets/commit/221527
Patch15:       mate-applets_0001-netspeed-improve-display-of-IPv6-addresses-in-device.patch
# https://github.com/mate-desktop/mate-applets/commit/6f974b
Patch16:       mate-applets_0002-netspeed-Fix-display-of-IP-if-no-IPv4-is-configured.patch
# https://github.com/mate-desktop/mate-applets/commit/92c556
Patch17:       mate-applets_0003-netspeed-fix-line-indent.patch
# https://github.com/mate-desktop/mate-applets/commit/7ec74a
Patch18:       mate-applets_0004-netspeed-NetspeedApplet-subclass-of-MatePanelApplet.patch
# https://github.com/mate-desktop/mate-applets/commit/028c44
Patch19:       mate-applets_0005-netspeed-refactor-variable-names.patch
# https://github.com/mate-desktop/mate-applets/commit/dddc1a
Patch20:       mate-applets_0006-netspeed-connect-the-widget-signal-handlers-on-class.patch
# https://github.com/mate-desktop/mate-applets/commit/eddd08
Patch21:       mate-applets_0007-multiload-Add-properties.ui.patch
# https://github.com/mate-desktop/mate-applets/commit/181184
Patch22:       mate-applets_0008-stickynotes-improve-code-style.patch
# https://github.com/mate-desktop/mate-applets/pull/571
Patch23:       mate-applets_0009-trashapplet-Upgrade-trashapplet-empty-progress.ui.patch
# https://github.com/mate-desktop/mate-applets/pull/569
Patch24:       mate-applets_0001-geyes-Remove-conversion-warnings.patch
# https://github.com/mate-desktop/mate-applets/pull/570
Patch25:       mate-applets_0001-mateweather-Remove-conversion-warnings.patch
# https://github.com/mate-desktop/mate-applets/pull/581
Patch26:       mate-applets_0001-netspeed-Add-NetspeedPreferences-class.patch
# https://github.com/mate-desktop/mate-applets/commit/92d4e55
Patch27:       mate-applets_0001-netspeed-fix-typo.patch
# https://github.com/mate-desktop/mate-applets/commit/f15e91b
Patch28:       mate-applets_0002-multiload-fix-typo-reported-by-translator.patch
# https://github.com/mate-desktop/mate-applets/pull/589
Patch29:       mate-applets_0003-netspeed-preferences-disconnect-a-signal-handler-on-.patch

Do i miss something?

lukefromdc commented 3 years ago

For some reason duplicating your sequence (open prefs, change device monitored, close prefs, open prefs again,change device again, close prefs again) still didn't crash the applet with a build from git master as of 12-24-2020 (last build I packaged as a .deb) on my box

rbuj commented 3 years ago

Hmm, applet crashes for me in f32 when

  1. Changing device in Combo box
  2. Closing preferences
  3. opening preferences again.
  4. boom!

592 should fix the null pointer dereference in g_str_equal (devices->data, current_device_name) (devices = 0x0)

raveit65 commented 3 years ago

https://github.com/mate-desktop/mate-applets/pull/592 fixes the problem for me. Thanks. Should i merge both PRs?

rbuj commented 3 years ago

@raveit65 I think it's best not to merge them, as changes can be better followed if they are separated into small work units.

raveit65 commented 3 years ago

Ok, but https://github.com/mate-desktop/mate-applets/pull/592 fixes the issue in master and is independent from this one, or not?

rbuj commented 3 years ago

The last three requests modify the same file in different parts, but they fix three different issues which can be isolated in their pull request. There are no merge conflicts between them, so there is no need to group them into a single one.