[Bug 17247] New: gnome-terminal crashes if you start too many too quickly

bugzilla-daemon at bugzilla.ubuntu.com bugzilla-daemon at bugzilla.ubuntu.com
Fri Oct 7 15:25:58 UTC 2005


Please do not reply to this email.  You can add comments at
http://bugzilla.ubuntu.com/show_bug.cgi?id=17247
Ubuntu | gnome-terminal

           Summary: gnome-terminal crashes if you start too many too quickly
           Product: Ubuntu
           Version: unspecified
          Platform: i386
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: normal
          Priority: P2
         Component: gnome-terminal
        AssignedTo: seb128 at ubuntu.com
        ReportedBy: dooglus at gmail.com
         QAContact: desktop-bugs at lists.ubuntu.com


I was trying to find a reliable way to reproduce bug 17137.  It only seems to
happen when the window list at the bottom is full.  So I decided to run a few
gnome-terminals to fill it up.

I often run terminals, so I have put an icon on the top panel to allow me to run
them easily.  I started with nothing showing in the window list at all and then
clicked the gnome-terminal icon on my top panel 4 times quickly - like a double
click on the mouse, only 4 of them, really quite fast.  Only 3 of the 4 windows
I requested appeared, and then I heard a clunking noise and saw a dialog telling
me that "The Application "gnome-terminal" has quit unexpectedly.  I told it to
close, and the 3 windows all disappeared.

This doesn't happen every time I try it, but about 1 in 10 times it does.  I
compiled gnome-terminal from the sources so I could bring you a stack trace.  I
waited for gnome-terminal to crash, then attached to it with gdb which the
dialog telling me that it had crashed was still displayed.

The processes running at the time looked like this:

UID        PID  PPID  C STIME TTY          TIME CMD
chris    32763     1  0 17:14 ?        00:00:00 sh -c cd
/home/chris/src/gnome-terminal/gnome-terminal-2.12.0/src; ./gnome-terminal
chris    32764 32763  0 17:14 ?        00:00:00 ./gnome-terminal
chris      340 32764  0 17:14 ?        00:00:00 /usr/lib/libgnomeui-0/gnome_segv
gnome-terminal 11 2.12.0

I attached to the process like this: "gdb ./gnome-terminal 32764"

And saw this stack trace:

#0  0xffffe410 in __kernel_vsyscall ()
#1  0xb72fe4ab in __waitpid_nocancel () from /lib/tls/i686/cmov/libpthread.so.0
#2  0xb7f4c508 in libgnomeui_module_info_get () from /usr/lib/libgnomeui-2.so.0
#3  <signal handler called>
#4  0x0805c14c in option_parsing_results_init (argc=0xbfbc4cf8, argv=0x8439468)
at terminal.c:1232
#5  0x0805f724 in handle_new_terminal_events () at terminal.c:3661
#6  0xb74394e7 in bonobo_marshal_VOID__STRING_BOXED_BOXED () from
/usr/lib/libbonobo-2.so.0
#7  0xb733b3a8 in IA__g_closure_invoke (closure=0x8116620, return_value=0x2d,
n_param_values=45, param_values=0x2d, invocation_hint=0x2d)
    at gclosure.c:492
