I just hit this bug a second time in version 0.4.8-1+b1.
I accidentally pressed the context menu button (on a US keyboard) and no
menu appeared. Now all of my terminal windows (and all 149 tabs!) have
stopped accepting input (keyboard or mouse). They still draw output,
however (my IRC client and a clock in GNU Screen's status line are still
updating).
Attached is a full backtrace from GDB, in which one can see that GTK+ is
running the main loop that Terminal's terminal_widget_context_menu()
created in the input thread. AFAICT there's no way to end the context
menu main loop so that Terminal's input thread can return to normal
execution, so my only recourse is to kill xfce4-terminal.
-- System Information:
Debian Release: wheezy/sid
APT prefers testing
APT policy: (500, 'testing')
Architecture: amd64 (x86_64)
Kernel: Linux 3.2.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Versions of packages xfce4-terminal depends on:
ii exo-utils 0.6.2-4
ii libatk1.0-0 2.4.0-2
ii libc6 2.13-26
ii libdbus-1-3 1.5.12-1
ii libdbus-glib-1-2 0.98-1
ii libexo-1-0 0.6.2-4
ii libgdk-pixbuf2.0-0 2.26.1-1
ii libglib2.0-0 2.32.2-1
ii libgtk2.0-0 2.24.10-1
ii libpango1.0-0 1.30.0-1
ii libvte9 1:0.28.2-4
ii libx11-6 2:1.4.99.901-2
ii libxfce4util4 4.8.2-1
Versions of packages xfce4-terminal recommends:
ii dbus-x11 1.4.16-1
xfce4-terminal suggests no packages.
-- no debconf information
--
P. J. McDermott (_/@\_) ,--.
http://www.pehjota.net/ o < o o > / oo \
http://www.pehjota.net/contact.html o \ `-/ | <> |.
o o o "~v /_\--/_/
#0 0x00007fa0da850cc3 in *__GI___poll (fds=<optimized out>, nfds=<optimized
out>, timeout=136) at ../sysdeps/unix/sysv/linux/poll.c:87
_a3 = 136
_a1 = 140328943668160
resultvar = <optimized out>
_a2 = 154
oldtype = 0
result = <optimized out>
#1 0x00007fa0dae90b36 in g_main_context_poll (n_fds=154, fds=0x7fa0e0d6cbc0,
timeout=136, context=0x7fa0df300f50, priority=<optimized out>)
at /tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3440
poll_func = 0x7fa0dae9da30 <g_poll>
#2 g_main_context_iterate (dispatch=1, block=<optimized out>,
context=0x7fa0df300f50, self=<optimized out>) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3141
timeout = 136
some_ready = <optimized out>
fds = 0x7fa0e0d6cbc0
max_priority = 2147483647
nfds = 154
allocated_nfds = <optimized out>
#3 g_main_context_iterate (context=0x7fa0df300f50, block=<optimized out>,
dispatch=1, self=<optimized out>) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3083
some_ready = -522794048
#4 0x00007fa0dae90f9a in g_main_loop_run (loop=0x7fa0dfb9cfe0) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3340
__PRETTY_FUNCTION__ = "g_main_loop_run"
#5 0x00007fa0dd623d9c in terminal_widget_context_menu (widget=<optimized out>,
button=0, event_time=4004474742, x=<optimized out>, y=<optimized out>)
at terminal-widget.c:362
terminal = <optimized out>
loop = 0x7fa0dfb9cfe0
menu = 0x7fa0e1af9920
item_copy = 0x0
item_open = 0x0
item_separator = 0x0
children = <optimized out>
match = <optimized out>
id = 113085
i = <optimized out>
tag = -1
pattern_type = <optimized out>
#6 0x00007fa0dd6245cc in terminal_widget_key_press_event
(widget=0x7fa0e1a4eb90, event=<optimized out>) at terminal-widget.c:632
adjustment = <optimized out>
scrolling_single_line = <optimized out>
shortcuts_no_menukey = 1
value = <optimized out>
x = 259
y = 430
#7 0x00007fa0dc163538 in _gtk_marshal_BOOLEAN__BOXED (closure=0x7fa0df36ae50,
return_value=0x7fff3193f140, n_param_values=<optimized out>,
param_values=0x7fff3193f1b0,
invocation_hint=<optimized out>, marshal_data=<optimized out>) at
/tmp/buildd/gtk+2.0-2.24.10/gtk/gtkmarshalers.c:86
callback = 0x7fa0dd624430 <terminal_widget_key_press_event>
cc = 0x7fa0df36ae50
data1 = 0x7fa0e1a4eb90
data2 = <optimized out>
v_return = <optimized out>
__PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
#8 0x00007fa0db14e48b in g_closure_invoke (closure=0x7fa0df36ae50,
return_value=0x7fff3193f140, n_param_values=2, param_values=0x7fff3193f1b0,
invocation_hint=<optimized out>) at
/tmp/buildd/glib2.0-2.32.2/./gobject/gclosure.c:777
marshal = 0x7fa0db14d130 <g_type_class_meta_marshal>
marshal_data = <optimized out>
in_marshal = 1
real_closure = 0x7fa0df36ae30
__PRETTY_FUNCTION__ = "g_closure_invoke"
#9 0x00007fa0db15fba9 in signal_emit_unlocked_R (node=<optimized out>,
detail=0, instance=<optimized out>, emission_return=0x7fff3193f380,
instance_and_params=0x7fff3193f1b0) at
/tmp/buildd/glib2.0-2.32.2/./gobject/gsignal.c:3585
accumulator = 0x7fa0df36af10
emission = {next = 0x7fff3193f690, instance = 0x7fa0e1a4eb90, ihint =
{signal_id = 44, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state =
EMISSION_RUN,
chain_type = 140328917085904}
class_closure = 0x7fa0df36ae50
hlist = 0x7fa0dfdfe6c8
handler_list = 0x0
return_accu = 0x7fff3193f140
accu = {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}}}
signal_id = 44
max_sequential_handler_number = 113052
return_value_altered = 0
#10 0x00007fa0db1675ee in g_signal_emit_valist (instance=0x7fa0e1a4eb90,
signal_id=<optimized out>, detail=0, var_args=<optimized out>)
at /tmp/buildd/glib2.0-2.32.2/./gobject/gsignal.c:3306
return_value = {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}}}
error = 0x0
rtype = 20
static_scope = 0
instance_and_params = 0x7fff3193f1b0
signal_return_type = 20
param_values = 0x7fff3193f1c8
node = 0x7fa0df36aea0
i = <optimized out>
n_params = 1
__PRETTY_FUNCTION__ = "g_signal_emit_valist"
#11 0x00007fa0db167ab2 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>)
at /tmp/buildd/glib2.0-2.32.2/./gobject/gsignal.c:3352
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area =
0x7fff3193f4c0, reg_save_area = 0x7fff3193f400}}
#12 0x00007fa0dc27c451 in gtk_widget_event_internal (widget=0x7fa0e1a4eb90,
event=0x7fa0e3799470) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkwidget.c:4984
signal_num = <optimized out>
return_val = 0
#13 0x00007fa0dc290f8b in IA__gtk_window_propagate_key_event
(window=0x7fa0e327a420, event=0x7fa0e3799470) at
/tmp/buildd/gtk+2.0-2.24.10/gtk/gtkwindow.c:5199
parent = <optimized out>
handled = <optimized out>
widget = 0x7fa0e327a420
focus = 0x7fa0e1a4eb90
__PRETTY_FUNCTION__ = "IA__gtk_window_propagate_key_event"
#14 0x00007fa0dc29397b in gtk_window_key_press_event (widget=0x7fa0e327a420,
event=0x7fa0e3799470) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkwindow.c:5229
window = 0x7fa0e327a420
handled = <optimized out>
#15 0x00007fa0dc163538 in _gtk_marshal_BOOLEAN__BOXED (closure=0x7fa0df36ae50,
return_value=0x7fff3193f6e0, n_param_values=<optimized out>,
param_values=0x7fff3193f750,
invocation_hint=<optimized out>, marshal_data=<optimized out>) at
/tmp/buildd/gtk+2.0-2.24.10/gtk/gtkmarshalers.c:86
callback = 0x7fa0dc293940 <gtk_window_key_press_event>
cc = 0x7fa0df36ae50
data1 = 0x7fa0e327a420
data2 = <optimized out>
v_return = <optimized out>
__PRETTY_FUNCTION__ = "_gtk_marshal_BOOLEAN__BOXED"
#16 0x00007fa0db14e512 in g_closure_invoke (closure=0x7fa0df36ae50,
return_value=0x7fff3193f6e0, n_param_values=2, param_values=0x7fff3193f750,
invocation_hint=<optimized out>) at
/tmp/buildd/glib2.0-2.32.2/./gobject/gclosure.c:777
marshal = 0x7fa0db14d130 <g_type_class_meta_marshal>
marshal_data = <optimized out>
in_marshal = <optimized out>
real_closure = 0x7fa0df36ae30
__PRETTY_FUNCTION__ = "g_closure_invoke"
#17 0x00007fa0db15fba9 in signal_emit_unlocked_R (node=<optimized out>,
detail=0, instance=<optimized out>, emission_return=0x7fff3193f920,
instance_and_params=0x7fff3193f750) at
/tmp/buildd/glib2.0-2.32.2/./gobject/gsignal.c:3585
accumulator = 0x7fa0df36af10
emission = {next = 0x0, instance = 0x7fa0e327a420, ihint = {signal_id =
44, detail = 0, run_type = G_SIGNAL_RUN_LAST}, state = EMISSION_RUN,
chain_type = 140328916231168}
class_closure = 0x7fa0df36ae50
hlist = 0x7fa0e346d9f8
handler_list = 0x7fa0df755580
return_accu = 0x7fff3193f6e0
accu = {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}}}
signal_id = 44
max_sequential_handler_number = 113052
return_value_altered = 1
#18 0x00007fa0db1675ee in g_signal_emit_valist (instance=0x7fa0e327a420,
signal_id=<optimized out>, detail=0, var_args=<optimized out>)
at /tmp/buildd/glib2.0-2.32.2/./gobject/gsignal.c:3306
return_value = {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}}}
error = 0x0
rtype = 20
static_scope = 0
instance_and_params = 0x7fff3193f750
signal_return_type = 20
param_values = 0x7fff3193f768
node = 0x7fa0df36aea0
i = <optimized out>
n_params = 1
__PRETTY_FUNCTION__ = "g_signal_emit_valist"
#19 0x00007fa0db167ab2 in g_signal_emit (instance=<optimized out>,
signal_id=<optimized out>, detail=<optimized out>)
at /tmp/buildd/glib2.0-2.32.2/./gobject/gsignal.c:3352
var_args = {{gp_offset = 32, fp_offset = 48, overflow_arg_area =
0x7fff3193fa60, reg_save_area = 0x7fff3193f9a0}}
#20 0x00007fa0dc27c451 in gtk_widget_event_internal (widget=0x7fa0e327a420,
event=0x7fa0e3799470) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkwidget.c:4984
signal_num = <optimized out>
return_val = 0
#21 0x00007fa0dc161797 in IA__gtk_propagate_event (widget=0x7fa0e327a420,
event=0x7fa0e3799470) at /tmp/buildd/gtk+2.0-2.24.10/gtk/gtkmain.c:2463
window = 0x7fa0e327a420
handled_event = <optimized out>
__PRETTY_FUNCTION__ = "IA__gtk_propagate_event"
#22 0x00007fa0dc161a23 in IA__gtk_main_do_event (event=0x7fa0e3799470) at
/tmp/buildd/gtk+2.0-2.24.10/gtk/gtkmain.c:1684
event_widget = <optimized out>
grab_widget = 0x7fa0e327a420
window_group = <optimized out>
rewritten_event = <optimized out>
tmp_list = <optimized out>
__PRETTY_FUNCTION__ = "IA__gtk_main_do_event"
#23 0x00007fa0dbdcd1ec in gdk_event_dispatch (source=<optimized out>,
callback=<optimized out>, user_data=<optimized out>)
at /tmp/buildd/gtk+2.0-2.24.10/gdk/x11/gdkevents-x11.c:2377
display = <optimized out>
event = 0x7fa0e3799470
#24 0x00007fa0dae90853 in g_main_dispatch (context=0x7fa0df300f50) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:2539
dispatch = 0x7fa0dbdcd1a0 <gdk_event_dispatch>
was_in_call = 0
user_data = 0x0
callback = 0
cb_funcs = 0x0
cb_data = 0x0
current_source_link = {data = 0x7fa0df300e60, next = 0x0}
need_destroy = <optimized out>
source = 0x7fa0df300e60
current = 0x7fa0df37d610
i = <optimized out>
#25 g_main_context_dispatch (context=0x7fa0df300f50) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3075
No locals.
#26 0x00007fa0dae90ba0 in g_main_context_iterate (dispatch=1, block=<optimized
out>, context=0x7fa0df300f50, self=<optimized out>)
at /tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3146
timeout = 9648
some_ready = 1
fds = <optimized out>
max_priority = 2147483647
nfds = 153
allocated_nfds = <optimized out>
#27 g_main_context_iterate (context=0x7fa0df300f50, block=<optimized out>,
dispatch=1, self=<optimized out>) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3083
some_ready = 1
#28 0x00007fa0dae90f9a in g_main_loop_run (loop=0x7fa0df2c4d00) at
/tmp/buildd/glib2.0-2.32.2/./glib/gmain.c:3340
__PRETTY_FUNCTION__ = "g_main_loop_run"
#29 0x00007fa0dc160a77 in IA__gtk_main () at
/tmp/buildd/gtk+2.0-2.24.10/gtk/gtkmain.c:1256
tmp_list = <optimized out>
functions = 0x0
init = <optimized out>
loop = 0x7fa0df2c4d00
#30 0x00007fa0dd616743 in main (argc=1, argv=0x7fff3193fdd8) at main.c:268
show_help = 0
show_version = 0
disable_server = 0
modifiers = <optimized out>
app = 0x7fa0df30a840
startup_id = <optimized out>
display = <optimized out>
error = 0x0
nargv = 0x7fa0df2c4c20
nargc = 4
n = <optimized out>
name = <optimized out>
has_util_icon = <optimized out>