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 134800 - gnome-termnal hung up when input by ATOK
gnome-termnal hung up when input by ATOK
Status: RESOLVED FIXED
Product: vte
Classification: Core
Component: general
unspecified
Other other
: High critical
: ---
Assigned To: VTE Maintainers
VTE Maintainers
: 144317 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2004-02-19 02:28 UTC by kiku
Modified: 2006-07-19 20:30 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
The patch is to src/vte.c (847 bytes, patch)
2004-08-30 06:23 UTC, ynakai
none Details | Review
Updated patch - Add ChangeLog entry (1.48 KB, patch)
2004-10-19 09:31 UTC, ynakai
committed Details | Review

Description kiku 2004-02-19 02:30:19 UTC
Distribution: TurboLinux Turbolinux Desktop 10.0 (Suzuka)
Package: gnome-terminal
Severity: normal
Version: GNOME2.4.0 2.4.0.1
Gnome-Distributor: GNOME.Org
Synopsis: gnome-termnal hung up when input by ATOK
Bugzilla-Product: gnome-terminal
Bugzilla-Component: general
Bugzilla-Version: 2.4.0.1
BugBuddy-GnomeVersion: 2.0 (2.4.0.1)
Description:
Description of the crash:


Steps to reproduce the crash:
1. 
2. 
3. 

Expected Results:


How often does this happen?


Additional Information:



Debugging Information:

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

(no debugging symbols found)...[New Thread 16384 (LWP 5585)]
0x40508e48 in waitpid ()
   from /lib/libpthread.so.0

Thread 1 (Thread 16384 (LWP 5585))

  • #0 waitpid
    from /lib/libpthread.so.0
  • #1 valid
    from /usr/lib/libgnomeui-2.so.0
  • #2 __pthread_sighandler
    at sighandler.c line 38
  • #3 <signal handler called>
  • #4 _vte_draw_get_char_width
    at vtedraw.c line 252
  • #5 vte_invalidate_cursor_once
    at vte.c line 821
  • #6 vte_terminal_im_preedit_changed
    at vte.c line 7772
  • #7 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #8 g_closure_invoke
    at gclosure.c line 437
  • #9 signal_emit_unlocked_R
    at gsignal.c line 2822
  • #10 g_signal_emit_valist
    at gsignal.c line 2554
  • #11 g_signal_emit_by_name
    at gsignal.c line 2649
  • #12 gtk_im_multicontext_preedit_changed_cb
    at gtkimmulticontext.c line 445
  • #13 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #14 g_closure_invoke
    at gclosure.c line 437
  • #15 signal_emit_unlocked_R
    at gsignal.c line 2822
  • #16 g_signal_emit_valist
    at gsignal.c line 2554
  • #17 g_signal_emit_by_name
    at gsignal.c line 2649
  • #18 gtk_im_context_xim_reset
    at gtkimcontextxim.c line 872
  • #19 gtk_im_context_reset
    at gtkimcontext.c line 378
  • #20 gtk_im_multicontext_reset
    at gtkimmulticontext.c line 361
  • #21 gtk_im_context_reset
    at gtkimcontext.c line 378
  • #22 vte_terminal_im_reset
    at vte.c line 6949
  • #23 vte_terminal_unrealize
    at vte.c line 11124
  • #24 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #25 g_type_class_meta_marshal
    at gclosure.c line 514
  • #26 g_closure_invoke
    at gclosure.c line 437
  • #27 signal_emit_unlocked_R
    at gsignal.c line 2860
  • #28 g_signal_emit_valist
    at gsignal.c line 2554
  • #29 g_signal_emit
    at gsignal.c line 2612
  • #30 gtk_widget_unrealize
    at gtkwidget.c line 2062
  • #31 gtk_box_forall
    at gtkbox.c line 700
  • #32 gtk_container_forall
    at gtkcontainer.c line 1256
  • #33 gtk_widget_real_unrealize
    at gtkwidget.c line 6206
  • #34 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #35 g_type_class_meta_marshal
    at gclosure.c line 514
  • #36 g_closure_invoke
    at gclosure.c line 437
  • #37 signal_emit_unlocked_R
    at gsignal.c line 2860
  • #38 g_signal_emit_valist
    at gsignal.c line 2554
  • #39 g_signal_emit
    at gsignal.c line 2612
  • #40 gtk_widget_unrealize
    at gtkwidget.c line 2062
  • #41 gtk_notebook_forall
    at gtknotebook.c line 2238
  • #42 gtk_container_forall
    at gtkcontainer.c line 1256
  • #43 gtk_widget_real_unrealize
    at gtkwidget.c line 6206
  • #44 gtk_notebook_unrealize
    at gtknotebook.c line 1059
  • #45 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #46 g_type_class_meta_marshal
    at gclosure.c line 514
  • #47 g_closure_invoke
    at gclosure.c line 437
  • #48 signal_emit_unlocked_R
    at gsignal.c line 2860
  • #49 g_signal_emit_valist
    at gsignal.c line 2554
  • #50 g_signal_emit
    at gsignal.c line 2612
  • #51 gtk_widget_unrealize
    at gtkwidget.c line 2062
  • #52 gtk_box_forall
    at gtkbox.c line 710
  • #53 gtk_container_forall
    at gtkcontainer.c line 1256
  • #54 gtk_widget_real_unrealize
    at gtkwidget.c line 6206
  • #55 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #56 g_type_class_meta_marshal
    at gclosure.c line 514
  • #57 g_closure_invoke
    at gclosure.c line 437
  • #58 signal_emit_unlocked_R
    at gsignal.c line 2860
  • #59 g_signal_emit_valist
    at gsignal.c line 2554
  • #60 g_signal_emit
    at gsignal.c line 2612
  • #61 gtk_widget_unrealize
    at gtkwidget.c line 2062
  • #62 gtk_bin_forall
    at gtkbin.c line 164
  • #63 gtk_container_forall
    at gtkcontainer.c line 1256
  • #64 gtk_widget_real_unrealize
    at gtkwidget.c line 6206
  • #65 gtk_window_unrealize
    at gtkwindow.c line 3829
  • #66 g_cclosure_marshal_VOID__VOID
    at gmarshal.c line 77
  • #67 g_type_class_meta_marshal
    at gclosure.c line 514
  • #68 g_closure_invoke
    at gclosure.c line 437
  • #69 signal_emit_unlocked_R
    at gsignal.c line 2860
  • #70 g_signal_emit_valist
    at gsignal.c line 2554
  • #71 g_signal_emit
    at gsignal.c line 2612
  • #72 gtk_widget_unrealize
    at gtkwidget.c line 2062
  • #73 gtk_widget_dispose
    at gtkwidget.c line 6056
  • #74 gtk_window_dispose
    at gtkwindow.c line 1718
  • #75 g_object_run_dispose
    at gobject.c line 474
  • #76 gtk_object_destroy
    at gtkobject.c line 361
  • #77 gtk_widget_destroy
    at gtkwidget.c line 1699
  • #78 gtk_main_do_event
    at gtkmain.c line 1453
  • #79 gdk_event_dispatch
    at gdkevents-x11.c line 2064
  • #80 g_main_dispatch
    at gmain.c line 1751
  • #81 g_main_context_dispatch
    at gmain.c line 2299
  • #82 g_main_context_iterate
    at gmain.c line 2380
  • #83 g_main_loop_run
    at gmain.c line 2600
  • #84 gtk_main
    at gtkmain.c line 1093
  • #85 main
  • #86 __libc_start_main
    at ../sysdeps/generic/libc-start.c line 225
  • #0 waitpid
    from /lib/libpthread.so.0