#8  0xb743a566 in bonobo_closure_invoke_va_list () from /usr/lib/libbonobo-2.so.0
#9  0xb743a854 in bonobo_closure_invoke () from /usr/lib/libbonobo-2.so.0
#10 0xb7427d2f in bonobo_listener_get_type () from /usr/lib/libbonobo-2.so.0
#11 0xb743b40d in _ORBIT_skel_small_Bonobo_Listener_event () from
/usr/lib/libbonobo-2.so.0
#12 0xb739f260 in ORBit_POA_setup_root () from /usr/lib/libORBit-2.so.0
#13 0xb73a3c4e in ORBit_OAObject_invoke () from /usr/lib/libORBit-2.so.0
#14 0xb7390ceb in ORBit_small_invoke_adaptor () from /usr/lib/libORBit-2.so.0
#15 0xb739f57c in ORBit_POAObject_post_invoke () from /usr/lib/libORBit-2.so.0
#16 0xb739fc1b in ORBit_POAObject_post_invoke () from /usr/lib/libORBit-2.so.0
#17 0xb73a2641 in ORBit_c_stub_invoke () from /usr/lib/libORBit-2.so.0
#18 0xb73a3ba3 in ORBit_handle_request () from /usr/lib/libORBit-2.so.0
#19 0xb738dd10 in giop_connection_handle_input () from /usr/lib/libORBit-2.so.0
#20 0xb73aa24d in link_connection_set_max_buffer () from /usr/lib/libORBit-2.so.0
#21 0xb73abe23 in link_servers_move_io_T () from /usr/lib/libORBit-2.so.0
#22 0xb72964ee in IA__g_main_context_dispatch (context=0x80c2338) at gmain.c:1934
#23 0xb72994f6 in g_main_context_iterate (context=0x80c2338, block=1,
dispatch=1, self=0x80be690) at gmain.c:2565
#24 0xb72999d8 in IA__g_main_context_iteration (context=0x80c2338, may_block=1)
at gmain.c:2624
#25 0xb73a81da in link_main_iteration () from /usr/lib/libORBit-2.so.0
#26 0xb738d3b5 in giop_recv_buffer_get () from /usr/lib/libORBit-2.so.0
#27 0xb7390a4a in ORBit_small_invoke_stub () from /usr/lib/libORBit-2.so.0
#28 0xb7390c1d in ORBit_small_invoke_stub_n () from /usr/lib/libORBit-2.so.0
#29 0xb73a2439 in ORBit_c_stub_invoke () from /usr/lib/libORBit-2.so.0
#30 0xb6e2c254 in Accessibility_EventListener_notifyEvent () from
/usr/lib/libspi.so.0
#31 0xb6ea22d0 in gnome_accessibility_module_shutdown () from
/usr/lib/gtk-2.0/modules/libatk-bridge.so
#32 0xb6ea2928 in gnome_accessibility_module_shutdown () from
/usr/lib/gtk-2.0/modules/libatk-bridge.so
#33 0xb734990c in signal_emit_unlocked_R (node=0x810c9b0, detail=1367,
instance=0x8467848, emission_return=0x0, 
    instance_and_params=0xbfbc581c) at gsignal.c:2451
#34 0xb734b150 in IA__g_signal_emit_valist (instance=0x8467848, signal_id=137,
detail=1367, var_args=Variable "var_args" is not available.
) at gsignal.c:2244
#35 0xb734b4c3 in IA__g_signal_emit (instance=0x2d, signal_id=45, detail=45) at
gsignal.c:2288
#36 0xb7945421 in atk_object_initialize () from /usr/lib/libatk-1.0.so.0
#37 0xb734727c in IA__g_cclosure_marshal_VOID__PARAM (closure=0xbfbc5a5c,
return_value=0x0, n_param_values=2, param_values=0xbfbc5d0c, 
    invocation_hint=0xbfbc5c0c, marshal_data=0xb794ed0c) at gmarshal.c:531
#38 0xb733ad75 in g_type_class_meta_marshal (closure=0x80aedc0,
return_value=0x2d, n_param_values=45, param_values=0xbfbc5d0c, 
    invocation_hint=0x2d, marshal_data=0x2d) at gclosure.c:569
#39 0xb733b3a8 in IA__g_closure_invoke (closure=0x80aedc0, return_value=0x2d,
n_param_values=45, param_values=0x2d, invocation_hint=0x2d)
    at gclosure.c:492
#40 0xb7349769 in signal_emit_unlocked_R (node=0x80b69a8, detail=1367,
instance=0x8467848, emission_return=0x0, 
    instance_and_params=0xbfbc5d0c) at gsignal.c:2415
#41 0xb734b150 in IA__g_signal_emit_valist (instance=0x8467848, signal_id=1,
detail=1367, var_args=Variable "var_args" is not available.
) at gsignal.c:2244
#42 0xb734b4c3 in IA__g_signal_emit (instance=0x2d, signal_id=45, detail=45) at
gsignal.c:2288
#43 0xb733cc5b in g_object_dispatch_properties_changed (object=0x8467848,
n_pspecs=1, pspecs=0xbfbc5f7c) at gobject.c:557
#44 0xb733c1ea in g_object_notify_dispatcher (object=0x0, n_pspecs=45,
pspecs=0x2d) at gobject.c:238
#45 0xb73400bd in IA__g_object_notify (object=0x8467848,
property_name=0xb794e3cb "accessible-parent") at gobjectnotifyqueue.c:123
#46 0xb7944414 in atk_object_set_parent () from /usr/lib/libatk-1.0.so.0
#47 0xb6dea429 in gail_toplevel_new () from /usr/lib/gtk-2.0/modules/libgail.so
#48 0xb734990c in signal_emit_unlocked_R (node=0x80ed248, detail=0,
instance=0x840eb70, emission_return=0x0, 
    instance_and_params=0xbfbc623c) at gsignal.c:2451
