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 700267 - non-default gdk backend problem
non-default gdk backend problem
Status: RESOLVED OBSOLETE
Product: gnome-terminal
Classification: Core
Component: general
git master
Other Linux
: Normal normal
: ---
Assigned To: GNOME Terminal Maintainers
GNOME Terminal Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-05-14 03:29 UTC by Michael R. Hines
Modified: 2021-06-10 20:31 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description Michael R. Hines 2013-05-14 03:29:34 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 =)
Comment 1 Michael R. Hines 2013-05-14 03:41:12 UTC
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
  • #0 ??
    from /lib/i386-linux-gnu/libc.so.6
  • #1 string_to_ay
    at terminal.c line 118
  • #2 name_lost_cb
    at terminal.c line 325
  • #3 actually_do_call
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusnameowning.c line 164
  • #4 do_call
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusnameowning.c line 215
  • #5 request_name_cb
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusnameowning.c line 334
  • #6 g_simple_async_result_complete
    at /build/buildd/glib2.0-2.34.1/./gio/gsimpleasyncresult.c line 775
  • #7 g_dbus_connection_call_done
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusconnection.c line 5339
  • #8 g_simple_async_result_complete
    at /build/buildd/glib2.0-2.34.1/./gio/gsimpleasyncresult.c line 775
  • #9 complete_in_idle_cb
    at /build/buildd/glib2.0-2.34.1/./gio/gsimpleasyncresult.c line 787
  • #10 g_idle_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 4806
  • #11 g_main_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 2715
  • #12 g_main_context_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3219
  • #13 g_main_context_iterate
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3290
  • #14 g_main_loop_run
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3484
  • #15 gtk_main
    at /build/buildd/gtk+3.0-3.6.0/./gtk/gtkmain.c line 1162
  • #16 main
    at terminal.c line 601

Comment 2 Christian Persch 2013-05-14 09:47:10 UTC
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.
Comment 3 Michael R. Hines 2013-05-14 16:20:04 UTC
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
  • #0 _gdk_broadway_display_open
    at /build/buildd/gtk+3.0-3.6.0/./gdk/broadway/gdkdisplay-broadway.c line 1103
  • #1 gdk_broadway_display_manager_open_display
    at /build/buildd/gtk+3.0-3.6.0/./gdk/broadway/gdkdisplaymanager-broadway.c line 46
  • #2 gdk_display_manager_open_display
    at /build/buildd/gtk+3.0-3.6.0/./gdk/gdkdisplaymanager.c line 381
  • #3 gdk_display_open
    at /build/buildd/gtk+3.0-3.6.0/./gdk/gdkdisplay.c line 1783
  • #4 terminal_util_get_screen_by_display_name
    at terminal-util.c line 761
  • #5 terminal_factory_impl_create_instance
    at terminal-gdbus.c line 416
  • #6 ffi_call_SYSV
    from /usr/lib/i386-linux-gnu/libffi.so.6
  • #7 ffi_call
    from /usr/lib/i386-linux-gnu/libffi.so.6
  • #8 g_cclosure_marshal_generic
    at /build/buildd/glib2.0-2.34.1/./gobject/gclosure.c line 1454
  • #9 g_type_iface_meta_marshal
    at /build/buildd/glib2.0-2.34.1/./gobject/gclosure.c line 1021
  • #10 g_closure_invoke
    at /build/buildd/glib2.0-2.34.1/./gobject/gclosure.c line 777
  • #11 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.34.1/./gobject/gsignal.c line 3589
  • #12 g_signal_emitv
    at /build/buildd/glib2.0-2.34.1/./gobject/gsignal.c line 3041
  • #13 _terminal_factory_skeleton_handle_method_call
    at terminal-gdbus-generated.c line 844
  • #14 g_dbus_interface_method_dispatch_helper
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusinterfaceskeleton.c line 615
  • #15 skeleton_intercept_handle_method_call
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusinterfaceskeleton.c line 655
  • #16 call_in_idle_cb
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusconnection.c line 4737
  • #17 g_idle_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 4806
  • #18 g_main_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 2715
  • #19 g_main_context_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3219
  • #20 g_main_context_iterate
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3290
  • #21 g_main_context_iteration
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3351
  • #22 g_application_run
    at /build/buildd/glib2.0-2.34.1/./gio/gapplication.c line 1624
  • #23 main
    at server.c line 125

