Hang after failing to import VPN config file
I tried to test this !1364 (merged) today, but forgot to actually build the code from that merge request, and so was testing a gnome-control-center that did not support Wireguard. This revealed an interesting bug when trying to import an unsupported Wireguard config file:
I selected "Import from file" and then selected my Wireguard configuration file. It gave me a vpnc error:
So far so good. But after I clicked on the OK button here, Settings 43.0 hung. No good. It has deadlocked when calling a mutex inside g_main_loop_quit():
(gdb) bt
#0 0x00007f128470f43d in syscall () from /lib64/libc.so.6
#1 0x00007f128653f1cc in g_mutex_lock_slowpath (mutex=0x559c5a80ad40)
at ../../../../Projects/glib/glib/gthread-posix.c:1503
#2 0x00007f128653f29f in g_mutex_lock (mutex=0x559c5a80ad40) at ../../../../Projects/glib/glib/gthread-posix.c:1532
#3 0x00007f12864d5461 in g_main_loop_quit (loop=0x559c5a7a50d0) at ../../../../Projects/glib/glib/gmain.c:4463
#4 0x00007f12865e7b8c in g_cclosure_marshal_VOID__INTv (closure=0x559c5bf617e0, return_value=0x0,
instance=0x559c5a88c820, args=0x7ffc33b3e528, marshal_data=0x0, n_params=1, param_types=0x559c5a7afb10)
at ../../../../Projects/glib/gobject/gmarshal.c:596
#5 0x00007f12865e3f02 in _g_closure_invoke_va (closure=0x559c5bf617e0, return_value=0x0, instance=0x559c5a88c820,
args=0x7ffc33b3e528, n_params=1, param_types=0x559c5a7afb10) at ../../../../Projects/glib/gobject/gclosure.c:895
#6 0x00007f1286601eaf in g_signal_emit_valist (instance=0x559c5a88c820, signal_id=182, detail=0,
var_args=0x7ffc33b3e528) at ../../../../Projects/glib/gobject/gsignal.c:3456
#7 0x00007f12866030ab in g_signal_emit (instance=0x559c5a88c820, signal_id=182, detail=0)
at ../../../../Projects/glib/gobject/gsignal.c:3606
#8 0x00007f1285ae4c88 in gtk_dialog_response (dialog=0x559c5a88c820, response_id=-5)
at ../../../../Projects/gtk/gtk/gtkdialog.c:1046
#9 0x00007f1285ae331c in action_widget_activated (widget=0x559c5befcae0, dialog=0x559c5a88c820)
at ../../../../Projects/gtk/gtk/gtkdialog.c:318
#10 0x00007f12865e749c in g_cclosure_marshal_VOID__VOIDv (closure=0x559c5bf5e8e0, return_value=0x0,
instance=0x559c5befcae0, args=0x7ffc33b3ea28, marshal_data=0x0, n_params=0, param_types=0x0)
at ../../../../Projects/glib/gobject/gmarshal.c:165
#11 0x00007f12865e3f02 in _g_closure_invoke_va (closure=0x559c5bf5e8e0, return_value=0x0, instance=0x559c5befcae0,
args=0x7ffc33b3ea28, n_params=0, param_types=0x0) at ../../../../Projects/glib/gobject/gclosure.c:895
#12 0x00007f1286601eaf in g_signal_emit_valist (instance=0x559c5befcae0, signal_id=118, detail=0,
var_args=0x7ffc33b3ea28) at ../../../../Projects/glib/gobject/gsignal.c:3456
#13 0x00007f12866030ab in g_signal_emit (instance=0x559c5befcae0, signal_id=118, detail=0)
at ../../../../Projects/glib/gobject/gsignal.c:3606
#14 0x00007f1285a88a46 in gtk_button_do_release (button=0x559c5befcae0, emit_clicked=1)
at ../../../../Projects/gtk/gtk/gtkbutton.c:754
#15 0x00007f1285a8797c in click_released_cb (gesture=0x559c5bd96910, n_press=1, x=162.84375, y=-2.7421877384185791,
widget=0x559c5befcae0) at ../../../../Projects/gtk/gtk/gtkbutton.c:349
#16 0x00007f1285a258ae in _gtk_marshal_VOID__INT_DOUBLE_DOUBLEv (closure=0x559c5bf3f620, return_value=0x0,
instance=0x559c5bd96910, args=0x7ffc33b3ef68, marshal_data=0x0, n_params=3, param_types=0x559c5a77e6a0)
at gtk/gtkmarshalers.c:5445
#17 0x00007f12865e3f02 in _g_closure_invoke_va (closure=0x559c5bf3f620, return_value=0x0, instance=0x559c5bd96910,
args=0x7ffc33b3ef68, n_params=3, param_types=0x559c5a77e6a0) at ../../../../Projects/glib/gobject/gclosure.c:895
#18 0x00007f1286601eaf in g_signal_emit_valist (instance=0x559c5bd96910, signal_id=99, detail=0,
var_args=0x7ffc33b3ef68) at ../../../../Projects/glib/gobject/gsignal.c:3456
#19 0x00007f12866030ab in g_signal_emit (instance=0x559c5bd96910, signal_id=99, detail=0)
at ../../../../Projects/glib/gobject/gsignal.c:3606
#20 0x00007f1285b5005b in gtk_gesture_click_end (gesture=0x559c5bd96910, sequence=0x0)
at ../../../../Projects/gtk/gtk/gtkgestureclick.c:276
#21 0x00007f12865e8ddd in g_cclosure_marshal_VOID__BOXEDv (closure=0x559c5a77bdf0, return_value=0x0,
instance=0x559c5bd96910, args=0x7ffc33b3f4d8, marshal_data=0x7f1285b4ff7f <gtk_gesture_click_end>, n_params=1,
param_types=0x559c5a77be20) at ../../../../Projects/glib/gobject/gmarshal.c:1686
#22 0x00007f12865e43af in g_type_class_meta_marshalv (closure=0x559c5a77bdf0, return_value=0x0,
instance=0x559c5bd96910, args=0x7ffc33b3f4d8, marshal_data=0x120, n_params=1, param_types=0x559c5a77be20)
at ../../../../Projects/glib/gobject/gclosure.c:1060
#23 0x00007f12865e3f02 in _g_closure_invoke_va (closure=0x559c5a77bdf0, return_value=0x0, instance=0x559c5bd96910,
args=0x7ffc33b3f4d8, n_params=1, param_types=0x559c5a77be20) at ../../../../Projects/glib/gobject/gclosure.c:895
#24 0x00007f1286601eaf in g_signal_emit_valist (instance=0x559c5bd96910, signal_id=94, detail=0,
var_args=0x7ffc33b3f4d8) at ../../../../Projects/glib/gobject/gsignal.c:3456
--Type <RET> for more, q to quit, c to continue without paging--c
#25 0x00007f12866030ab in g_signal_emit (instance=0x559c5bd96910, signal_id=94, detail=0) at ../../../../Projects/glib/gobject/gsignal.c:3606
#26 0x00007f1285b4b4b8 in _gtk_gesture_set_recognized (gesture=0x559c5bd96910, recognized=0, sequence=0x0) at ../../../../Projects/gtk/gtk/gtkgesture.c:341
#27 0x00007f1285b4b5cf in _gtk_gesture_check_recognized (gesture=0x559c5bd96910, sequence=0x0) at ../../../../Projects/gtk/gtk/gtkgesture.c:382
#28 0x00007f1285b4bfbe in gtk_gesture_handle_event (controller=0x559c5bd96910, event=0x559c5bed8800, x=162.84375, y=-2.7421877384185791) at ../../../../Projects/gtk/gtk/gtkgesture.c:685
#29 0x00007f1285b5209a in gtk_gesture_single_handle_event (controller=0x559c5bd96910, event=0x559c5bed8800, x=162.84375, y=-2.7421877384185791) at ../../../../Projects/gtk/gtk/gtkgesturesingle.c:231
#30 0x00007f1285b50280 in gtk_gesture_click_handle_event (controller=0x559c5bd96910, event=0x559c5bed8800, x=162.84375, y=-2.7421877384185791) at ../../../../Projects/gtk/gtk/gtkgestureclick.c:324
#31 0x00007f1285b097af in gtk_event_controller_handle_event (controller=0x559c5bd96910, event=0x559c5bed8800, target=0x559c5befcae0, x=162.84375, y=-2.7421877384185791) at ../../../../Projects/gtk/gtk/gtkeventcontroller.c:363
#32 0x00007f1285d41e9c in gtk_widget_run_controllers (widget=0x559c5befcae0, event=0x559c5bed8800, target=0x559c5befcae0, x=162.84375, y=-2.7421877384185791, phase=GTK_PHASE_CAPTURE) at ../../../../Projects/gtk/gtk/gtkwidget.c:4524
#33 0x00007f1285d423f2 in _gtk_widget_captured_event (widget=0x559c5befcae0, event=0x559c5bed8800, target=0x559c5befcae0) at ../../../../Projects/gtk/gtk/gtkwidget.c:4687
#34 0x00007f1285bbb486 in gtk_propagate_event_internal (widget=0x559c5befcae0, event=0x559c5bed8800, topmost=0x559c5a88c820) at ../../../../Projects/gtk/gtk/gtkmain.c:1903
#35 0x00007f1285bbb6d1 in gtk_propagate_event (widget=0x559c5befcae0, event=0x559c5bed8800) at ../../../../Projects/gtk/gtk/gtkmain.c:1985
#36 0x00007f1285bbae96 in gtk_main_do_event (event=0x559c5bed8800) at ../../../../Projects/gtk/gtk/gtkmain.c:1677
#37 0x00007f1285d5fa5e in surface_event (surface=0x559c5bc36da0, event=0x559c5bed8800, widget=0x559c5a88c820) at ../../../../Projects/gtk/gtk/gtkwindow.c:4706
#38 0x00007f1285ea0bd9 in _gdk_marshal_BOOLEAN__POINTERv (closure=0x559c5c03b960, return_value=0x7ffc33b3fdf0, instance=0x559c5bc36da0, args=0x7ffc33b3ff88, marshal_data=0x0, n_params=1, param_types=0x559c5ac781c0) at gdk/gdkmarshalers.c:302
#39 0x00007f1285eddc3a in gdk_surface_event_marshallerv (closure=0x559c5c03b960, return_value=0x7ffc33b3fdf0, instance=0x559c5bc36da0, args=0x7ffc33b3ff88, marshal_data=0x0, n_params=1, param_types=0x559c5ac781c0) at ../../../../Projects/gtk/gdk/gdksurface.c:463
#40 0x00007f12865e3f02 in _g_closure_invoke_va (closure=0x559c5c03b960, return_value=0x7ffc33b3fdf0, instance=0x559c5bc36da0, args=0x7ffc33b3ff88, n_params=1, param_types=0x559c5ac781c0) at ../../../../Projects/glib/gobject/gclosure.c:895
#41 0x00007f1286601eaf in g_signal_emit_valist (instance=0x559c5bc36da0, signal_id=251, detail=0, var_args=0x7ffc33b3ff88) at ../../../../Projects/glib/gobject/gsignal.c:3456
#42 0x00007f12866030ab in g_signal_emit (instance=0x559c5bc36da0, signal_id=251, detail=0) at ../../../../Projects/glib/gobject/gsignal.c:3606
#43 0x00007f1285ee2b2c in gdk_surface_handle_event (event=0x559c5bed8800) at ../../../../Projects/gtk/gdk/gdksurface.c:2947
#44 0x00007f1285ebe053 in _gdk_event_emit (event=0x559c5bed8800) at ../../../../Projects/gtk/gdk/gdkevents.c:490
#45 0x00007f1285efffea in gdk_event_source_dispatch (base=0x559c5a6f1540, callback=0x0, data=0x0) at ../../../../Projects/gtk/gdk/wayland/gdkeventsource.c:142
#46 0x00007f12864d3dbd in g_main_dispatch (context=0x559c5a6bcff0) at ../../../../Projects/glib/glib/gmain.c:3444
#47 0x00007f12864d4d11 in g_main_context_dispatch (context=0x559c5a6bcff0) at ../../../../Projects/glib/glib/gmain.c:4162
#48 0x00007f12864d4f04 in g_main_context_iterate (context=0x559c5a6bcff0, block=1, dispatch=1, self=0x559c5a6add50) at ../../../../Projects/glib/glib/gmain.c:4238
#49 0x00007f12864d539e in g_main_loop_run (loop=0x559c5bf61570) at ../../../../Projects/glib/glib/gmain.c:4438
#50 0x0000559c585e46bf in run_dialog ()
#51 0x0000559c585e868b in import_vpn_from_file_cb ()
#52 0x00007f12865e7aab in g_cclosure_marshal_VOID__INT (closure=0x559c5bcec990, return_value=0x0, n_param_values=2, param_values=0x7ffc33b40550, invocation_hint=0x7ffc33b40490, marshal_data=0x0) at ../../../../Projects/glib/gobject/gmarshal.c:540
#53 0x00007f12865e3c0e in g_closure_invoke (closure=0x559c5bcec990, return_value=0x0, n_param_values=2, param_values=0x7ffc33b40550, invocation_hint=0x7ffc33b40490) at ../../../../Projects/glib/gobject/gclosure.c:832
#54 0x00007f128660385d in signal_emit_unlocked_R (node=0x559c5a7e8240, detail=0, instance=0x559c5a88c560, emission_return=0x0, instance_and_params=0x7ffc33b40550) at ../../../../Projects/glib/gobject/gsignal.c:3796
#55 0x00007f1286602b5c in g_signal_emit_valist (instance=0x559c5a88c560, signal_id=182, detail=0, var_args=0x7ffc33b40818) at ../../../../Projects/glib/gobject/gsignal.c:3549
#56 0x00007f12866030ab in g_signal_emit (instance=0x559c5a88c560, signal_id=182, detail=0) at ../../../../Projects/glib/gobject/gsignal.c:3606
#57 0x00007f1285ae4c88 in gtk_dialog_response (dialog=0x559c5a88c560, response_id=-3) at ../../../../Projects/gtk/gtk/gtkdialog.c:1046
#58 0x00007f1285ae331c in action_widget_activated (widget=0x559c5b92c170, dialog=0x559c5a88c560) at ../../../../Projects/gtk/gtk/gtkdialog.c:318
#59 0x00007f12865e749c in g_cclosure_marshal_VOID__VOIDv (closure=0x559c5ac4e7d0, return_value=0x0, instance=0x559c5b92c170, args=0x7ffc33b40d18, marshal_data=0x0, n_params=0, param_types=0x0) at ../../../../Projects/glib/gobject/gmarshal.c:165
#60 0x00007f12865e3f02 in _g_closure_invoke_va (closure=0x559c5ac4e7d0, return_value=0x0, instance=0x559c5b92c170, args=0x7ffc33b40d18, n_params=0, param_types=0x0) at ../../../../Projects/glib/gobject/gclosure.c:895
#61 0x00007f1286601eaf in g_signal_emit_valist (instance=0x559c5b92c170, signal_id=118, detail=0, var_args=0x7ffc33b40d18) at ../../../../Projects/glib/gobject/gsignal.c:3456
#62 0x00007f12866030ab in g_signal_emit (instance=0x559c5b92c170, signal_id=118, detail=0) at ../../../../Projects/glib/gobject/gsignal.c:3606
#63 0x00007f1285a88c0a in gtk_button_finish_activate (button=0x559c5b92c170, do_it=1) at ../../../../Projects/gtk/gtk/gtkbutton.c:805
#64 0x00007f1285a88aa4 in button_activate_timeout (data=0x559c5b92c170) at ../../../../Projects/gtk/gtk/gtkbutton.c:770
#65 0x00007f12864d5f0f in g_timeout_dispatch (source=0x559c5be6a490, callback=0x7f1285a88a87 <button_activate_timeout>, user_data=0x559c5b92c170) at ../../../../Projects/glib/glib/gmain.c:5007
#66 0x00007f12864d3dbd in g_main_dispatch (context=0x559c5a6bcff0) at ../../../../Projects/glib/glib/gmain.c:3444
#67 0x00007f12864d4d11 in g_main_context_dispatch (context=0x559c5a6bcff0) at ../../../../Projects/glib/glib/gmain.c:4162
#68 0x00007f12864d4f04 in g_main_context_iterate (context=0x559c5a6bcff0, block=1, dispatch=1, self=0x559c5a6add50) at ../../../../Projects/glib/glib/gmain.c:4238
#69 0x00007f12864d4fc8 in g_main_context_iteration (context=0x559c5a6bcff0, may_block=1) at ../../../../Projects/glib/glib/gmain.c:4303
#70 0x00007f128674f6d1 in g_application_run (application=0x559c5a6b8110, argc=1, argv=0x7ffc33b41178) at ../../../../Projects/glib/gio/gapplication.c:2571
#71 0x0000559c584e5115 in main ()
I've never seen a hang quite like that before.