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 752372 - gnome-terminal-3.16.2 will not run
gnome-terminal-3.16.2 will not run
Status: RESOLVED FIXED
Product: gnome-terminal
Classification: Core
Component: general
3.16.x
Other Linux
: Normal normal
: ---
Assigned To: GNOME Terminal Maintainers
GNOME Terminal Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-07-14 14:01 UTC by john.frankish@outlook.com
Modified: 2015-07-31 16:16 UTC
See Also:
GNOME target: ---
GNOME version: 3.15/3.16



Description john.frankish@outlook.com 2015-07-14 14:01:01 UTC
Using gnome-3.16.x on a non-systemd setup

$ gnome-terminal
Error creating terminal: Message did not receive a reply (timeout by message
bus)

As per google, the two most usual problems are the locale and vte version,
but:

$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=

$ ldd `which gnome-terminal` | grep vte
        libvte-2.91.so.0 => /usr/local/lib/libvte-2.91.so.0
(0x00007f58c8450000)

org.gnome.Terminal.xml is not installed, is it meant to go in /usr/local/share/dbus-1/interfaces? Even if I copy it there, gnome-terminal still will not run.
Comment 1 Christian Persch 2015-07-14 15:50:52 UTC
(In reply to john.frankish@outlook.com from comment #0)
> Using gnome-3.16.x on a non-systemd setup

Is this a full gnome-session session, at least?

> org.gnome.Terminal.xml is not installed, is it meant to go in
> /usr/local/share/dbus-1/interfaces? Even if I copy it there, gnome-terminal
> still will not run.

Which distro is this? Looks like it's broken if they don't install the dbus service file in the correct place. Or something else is broken with dbus in your setup...
Comment 2 john.frankish@outlook.com 2015-07-14 17:16:16 UTC
Yes, it is a full gnome-session session.

tinycorelinux 64-bit.

gnome-terminal was compiled from source and org.gnome.Terminal.xml was not installed by "make install". I checked the 3.16.2 debian package and they don't have the file either...

..anyway, even with the file in place, I get the same error.

Since everything else seems to be working I assume the dbus installation is OK, but please let me know if you'd like me to check something.
Comment 3 Christian Persch 2015-07-14 17:46:03 UTC
Oh right, the .xml is wrong, it's .service, and that file is created by make and installed to the right location.

Since the error is not 'org.gnome.Terminal not provided by any .service files' but 'no reply', I think this is a dbus setup problem.

Try your distribution's support forum.
Comment 4 Christian Persch 2015-07-14 17:53:35 UTC
Or alternatively gnome-terminal-server *is* started, but hangs. If so, you should attach gdb to it and get an all-thread backtrace.
Comment 5 john.frankish@outlook.com 2015-07-14 17:58:14 UTC
OK, /usr/local/share/dbus-1/services/org.gnome.Terminal.service is present.

I'm the one who maintains this for my distribution.

Again, as gnome-session and friends work without problems, I believe the dbus setup is OK, but of course I could be mistaken.

I'd appreciate any trouble-shooting suggestions that might narrow down the dbus setup problems you're speaking of.
Comment 6 john.frankish@outlook.com 2015-07-14 17:59:30 UTC
I tried gdb, but it repeated the dbus time-out and "exited normally".
Comment 7 john.frankish@outlook.com 2015-07-14 18:00:58 UTC
I also tried "gnome-terminal --gtk-debug=all --gdk-debug=all", but it did not throw up any errors.
Comment 8 Christian Persch 2015-07-14 18:04:29 UTC
gnome-terminal-server, not gnome-terminal.

Also, try running the server directly and see if it outputs anything interesting. See https://wiki.gnome.org/Apps/Terminal/Debugging for more hints.
Comment 9 john.frankish@outlook.com 2015-07-14 19:00:31 UTC
Running

$ gdb --args /usr/local/lib/gnome-terminal/gnome-terminal-server --app-id my.foo.Terminal

in one terminal and

$ gnome-terminal --app-id my.foo.Terminal

in another, I get:

Vte:ERROR:vtestream-file.h:813:_vte_boa_init: assertion failed (gnutls_cipher_get_iv_size(VTE_CIPHER_ALGORITHM) == VTE_CIPHER_IV_SIZE): (4 == 12)

Program received signal SIGABRT, Aborted.
0x00007fffef84191b in raise () from /lib/libc.so.6

Unless this means something, I guess I'll need to recompile glib, vte and gnome-terminal to get the debugging symbols [sigh]...
Comment 10 Christian Persch 2015-07-14 19:30:38 UTC
That looks similar to bug 748343...
Comment 11 Christian Persch 2015-07-14 19:40:21 UTC
When in gdb and at the abort, can you check in /proc/$PID/maps if gnome-terminal-server is maybe linked to two different gnutls libs?
Comment 12 Egmont Koblinger 2015-07-15 07:20:33 UTC
Oh no... IV size is 12 normally, 0 in that other bug, and 4 here, what the heck is going on???

John, what's your gnutls version? Also, as per that other bug, could you try commenting out this single assertion line in gnome-terminal's source that causes the failure and see if it works with large scrollback data?
Comment 13 Christian Persch 2015-07-15 07:49:47 UTC
Apart from comment 11, you could also try adding some more assertions *before* the failing one, and see if they trigger:

g_assert_cmpstr (gnutls_cipher_get_name(VTE_CIPHER_ALGORITHM), ==, "AES-256-GCM");
g_assert_cmpint (gnutls_cipher_get_id("AES-256-GCM"), ==, VTE_CIPHER_ALGORITHM);
Comment 14 john.frankish@outlook.com 2015-07-15 10:43:25 UTC
To answer the various questions:

$ ps aux | grep gnome-terminal
19571 tc       gdb --args /usr/local/lib/gnome-terminal/gnome-terminal-server --app-id my.foo.Terminal
19575 tc       /usr/local/lib/gnome-terminal/gnome-terminal-server --app-id my.foo.Terminal

$ cat /proc/19571/maps | grep gnutls
7fbb8bfbf000-7fbb8bfd1000 r--p 000d7000 07:76 16 /tmp/tcloop/gnutls/usr/local/lib/libgnutls.so.28.27.0
tc@boxdell:~$ cat /proc/19575/maps | grep gnutls
7ffff76a6000-7ffff778f000 r-xp 00000000 07:76 16 /tmp/tcloop/gnutls/usr/local/lib/libgnutls.so.28.27.0
7ffff778f000-7ffff798f000 ---p 000e9000 07:76 16 /tmp/tcloop/gnutls/usr/local/lib/libgnutls.so.28.27.0
7ffff798f000-7ffff799a000 rw-p 000e9000 07:76 16 /tmp/tcloop/gnutls/usr/local/lib/libgnutls.so.28.27.0

I'm using gnutls-3.2.6

vte-2.91 -n 10000
**
Vte:ERROR:vtestream-file.h:813:_vte_boa_init: assertion failed (gnutls_cipher_get_iv_size(VTE_CIPHER_ALGORITHM) == VTE_CIPHER_IV_SIZE): (4 == 12)
Aborted

If I comment out vte-0.40.2/src/vtestream-file.h #813

g_assert_cmpuint (gnutls_cipher_get_iv_size(VTE_CIPHER_ALGORITHM), ==, VTE_CIPHER_IV_SIZE);

vte-2.91 -n 10000 works (and gnome-terminal-3.16.2 works)

If I add the following before the commented out line #813:

g_assert_cmpstr (gnutls_cipher_get_name(VTE_CIPHER_ALGORITHM), ==, "AES-256-GCM");
g_assert_cmpint (gnutls_cipher_get_id("AES-256-GCM"), ==, VTE_CIPHER_ALGORITHM);

Things still work.
Comment 15 Christian Persch 2015-07-15 11:34:12 UTC
Ok, so apparently gnutls < 3.2.7 returned 4 here instead of 12. I'm going to bump the req version.
Comment 16 Debarshi Ray 2015-07-31 12:21:58 UTC
Can we consider this fixed, then?
Comment 17 john.frankish@outlook.com 2015-07-31 16:16:33 UTC
Sure, OK