Skip to content

Linux: Gtk+ 3 + Wayland crash on start #142

Description

@Tatsh

Workaround is to set GDK_BACKEND=x11.

Can Wayland support be added?

 $ bsnes-hd

(hiro:5153): Gdk-CRITICAL **: 10:20:54.795: gdk_x11_window_get_xid: assertion 'GDK_IS_X11_WINDOW (window)' failed
X Error of failed request:  BadWindow (invalid Window parameter)
  Major opcode of failed request:  20 (X_GetProperty)
  Resource id in failed request:  0x0
  Serial number of failed request:  8
  Current serial number in output stream:  8

The crash is here:

https://github.com/DerKoun/bsnes-hd/blob/master/hiro/gtk/window.cpp#L663

The reason is because the window variable is of type GdkWaylandWindow.

Trace:

 $ gdb bsnes-hd
Reading symbols from bsnes-hd...
Reading symbols from /usr/lib/debug/usr/bin/bsnes-hd.debug...
(No debugging symbols found in /usr/lib/debug/usr/bin/bsnes-hd.debug)
(ins)(gdb) b gdk_x11_window_get_xid
Breakpoint 1 at 0xd6760
(ins)(gdb) r
Starting program: /usr/bin/bsnes-hd
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/usr/lib64/libthread_db.so.1".
[Detaching after fork from child process 5596]
[New Thread 0x7fffe35ff6c0 (LWP 5597)]
[New Thread 0x7fffe2dfe6c0 (LWP 5598)]
[New Thread 0x7fffe25fd6c0 (LWP 5599)]
[New Thread 0x7fffe1dfc6c0 (LWP 5600)]
[New Thread 0x7fffe15fb6c0 (LWP 5601)]
[New Thread 0x7fffcbfff6c0 (LWP 5602)]
[Detaching after fork from child process 5603]
[Detaching after fork from child process 5604]
Can't locate Net/DBus.pm in @INC (you may need to install the Net::DBus module) (@INC entries checked: /etc/perl /usr/local/lib64/perl5/5.42/x86_64-linux /usr/local/lib64/perl5/5.42 /usr/lib64/perl5/vendor_perl/5.42/x86_64-linux /usr/lib64/perl5/vendor_perl/5.42 /usr/lib64/perl5/5.42/x86_64-linux /usr/lib64/perl5/5.42 /usr/lib64/perl5/vendor_perl/5.40 /usr/lib64/perl5/vendor_perl/5.38) at -e line 6.
BEGIN failed--compilation aborted at -e line 6.

Thread 1 "bsnes-hd" hit Breakpoint 1, gdk_x11_window_get_xid (window=0x555558c79360 [GdkWaylandWindow]) at ../gtk-3.24.51/gdk/x11/gdkwindow-x11.c:5671
warning: 5671   ../gtk-3.24.51/gdk/x11/gdkwindow-x11.c: No such file or directory
(ins)(gdb) bt
#0  gdk_x11_window_get_xid (window=0x555558c79360 [GdkWaylandWindow]) at ../gtk-3.24.51/gdk/x11/gdkwindow-x11.c:5671
#1  0x0000555555674ddc in hiro::pWindow::_synchronizeState() ()
#2  0x0000555555674fe8 in hiro::Window_stateEvent(_GtkWidget*, _GdkEvent*, hiro::pWindow*) ()
#8  0x00007ffff70d615b in <emit signal 'window-state-event' on instance 0x5555587c46b0 [GtkWindow]> (instance=instance@entry=0x5555587c46b0, signal_id=<optimized out>, detail=detail@entry=0)
    at ../glib-2.84.4/gobject/gsignal.c:3597
    #3  0x00007ffff768a08c in _gtk_marshal_BOOLEAN__BOXED
    (closure=0x55555884e740, return_value=0x7fffffffa790, param_values=0x7fffffffa840, marshal_data=<optimized out>, invocation_hint=<optimized out>, n_param_values=<optimized out>) at gtk/gtkmarshalers.c:84
    #4  0x00007ffff70b65a0 in g_closure_invoke (closure=0x55555884e740, return_value=0x7fffffffa790, n_param_values=2, param_values=0x7fffffffa840, invocation_hint=0x7fffffffa770)
    at ../glib-2.84.4/gobject/gclosure.c:835
    #5  0x00007ffff70d4091 in signal_emit_unlocked_R
    (node=node@entry=0x7fffffffa960, detail=detail@entry=0, instance=instance@entry=0x5555587c46b0, emission_return=emission_return@entry=0x7fffffffa9e0, instance_and_params=instance_and_params@entry=0x7fffffffa840) at ../glib-2.84.4/gobject/gsignal.c:3902
    #6  0x00007ffff70d57e7 in signal_emit_valist_unlocked (instance=instance@entry=0x5555587c46b0, signal_id=signal_id@entry=114, detail=detail@entry=0, var_args=var_args@entry=0x7fffffffaab0)
    at ../glib-2.84.4/gobject/gsignal.c:3547
    #7  0x00007ffff70d6098 in g_signal_emit_valist (instance=0x5555587c46b0, signal_id=114, detail=0, var_args=var_args@entry=0x7fffffffaab0) at ../glib-2.84.4/gobject/gsignal.c:3277
