GNOME Bugzilla – Bug 752372
gnome-terminal-3.16.2 will not run
Last modified: 2015-07-31 16:16:33 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.
(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...
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.
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.
Or alternatively gnome-terminal-server *is* started, but hangs. If so, you should attach gdb to it and get an all-thread backtrace.
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.
I tried gdb, but it repeated the dbus time-out and "exited normally".
I also tried "gnome-terminal --gtk-debug=all --gdk-debug=all", but it did not throw up any errors.
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.
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]...
That looks similar to bug 748343...
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?
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?
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);
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.
Ok, so apparently gnutls < 3.2.7 returned 4 here instead of 12. I'm going to bump the req version.
Can we consider this fixed, then?
Sure, OK