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 540161 - GLib critical warning & possible hang on ctrl-c
GLib critical warning & possible hang on ctrl-c
Status: RESOLVED DUPLICATE of bug 538344
Product: vte
Classification: Core
Component: general
0.16.x
Other All
: Normal normal
: ---
Assigned To: VTE Maintainers
VTE Maintainers
Depends on:
Blocks:
 
 
Reported: 2008-06-25 14:40 UTC by Nick Treleaven
Modified: 2008-11-27 19:40 UTC
See Also:
GNOME target: ---
GNOME version: 2.13/2.14



Description Nick Treleaven 2008-06-25 14:40:11 UTC
Please describe the problem:
Hi,
We're using the VTE library in the Geany lightweight IDE. I noticed this GLib message when we start the VTE:

GLib-GObject-CRITICAL **: g_object_notify_queue_thaw: assertion `nqueue->freeze_count > 0' failed

I'm reporting this because Geany hangs when pressing Ctrl-C in the VTE widget with VTE 0.16.14. I'm not sure if this is related to the GLib warning, or if it is libvte or Geany that is at fault. But according to one user, this only started happening with VTE 0.16.14.

For reference, the Geany bug report is here:
https://sourceforge.net/tracker/index.php?func=detail&aid=1990323&group_id=153444&atid=787791

Steps to reproduce:
1. Start Geany
2. Focus the VTE
3. Press Ctrl-C


Actual results:
Geany prints 2 more indentical GLib warnings as the one on startup, then hangs indefinitely.

Expected results:
The VTE is reset as usual.

Does this happen every time?
Yes (unless Override Geany Keybindings is enabled, but Geany's ctrl-c copy keybinding just does nothing when the VTE is focused).

Other information:
Backtrace with --g-fatal-warnings after the above GLib warning:

(gdb) bt
  • #0 __kernel_vsyscall
  • #1 raise
    from /lib/libc.so.6
  • #2 abort
    from /lib/libc.so.6
  • #3 g_logv
    from /usr/lib/libglib-2.0.so.0
  • #4 g_log
    from /usr/lib/libglib-2.0.so.0
  • #5 g_return_if_fail_warning
    from /usr/lib/libglib-2.0.so.0
  • #6 g_object_newv
    from /usr/lib/libgobject-2.0.so.0
  • #7 g_object_new_valist
    from /usr/lib/libgobject-2.0.so.0
  • #8 g_object_new
    from /usr/lib/libgobject-2.0.so.0
  • #9 vte_reaper_get
    at reaper.c line 248
  • #10 vte_reaper_add_child
    at reaper.c line 118
  • #11 _vte_terminal_fork_basic
    at vte.c line 2919
  • #12 vte_start
    at vte.c line 337
  • #13 create_vte
    at vte.c line 245
  • #14 vte_init
    at vte.c line 203
  • #15 main
    at main.c line 860

Comment 1 Nick Treleaven 2008-06-25 14:42:31 UTC
I forgot, my system is Fedora Core 5 linux; 
gtk2-2.8.20-1
glib2-2.10.3-1

This occurs with Geany SVN, but probably with Geany 0.14 as well.
Comment 2 Christian Persch 2008-06-25 16:31:34 UTC
Confirmed on vte trunk.
Comment 3 Christian Persch 2008-06-25 16:38:52 UTC
I should have been more precise. I can repro the hang, but there's no critical warnings.
Comment 4 Nick Treleaven 2008-06-25 17:47:00 UTC
OK, I'm not bothered about the warnings, just wondered if they might be related. Thanks for looking into this.
Comment 5 Nick Treleaven 2008-06-26 12:11:44 UTC
Some more info:

I mentioned that the hang doesn't occur when 'Override Geany Keybindings' is enabled. When it is disabled (the default), the hang after ctrl-c occurs in vte_keypress() of the Geany source file src/vte.c, which does this:

if (pid > 0)
{
	kill(pid, SIGINT);
	pid = 0;
}
vf->vte_terminal_reset(VTE_TERMINAL(widget), TRUE, TRUE);
vte_start(widget);

where pid is the result of vte_terminal_fork_command(). This code hangs Geany, specifically, after the vte_start() call. (vf is just a struct of function pointers for the VTE API).

I found that the hang is not really related to pressing ctrl-c, just when Geany tries to restart the terminal - Geany also hangs when using the VTE popup menu Restart command.
Comment 6 Nick Treleaven 2008-06-26 12:39:32 UTC
Sorry, vte_start() is a Geany function that calls the vte_terminal_fork_command(), which is the final VTE function before Geany hangs.
Comment 7 Nick Treleaven 2008-07-24 17:32:00 UTC
We've removed the call to vte_terminal_fork_command() when resetting the VTE, and this avoids the hang (in geany SVN). Sometimes with VTE 0.16.14 the reset leaves a blank terminal (with no prompt), but pressing enter makes it then display as normal.
Comment 8 Christian Persch 2008-08-21 09:04:09 UTC
Possibly this is the same problem as bug 538344.
Comment 9 Christian Persch 2008-10-19 23:15:07 UTC
Can you please test with vte >= 0.17.3 and see if that fixes it? If so, this is a dup of bug 538344.
Comment 10 Christian Persch 2008-11-26 12:39:01 UTC
Ping? Can you please test with vte >= 0.17.3 and see if that fixes it? If so, this is a dup of bug 538344.
Comment 11 Enrico Tröger 2008-11-27 19:31:45 UTC
I just tested it with SVN r2205 of vte (0.17.5).
Everything seems to work fine, no more freezes.

Sorry for the late reply.
Comment 12 Christian Persch 2008-11-27 19:40:29 UTC
Thanks! Marking as dup.

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