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 784867 - SIGFPE / division by zero in meta_window_wayland_move_resize_internal
SIGFPE / division by zero in meta_window_wayland_move_resize_internal
Status: RESOLVED FIXED
Product: mutter
Classification: Core
Component: general
3.24.x
Other Linux
: Normal normal
: ---
Assigned To: mutter-maint
mutter-maint
Depends on:
Blocks:
 
 
Reported: 2017-07-12 18:04 UTC by Jonathan Briggs
Modified: 2017-07-17 01:59 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
backtrace snippet (1.15 KB, text/plain)
2017-07-12 18:05 UTC, Jonathan Briggs
  Details
wayland/window: Update toplevel main monitor before non-toplevel (3.48 KB, patch)
2017-07-13 04:41 UTC, Jonas Ådahl
committed Details | Review

Description Jonathan Briggs 2017-07-12 18:04:55 UTC
In summary there is a division by zero because monitor_scale is 0. Probably because the external display flickers several times before the DP link stabilizes.

This is gnome-shell doing Wayland. It is a laptop with one internal and one external 4K display.

I filed this twice in Fedora / Redhat Bugzilla but I'm beginning to wonder if anyone has noticed or forwarded it. See
https://bugzilla.redhat.com/show_bug.cgi?id=1413766
and
https://bugzilla.redhat.com/show_bug.cgi?id=1461173

A snippit from the backtrace you can find in full at the Redhat bug is attached.
Comment 1 Jonathan Briggs 2017-07-12 18:05:26 UTC
Created attachment 355450 [details]
backtrace snippet
Comment 2 Jonas Ådahl 2017-07-13 04:41:13 UTC
Created attachment 355479 [details] [review]
wayland/window: Update toplevel main monitor before non-toplevel

When updating the main monitor, make sure to update the toplevel main
monitor before trying to use that as the main monitor for non-toplevel
windows (such as popups). Without this, when the main monitor is
updated as a side effect to monitors being changed (for example due to
a hot plug event, or coming back from being suspended) the
main monitor pointer may, after 'monitors-changed' has completed, point to
freed memory resulting in undefined behaviour.
Comment 3 Florian Müllner 2017-07-13 10:39:31 UTC
Review of attachment 355479 [details] [review]:

Makes sense to me
Comment 4 Jonas Ådahl 2017-07-17 01:59:06 UTC
Attachment 355479 [details] pushed as 5d7b94a - wayland/window: Update toplevel main monitor before non-toplevel