Comment 4 Christian Persch 2013-05-14 16:24:00 UTC
(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
Comment 5 Michael R. Hines 2013-05-14 17:04:33 UTC
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
  • #0 g_log
    at /build/buildd/glib2.0-2.34.1/./glib/gmessages.c line 999
  • #1 g_set_error
    at /build/buildd/glib2.0-2.34.1/./glib/gerror.c line 566
  • #2 g_socket_bind
    at /build/buildd/glib2.0-2.34.1/./gio/gsocket.c line 1898
  • #3 g_socket_listener_add_inet_port
    at /build/buildd/glib2.0-2.34.1/./gio/gsocketlistener.c line 401
  • #4 _gdk_broadway_display_open
    at /build/buildd/gtk+3.0-3.6.0/./gdk/broadway/gdkdisplay-broadway.c line 1098
  • #5 gdk_broadway_display_manager_open_display
    at /build/buildd/gtk+3.0-3.6.0/./gdk/broadway/gdkdisplaymanager-broadway.c line 46
  • #6 gdk_display_manager_open_display
    at /build/buildd/gtk+3.0-3.6.0/./gdk/gdkdisplaymanager.c line 381
  • #7 gdk_display_open
    at /build/buildd/gtk+3.0-3.6.0/./gdk/gdkdisplay.c line 1783
  • #8 terminal_util_get_screen_by_display_name
    at terminal-util.c line 761
  • #9 terminal_factory_impl_create_instance
    at terminal-gdbus.c line 416
  • #10 ffi_call_SYSV
    from /usr/lib/i386-linux-gnu/libffi.so.6
  • #11 ffi_call
    from /usr/lib/i386-linux-gnu/libffi.so.6
  • #12 g_cclosure_marshal_generic
    at /build/buildd/glib2.0-2.34.1/./gobject/gclosure.c line 1454
  • #13 g_type_iface_meta_marshal
    at /build/buildd/glib2.0-2.34.1/./gobject/gclosure.c line 1021
  • #14 g_closure_invoke
    at /build/buildd/glib2.0-2.34.1/./gobject/gclosure.c line 777
  • #15 signal_emit_unlocked_R
    at /build/buildd/glib2.0-2.34.1/./gobject/gsignal.c line 3589
  • #16 g_signal_emitv
    at /build/buildd/glib2.0-2.34.1/./gobject/gsignal.c line 3041
  • #17 _terminal_factory_skeleton_handle_method_call
    at terminal-gdbus-generated.c line 844
  • #18 g_dbus_interface_method_dispatch_helper
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusinterfaceskeleton.c line 615
  • #19 skeleton_intercept_handle_method_call
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusinterfaceskeleton.c line 655
  • #20 call_in_idle_cb
    at /build/buildd/glib2.0-2.34.1/./gio/gdbusconnection.c line 4737
  • #21 g_idle_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 4806
  • #22 g_main_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 2715
  • #23 g_main_context_dispatch
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3219
  • #24 g_main_context_iterate
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3290
  • #25 g_main_context_iteration
    at /build/buildd/glib2.0-2.34.1/./glib/gmain.c line 3351
  • #26 g_application_run
    at /build/buildd/glib2.0-2.34.1/./gio/gapplication.c line 1624
  • #27 main
    at server.c line 125

Comment 6 Christian Persch 2013-05-14 17:22:24 UTC
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?
Comment 7 Michael R. Hines 2013-05-14 17:46:22 UTC
That will take a little while, since this is my desktop, but I will try this weekend =).

Will keep you posted....
Comment 8 Christian Persch 2014-04-12 18:43:53 UTC
Ping ?
Comment 9 Michael R. Hines 2014-04-14 01:49:10 UTC
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?
Comment 10 GNOME Infrastructure Team 2021-06-10 20:31:18 UTC
-- 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.