#49 0xb734b150 in IA__g_signal_emit_valist (instance=0x840eb70, signal_id=22,
detail=0, var_args=Variable "var_args" is not available.
) at gsignal.c:2244
#50 0xb734b4c3 in IA__g_signal_emit (instance=0x2d, signal_id=45, detail=45) at
gsignal.c:2288
#51 0xb7beb0e6 in gtk_widget_show () from /usr/lib/libgtk-x11-2.0.so.0
#52 0xb7bf6d18 in gtk_window_present_with_time () from /usr/lib/libgtk-x11-2.0.so.0
#53 0xb7bf6d81 in gtk_window_present () from /usr/lib/libgtk-x11-2.0.so.0
#54 0x0805d877 in terminal_app_new_terminal (app=0x811c310, profile=0x8132ff0,
window=0x840eb70, force_menubar_state=0, 
    forced_menubar_state=0, start_fullscreen=0, override_command=0x0,
geometry=0x0, title=0x0, 
    working_dir=0x840ede0
"/home/chris/src/gnome-terminal/gnome-terminal-2.12.0/src", role=0x0, zoom=1, 
    startup_id=0x840ee38 "_TIME51880210", display_name=0x840eb50 ":0.0",
screen_number=0) at terminal.c:1980
#55 0x0805dd80 in new_terminal_with_options (results=0x840eb20) at terminal.c:1432
#56 0x0805f913 in handle_new_terminal_events () at terminal.c:3693
#57 0xb74394e7 in bonobo_marshal_VOID__STRING_BOXED_BOXED () from
/usr/lib/libbonobo-2.so.0
#58 0xb733b3a8 in IA__g_closure_invoke (closure=0x8116620, return_value=0x2d,
n_param_values=45, param_values=0x2d, invocation_hint=0x2d)
    at gclosure.c:492
#59 0xb743a566 in bonobo_closure_invoke_va_list () from /usr/lib/libbonobo-2.so.0
#60 0xb743a854 in bonobo_closure_invoke () from /usr/lib/libbonobo-2.so.0
#61 0xb7427d2f in bonobo_listener_get_type () from /usr/lib/libbonobo-2.so.0
#62 0xb743b40d in _ORBIT_skel_small_Bonobo_Listener_event () from
/usr/lib/libbonobo-2.so.0
#63 0xb739f260 in ORBit_POA_setup_root () from /usr/lib/libORBit-2.so.0
#64 0xb73a3c4e in ORBit_OAObject_invoke () from /usr/lib/libORBit-2.so.0
#65 0xb7390ceb in ORBit_small_invoke_adaptor () from /usr/lib/libORBit-2.so.0
#66 0xb739f57c in ORBit_POAObject_post_invoke () from /usr/lib/libORBit-2.so.0
#67 0xb739fc1b in ORBit_POAObject_post_invoke () from /usr/lib/libORBit-2.so.0
#68 0xb73a2641 in ORBit_c_stub_invoke () from /usr/lib/libORBit-2.so.0
#69 0xb73a3ba3 in ORBit_handle_request () from /usr/lib/libORBit-2.so.0
#70 0xb738dd10 in giop_connection_handle_input () from /usr/lib/libORBit-2.so.0
#71 0xb73aa24d in link_connection_set_max_buffer () from /usr/lib/libORBit-2.so.0
#72 0xb73abe23 in link_servers_move_io_T () from /usr/lib/libORBit-2.so.0
#73 0xb72964ee in IA__g_main_context_dispatch (context=0x80bb3f0) at gmain.c:1934
#74 0xb72994f6 in g_main_context_iterate (context=0x80bb3f0, block=1,
dispatch=1, self=0x80be690) at gmain.c:2565
#75 0xb72997e3 in IA__g_main_loop_run (loop=0x81ee460) at gmain.c:2769
#76 0xb7b00ee5 in gtk_main () from /usr/lib/libgtk-x11-2.0.so.0
#77 0x080600c8 in main (argc=1, argv=0xbfbc6e24) at terminal.c:1770

I notice that no matter how many gnome-terminals you run, there's only one
process.  Perhaps starting 2 "at the same time" triggers a race condition.

-- 
Configure bugmail: http://bugzilla.ubuntu.com/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug, or are watching the QA contact.




More information about the desktop-bugs mailing list