GNOME Bugzilla – Bug 700267
non-default gdk backend problem
Last modified: 2021-06-10 20:31:18 UTC
This was working in Ubuntu, but only with a single process. So, I clone the master branch and tried it: $ git clone git://git.gnome.org/gnome-terminal $ ./autogen.sh --prefix=/usr --with-gtk=3.0 $ make $ GDK_BACKEND=broadway gnome-terminal Error creating terminal: GDBus.Error:org.freedesktop.DBus.Error.InvalidArgs: No screen 0 on display "Broadway" Before trying master, I was able to at least create a single gnome-terminal using the broadway backend, but creating a 2nd simultaneous terminal would fail with a segfault. I was trying this on master to get you a GDB stacktrace, but it wouldn't even start on master, so I'm stuck =)
Here's the stack tracek from version 3.6 from Ubuntu where it *did* work, but only for a single process. Upon creating a 2nd terminal, here's what happens: $ GDK_BACKEND=broadway gdb gnome-terminal GNU gdb (GDB) 7.5-ubuntu Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/bin/gnome-terminal...done. (gdb) run Starting program: /usr/bin/gnome-terminal [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [New Thread 0xb6b63b40 (LWP 3323)] [New Thread 0xb61ffb40 (LWP 3324)] Program received signal SIGSEGV, Segmentation fault. 0xb7383756 in ?? () from /lib/i386-linux-gnu/libc.so.6 (gdb) bt
+ Trace 231939
Same problem as with wayland. You need to start the gnome-terminal-server process with GDK_BACKEND=broadway (resp. =wayland). When it's autoactivated by dbus it gets the backend that the session is running under.
Ok, excellent, so I tried gnome-terminal-server, using the similar wayland instructions on gnome.org, and now I'm getting a new segfault: First, I do: $ GDK_BACKEND=broadway gdb --args /usr/libexec/gnome-terminal-server --app-id=my.cb.tool Then, I do: $ gnome-terminal --app-id=my.cb.tool And, here is the stacktrace for gnome-terminal-server: Any ideas? (This is on the git master branch). mrhines@mrhinesdev:~/packages/gnome-terminal$ GDK_BACKEND=broadway gdb --args /usr/libexec/gnome-terminal-server --app-id=my.cb.tool GNU gdb (GDB) 7.5-ubuntu Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/libexec/gnome-terminal-server...done. (gdb) run Starting program: /usr/libexec/gnome-terminal-server --app-id=my.cb.tool [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [New Thread 0xb6b83b40 (LWP 15108)] [New Thread 0xb61ffb40 (LWP 15110)] (gnome-terminal-server:15087): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. This indicates a bug in someone's code. You must ensure an error is NULL before it's set. The overwriting error message was: Error binding to address: Address already in use Program received signal SIGSEGV, Segmentation fault. _gdk_broadway_display_open (display_name=<optimized out>, display_name@entry=0x80ad900 ":50") at /build/buildd/gtk+3.0-3.6.0/./gdk/broadway/gdkdisplay-broadway.c:1103 1103 /build/buildd/gtk+3.0-3.6.0/./gdk/broadway/gdkdisplay-broadway.c: No such file or directory. (gdb) bt
+ Trace 231942
(gnome-terminal-server:15087): GLib-WARNING **: GError set over the top of a previous GError or uninitialized memory. Could you get a bracktrace from when this message is emitted? Break on g_log with condition log_level & G_LOG_LEVEL_WARNING
Ask and ye shall receive =) mrhines@mrhinesdev:~/cbtool/gui_files$ GDK_BACKEND=broadway BROADWAY_DISPLAY=10000 gdb --args /usr/libexec/gnome-terminal-server --app-id=my.cb.tool GNU gdb (GDB) 7.5-ubuntu Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html> This is free software: you are free to change and redistribute it. There is NO WARRANTY, to the extent permitted by law. Type "show copying" and "show warranty" for details. This GDB was configured as "i686-linux-gnu". For bug reporting instructions, please see: <http://www.gnu.org/software/gdb/bugs/>... Reading symbols from /usr/libexec/gnome-terminal-server...done. (gdb) b g_log Breakpoint 1 at 0x80549e0 (gdb) condition 1 log_level & G_LOG_LEVEL_WARNING No symbol "log_level" in current context. (gdb) run Starting program: /usr/libexec/gnome-terminal-server --app-id=my.cb.tool warning: failed to reevaluate condition for breakpoint 1: No symbol "log_level" in current context. warning: failed to reevaluate condition for breakpoint 1: No symbol "log_level" in current context. warning: failed to reevaluate condition for breakpoint 1: No symbol "log_level" in current context. [Thread debugging using libthread_db enabled] Using host libthread_db library "/lib/i386-linux-gnu/libthread_db.so.1". [New Thread 0xb6b83b40 (LWP 9491)] [New Thread 0xb61ffb40 (LWP 9493)] Breakpoint 1, g_log (log_domain=log_domain@entry=0xb76f0f4e "GLib", log_level=log_level@entry=G_LOG_LEVEL_WARNING, format=format@entry=0xb76f4814 "GError set over the top of a previous GError or uninitialized memory.\nThis indicates a bug in someone's code. You must ensure an error is NULL before it's set.\nThe overwriting error message was: %s") at /build/buildd/glib2.0-2.34.1/./glib/gmessages.c:999 999 /build/buildd/glib2.0-2.34.1/./glib/gmessages.c: No such file or directory. (gdb) bt
+ Trace 231943
Hmm I see you're still on gtk 3.6. Any chance trying with gtk+ 3.8 (or even better, gtk+ master) and glib 2.36 or master?
That will take a little while, since this is my desktop, but I will try this weekend =). Will keep you posted....
Ping ?
I'm sorry, I do not have an available, disposable linux environment to test this on that would not break any of my existing desktops in order to upgrate gtk and glib. Aside from reporting the bug, someone from the community must have some test servers or something for verifying if the bug is still happening?
-- GitLab Migration Automatic Message -- This bug has been migrated to GNOME's GitLab instance and has been closed from further activity. You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.gnome.org/GNOME/gnome-terminal/-/issues/7313.