------- Bug moved to this database by unknown@bugzilla.gnome.org 2004-02-18 21:30 -------

Unknown version 2.4.0.1 in product gnome-terminal. Setting version to the default, "unspecified".
The original reporter (kiku@nobworks.co.jp) of this bug does not have an account here.
Reassigning to the exporter, unknown@bugzilla.gnome.org.
Reassigning to the default owner of the component, gnome-terminal-maint@bugzilla.gnome.org.

Comment 1 Elijah Newren 2004-02-19 04:11:43 UTC
This appears to be a unique stack trace, according to the
simple-dup-finder.  I'm moving to vte based on the stack trace and
setting some fields appropriately.
Comment 2 Olav Vitters 2004-07-08 22:54:35 UTC
*** Bug 144317 has been marked as a duplicate of this bug. ***
Comment 3 ynakai 2004-08-30 06:12:17 UTC
Same bug with same backtrace happen on im-canna and normal im-xim module.
There is a trivial mistake in vte/src/vte.c, it refers NULL pointer.

Generally, immodule reset function clears preedit string.
(It depends on immodules implementation. Some immodules don't have reset function)
So then, it emits "preedit_changed" signal. vte catch it and invoke 
vte_terminal_im_preedit_changed(), at

  • #6 vte_terminal_im_preedit_changed
    at vte.c line 7772
  • #4 _vte_draw_get_char_width
    at vtedraw.c line 252

This happens in vte_terminal_unrealize() in vte.c.
It frees terminal->pvt->draw and set NULL to it before it calls
vte_terminal_im_reset().

The patch is attached.
Comment 4 ynakai 2004-08-30 06:23:54 UTC
Created attachment 31077 [details] [review]
The patch is to src/vte.c

This patch is for FC2 vte-0.11.10-5.1 package and
I confirmed it is applicable to vte CVS HEAD successfully.

And I confirmed gnome-terminal turns to work on im-canna
and im-xim happily with this patch.
I cannot confirm this bug with ATOK until I have it.
It's a commercial software.
Comment 5 Kjartan Maraas 2004-10-18 10:13:06 UTC
Please review and commit if it's ok.
Comment 6 ynakai 2004-10-19 09:26:56 UTC
OK, I've confirmed how this bug happen on gnome-terminal with ATOKX.
100% reproducable.

1. Press [Ctrl]-[Space] to enable ATOK Japanese input
2. Press 'a' and Japanese 'a' shows up as preedit string with underline
3. Press up-right X button of window manager to kill gnome-terminal
4. Crash

#4 patch fixes the bug. I confirmed it doesn't crash.

Comment 7 ynakai 2004-10-19 09:31:55 UTC
Created attachment 32756 [details] [review]
Updated patch - Add ChangeLog entry
Comment 8 ynakai 2004-10-19 09:43:22 UTC
I cannot reproduce #144317 bug as it is saying it's rare.
But should be fixed with the patch, hopefully.

That patch is against CVS HEAD.

Nalin, Can I commit?
Comment 9 Kjartan Maraas 2005-09-30 19:18:35 UTC
If you are sure about this I think it's ok to commit.
Comment 10 Kjartan Maraas 2006-05-09 11:09:19 UTC
Behdad, should we commit this?
Comment 11 Guilherme de Siqueira Pastore 2006-05-09 20:27:45 UTC
Would you please provide information on why you marked this bug as resolved?
Comment 12 Behdad Esfahbod 2006-05-09 21:03:29 UTC
Yes Kjartan, please go ahead.
Comment 13 Behdad Esfahbod 2006-07-19 20:30:39 UTC
2006-07-19  Behdad Esfahbod  <behdad@gnome.org>

        Bug 134800 – gnome-termnal hung up when input by ATOK
        Patch from Yukihiro Nakai  <nakai@gnome.gr.jp>

        * src/vte.c (vte_terminal_unrealize): Delay _vte_draw_free().