After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 144317 - gnome-terminal crashes during two simultaneous tab operations
gnome-terminal crashes during two simultaneous tab operations
Status: RESOLVED DUPLICATE of bug 134800
Product: gnome-terminal
Classification: Core
Component: general
2.6.x
Other Linux
: Low minor
: ---
Assigned To: GNOME Terminal Maintainers
GNOME Terminal Maintainers
Depends on:
Blocks:
 
 
Reported: 2004-06-14 10:54 UTC by Stanislav Brabec
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Stanislav Brabec 2004-06-14 10:54:38 UTC
Description of the crash:
Opening new tab in exactly the same moment another tab (one of two
existing) in the same window is closed, sometimes causes a crash.

Steps to reproduce the crash:
1. Open gnome-terminal window with two tabs.
2. sleep 1 ; exit
3. Wait a little, then press Ctrl+Alt+T

Expected Results:
Two tabs.

How often does this happen?
Very rare, hard to repeat.

Debugging Information:

Backtrace was generated from '/opt/gnome/bin/gnome-terminal'

(no debugging symbols found)...Using host libthread_db library
"/lib/tls/libthread_db.so.1".
(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging
symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...[Thread debugging using libthread_db enabled]
[New Thread 1089622528 (LWP 3585)]
(no debugging symbols found)...(no debugging symbols found)...(no
debugging symbols found)...(no debugging symbols found)...(no debugging
symbols found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...(no debugging symbols
found)...(no debugging symbols found)...0xffffe410 in ?? ()

Thread 1 (Thread 1089622528 (LWP 3585))

  • #0 ??
  • #1 ??
  • #2 ??
  • #3 ??
  • #4 __waitpid_nocancel
    from /lib/tls/libpthread.so.0
  • #5 gnome_init_with_popt_table
    from /opt/gnome/lib/libgnomeui-2.so.0
  • #6 <signal handler called>
  • #7 _vte_draw_get_char_width
    from /opt/gnome/lib/libvte.so.4
  • #8 vte_invalidate_cursor_once
    from /opt/gnome/lib/libvte.so.4
  • #9 vte_terminal_im_preedit_changed
    from /opt/gnome/lib/libvte.so.4
  • #10 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #11 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #12 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #13 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #14 g_signal_emit_by_name
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #15 gtk_im_multicontext_append_menuitems
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #16 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #17 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #18 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #19 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #20 g_signal_emit_by_name
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #21 gtk_im_context_simple_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #22 gtk_im_context_simple_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #23 gtk_im_context_reset
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #24 gtk_im_multicontext_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #25 gtk_im_context_reset
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #26 vte_terminal_im_reset
    from /opt/gnome/lib/libvte.so.4
  • #27 vte_terminal_unrealize
    from /opt/gnome/lib/libvte.so.4
  • #28 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #29 g_type_class_meta_marshal
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #30 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #31 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #32 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #33 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #34 gtk_widget_unrealize
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #35 gtk_box_pack_start_defaults
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #36 gtk_container_forall
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #37 gtk_widget_freeze_child_notify
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #38 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #39 g_type_class_meta_marshal
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #40 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #41 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #42 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #43 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #44 gtk_widget_unrealize
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #45 gtk_widget_unparent
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #46 gtk_notebook_set_tab_label_text
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #47 gtk_notebook_new
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #48 g_cclosure_marshal_VOID__OBJECT
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #49 g_type_class_meta_marshal
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #50 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #51 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #52 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #53 g_signal_emit
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #54 gtk_container_remove
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #55 terminal_window_remove_screen
  • #56 terminal_screen_close
  • #57 g_cclosure_marshal_VOID__VOID
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #58 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #59 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #60 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #61 g_signal_emit_by_name
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #62 vte_terminal_catch_child_exited
    from /opt/gnome/lib/libvte.so.4
  • #63 _vte_marshal_VOID__INT_INT
    from /opt/gnome/lib/libvte.so.4
  • #64 g_closure_invoke
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #65 signal_emit_unlocked_R
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #66 g_signal_emit_valist
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #67 g_signal_emit_by_name
    from /opt/gnome/lib/libgobject-2.0.so.0
  • #68 vte_reaper_emit_signal
    from /opt/gnome/lib/libvte.so.4
  • #69 g_io_unix_dispatch
    from /opt/gnome/lib/libglib-2.0.so.0
  • #70 g_main_context_dispatch
    from /opt/gnome/lib/libglib-2.0.so.0
  • #71 g_main_context_iterate
    from /opt/gnome/lib/libglib-2.0.so.0
  • #72 g_main_loop_run
    from /opt/gnome/lib/libglib-2.0.so.0
  • #73 gtk_main
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #74 ??
  • #75 ??
  • #76 ??
  • #77 ??
  • #78 ??
  • #79 ??
  • #80 ??
  • #81 ??
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #82 ??
  • #83 ??
  • #84 ??
  • #85 ??
  • #86 _dl_runtime_resolve
    from /lib/ld-linux.so.2
  • #87 main
  • #0 ??

Comment 1 Mariano Suárez-Alvarez 2004-07-01 23:14:39 UTC
I have spent a while opening and closing tabs and I cannot reproduce this.
If you can, could you please recompile gnome-terminal so that we have debugging
symbols and get a 'backtrace full' backtrace from gdb?
Comment 2 Stanislav Brabec 2004-07-02 10:21:05 UTC
Not able to repeat. Race condition time seems to be too short.

My guess is race condition somewhere in terminal_window_add_screen(), 
terminal_window_remove_screen(), update_notebook() or gtk_notebook_set_show_*().
Especially strange is, that terminal_window_remove_screen() was running in both
threads.

  • #54 gtk_container_remove
    from /opt/gnome/lib/libgtk-x11-2.0.so.0
  • #55 terminal_window_remove_screen
  • #56 terminal_screen_close
  • #47 gtk_notebook_new
    from ...
  • #54 gtk_container_remove
  • #55 terminal_window_remove_screen
  • #56 terminal_screen_close

I am not oriented in code, but there can be races in manipulation with
window->priv->terms and window->priv->active_term without locking or unref()
before actual disappearing from all structures.
Comment 3 Olav Vitters 2004-07-08 22:54:34 UTC
Thanks for the bug report. This particular bug has already been reported into
our bug tracking system, but please feel free to report any further bugs you find.

Note: full backtrace in other bug

*** This bug has been marked as a duplicate of 134800 ***