terminal hangs randomly since the switch to xfconf
with 1.1.0 on OpenBSD, sometimes the terminal just 'hangs':
- cant change tabs
- cant type anymore in terms
attaching to the running process with gdb, i get this trace which seems to show that a keypress event triggered a write to xfconf that doesnt return ?
(gdb) bt
#0 _thread_sys_poll () at /tmp/-:3
#1 0x017a75f5e4cb2c14 in ?? ()
#2 0x000004dd44823e72 in _libc_poll_cancel (fds=0x4dd5fe4fc70, nfds=1, timeout=25000) at /usr/src/lib/libc/sys/w_poll.c:27
#3 0x000004ddd11c0702 in g_main_context_iterate () from /usr/local/lib/libglib-2.0.so.4201.10
#4 0x000004ddd11c0b6a in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.4201.10
#5 0x000004dd550cdd11 in g_dbus_connection_send_message_with_reply_sync () from /usr/local/lib/libgio-2.0.so.4200.17
#6 0x000004dd550d1308 in g_dbus_connection_call_sync_internal () from /usr/local/lib/libgio-2.0.so.4200.17
#7 0x000004dd550e2748 in g_dbus_proxy_call_sync_internal () from /usr/local/lib/libgio-2.0.so.4200.17
#8 0x000004dd550e242b in g_dbus_proxy_call_sync () from /usr/local/lib/libgio-2.0.so.4200.17
#9 0x000004ddd1a96d09 in xfconf_exported_call_get_property_sync () from /usr/local/lib/libxfconf-0.so.1.0
#10 0x000004ddd1a8de92 in xfconf_cache_lookup_locked () from /usr/local/lib/libxfconf-0.so.1.0
#11 0x000004ddd1a8de02 in xfconf_cache_lookup () from /usr/local/lib/libxfconf-0.so.1.0
#12 0x000004ddd1a8f839 in xfconf_channel_get_internal () from /usr/local/lib/libxfconf-0.so.1.0
#13 0x000004ddd1a90bff in xfconf_channel_get_property () from /usr/local/lib/libxfconf-0.so.1.0
#14 0x000004db315cd137 in terminal_preferences_get_property (object=0x4dd769997c0, prop_id=<optimized out>, value=0x7708eb3292e0, pspec=0x4dd7698f480) at terminal-preferences.c:1339
#15 0x000004dde98c5c3b in g_object_get_valist () from /usr/local/lib/libgobject-2.0.so.4200.17
#16 0x000004dde98c611d in g_object_get () from /usr/local/lib/libgobject-2.0.so.4200.17
#17 0x000004db315da2b8 in terminal_widget_key_press_event (widget=0x4dd78dab880, event=0x4ddf8a21c80) at terminal-widget.c:759
#18 0x000004dd72e04bc5 in _gtk_marshal_BOOLEAN__BOXEDv () from /usr/local/lib/libgtk-3.so.2201.0
#19 0x000004dde98bceea in _g_closure_invoke_va () from /usr/local/lib/libgobject-2.0.so.4200.17
#20 0x000004dde98d7fa1 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.4200.17
#21 0x000004dde98d8a15 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.4200.17
#22 0x000004dd7312d5d9 in gtk_widget_event_internal () from /usr/local/lib/libgtk-3.so.2201.0
#23 0x000004dd7314b104 in gtk_window_propagate_key_event () from /usr/local/lib/libgtk-3.so.2201.0
#24 0x000004dd731536a4 in gtk_window_key_press_event () from /usr/local/lib/libgtk-3.so.2201.0
#25 0x000004dd72e04bc5 in _gtk_marshal_BOOLEAN__BOXEDv () from /usr/local/lib/libgtk-3.so.2201.0
#26 0x000004dde98bce94 in _g_closure_invoke_va () from /usr/local/lib/libgobject-2.0.so.4200.17
#27 0x000004dde98d7fa1 in g_signal_emit_valist () from /usr/local/lib/libgobject-2.0.so.4200.17
#28 0x000004dde98d8a15 in g_signal_emit () from /usr/local/lib/libgobject-2.0.so.4200.17
#29 0x000004dd7312d5d9 in gtk_widget_event_internal () from /usr/local/lib/libgtk-3.so.2201.0
#30 0x000004dd72fa9e8f in gtk_propagate_event () from /usr/local/lib/libgtk-3.so.2201.0
#31 0x000004dd72fa9a02 in gtk_main_do_event () from /usr/local/lib/libgtk-3.so.2201.0
#32 0x000004ddbaf3cc1b in _gdk_event_emit () from /usr/local/lib/libgdk-3.so.2201.1
#33 0x000004ddbaf76148 in gdk_event_source_dispatch () from /usr/local/lib/libgdk-3.so.2201.1
#34 0x000004ddd11c03ef in g_main_context_dispatch () from /usr/local/lib/libglib-2.0.so.4201.10
#35 0x000004ddd11c0757 in g_main_context_iterate () from /usr/local/lib/libglib-2.0.so.4201.10
#36 0x000004ddd11c0b6a in g_main_loop_run () from /usr/local/lib/libglib-2.0.so.4201.10
#37 0x000004dd72fa91ec in gtk_main () from /usr/local/lib/libgtk-3.so.2201.0
#38 0x000004db315c6b60 in main (argc=<optimized out>, argv=<optimized out>) at main.c:360
i havent figured out yet what exact key sequence triggers this.. but here are some details from the various frames:
#14 0x000004db315cd137 in terminal_preferences_get_property (object=0x4dd769997c0, prop_id=<optimized out>, value=0x7708eb3292e0, pspec=0x4dd7698f480) at terminal-preferences.c:1339
1339 terminal-preferences.c: No such file or directory.
(gdb) p value
$1 = (GValue *) 0x7708eb3292e0
(gdb) p *value
$2 = {g_type = 20, 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}}}
(gdb) p *pspec
$3 = {g_type_instance = {g_class = 0x4dd80c2f7d0}, name = 0x4db315bfb3b "shortcuts-no-menukey", flags = 227, value_type = 20, owner_type = 5349224045184, _nick = 0x0,
_blurb = 0x4db315ba752 "ShortcutsNoMenukey", qdata = 0x0, ref_count = 2, param_id = 82}
...
#17 0x000004db315da2b8 in terminal_widget_key_press_event (widget=0x4dd78dab880, event=0x4ddf8a21c80) at terminal-widget.c:759
759 terminal-widget.c: No such file or directory.
(gdb) p *event
$4 = {type = GDK_KEY_PRESS, window = 0x4dd5fe348c0, send_event = 0 '\000', time = 1730548, state = 16, keyval = 114, length = 1, string = 0x4de07660210 "r", hardware_keycode = 27,
group = 0 '\000', is_modifier = 0}