#9  0x00007ffff7942934 in gtk_widget_event_internal.part.0.lto_priv.0 (widget=0x5555587c46b0 [GtkWindow], event=0x555558d50d20) at ../gtk-3.24.51/gtk/gtkwidget.c:7827
#10 0x00007ffff77e4d00 in gtk_main_do_event (event=<optimized out>) at ../gtk-3.24.51/gtk/gtkmain.c:1864
#11 gtk_main_do_event (event=<optimized out>) at ../gtk-3.24.51/gtk/gtkmain.c:1694
#12 0x00007ffff7d71427 in _gdk_event_emit (event=0x555558d50d20) at ../gtk-3.24.51/gdk/gdkevents.c:73
#13 _gdk_event_emit (event=0x555558d50d20) at ../gtk-3.24.51/gdk/gdkevents.c:67
#14 0x00007ffff7da58b6 in gdk_event_source_dispatch (base=<optimized out>, callback=<optimized out>, data=<optimized out>) at ../gtk-3.24.51/gdk/wayland/gdkeventsource.c:124
#15 0x00007ffff6fafdf2 in g_main_dispatch (context=0x5555586dd960) at ../glib-2.84.4/glib/gmain.c:3398
#16 0x00007ffff6fb0d07 in g_main_context_dispatch_unlocked (context=0x5555586dd960) at ../glib-2.84.4/glib/gmain.c:4249
#17 g_main_context_iterate_unlocked (context=context@entry=0x5555586dd960, block=block@entry=0, dispatch=dispatch@entry=1, self=<optimized out>) at ../glib-2.84.4/glib/gmain.c:4314
#18 0x00007ffff6fb0e50 in g_main_context_iteration (context=0x5555586dd960, context@entry=0x0, may_block=may_block@entry=0) at ../glib-2.84.4/glib/gmain.c:4379
#19 0x00007ffff77df885 in gtk_main_iteration_do (blocking=0) at ../gtk-3.24.51/gtk/gtkmain.c:1460
#20 0x0000555555676de4 in hiro::pApplication::processEvents() ()
#21 0x00005555556ad355 in hiro::pTableView::setGeometry(hiro::Geometry) ()
#22 0x00005555556608b1 in hiro::mSizable::setGeometry(hiro::Geometry) ()
#23 0x00005555556c0130 in hiro::mHorizontalLayout::setGeometry(hiro::Geometry) ()
#24 0x00005555556c09bc in hiro::mVerticalLayout::setGeometry(hiro::Geometry) ()
#25 0x000055555568b50b in hiro::mVerticalLayout::setPadding(hiro::Geometry) ()
#26 0x000055555597eb01 in SettingsWindow::create() ()
#27 0x00005555559012b3 in Program::create() ()
#28 0x000055555565d594 in nall::main(nall::Arguments) ()
#29 0x000055555565e655 in nall::main(int, char**) ()
#30 0x000055555565ea5d in main ()

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions