GNOME Bugzilla – Bug 749339
[Wayland] Gdk-CRITICAL **: gdk_window_get_display: assertion 'GDK_IS_WINDOW (window)' failed
Last modified: 2015-08-16 16:44:34 UTC
Steps to reproduce: (tested on several Fedora 22 installations) 1. log in to your gnome/wayland session 2. open some applications (windows) based on gtk 3. switch to tty 4. check syslog You will see that some gtk applications print this error message: Gdk-CRITICAL **: gdk_window_get_display: assertion 'GDK_IS_WINDOW (window)' failed this e.g. affects abrt, transmission, evolution-alarm-notify, gnome-terminal-server. I can only reproduce this bug on gnome/wayland, not on gnome/X11.
Please get a backtrace from the critical.
Created attachment 303365 [details] backtrace of gedit running under gnome/wayland session
Created attachment 303366 [details] backtrace of evince running on gnome/wayland
What version of gtk3 was this with ? It looks to me like this should have been fixed quite a while ago.
gtk3 3.16.2 from gtk3-3.16.2-2.fc22 package. Up-to-date F22 beta with updates + updates-testing enabled.
It is still present with gtk3-3.16.5-1.fc22
This leads to a crash and hang on Wayland with 'gtk3-3.16.6-1.fc22' with the following logs: (gnome-terminal-server:3193): Gdk-CRITICAL **: gdk_device_get_window_at_position_double: assertion 'GDK_IS_DEVICE (device)' failed Gdk-CRITICAL **: gdk_window_get_toplevel: assertion 'GDK_IS_WINDOW (window)' failed Gdk-CRITICAL **: gdk_window_get_device_position_double: assertion 'GDK_IS_WINDOW (window)' failed This happened when I pulled a Terminal window from one workspace to the other in overview mode while running Wayland, btw. I'm on Intel HD 4000.
(In reply to AGS from comment #7) > This leads to a crash and hang on Wayland with 'gtk3-3.16.6-1.fc22' with the > following logs: > > (gnome-terminal-server:3193): > Gdk-CRITICAL **: gdk_device_get_window_at_position_double: assertion > 'GDK_IS_DEVICE (device)' failed > Gdk-CRITICAL **: gdk_window_get_toplevel: assertion 'GDK_IS_WINDOW (window)' > failed > Gdk-CRITICAL **: gdk_window_get_device_position_double: assertion > 'GDK_IS_WINDOW (window)' failed > > This happened when I pulled a Terminal window from one workspace to the > other in overview mode while running Wayland, btw. I'm on Intel HD 4000. These errors are unrelated to the ones mentioned in this bug. They are also probably fixed by bug 748951. Anyhow, I think I have a fix for the issue originally reported. Patch coming.
Created attachment 308651 [details] [review] wayland: Don't assume drag context has a source window when finalizing Only a drag context which was created with 'drag_begin' will be guaranteed to have a source window. Thus, in finalize we cannot assume we can retrieve a GdkDisplay from the source_window pointer since it may be NULL. Though, the display is only needed for contexts created via 'drag_begin' thus we can retrieve it after checking that is the case.
Review of attachment 308651 [details] [review]: Oops indeed. FWIW, the dest-side GdkDragContext is also set a source window, but is only supposedly valid between data_device.enter/leave. The patch looks good, but the commit log might need clarification. During testing I've also noticed other warnings, filled in bug #753185 for these.
Attachment 308651 [details] pushed as 2776374 - wayland: Don't assume drag context has a source window when finalizing
I've created a new bug for my issue, I think it may be related: "Fatal system crash when dragging gnome-terminal window between workspaces..." https://bugzilla.gnome.org/show_bug.cgi?id=753690