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 765285 - Mouse cursor transition freezes entire machine
Mouse cursor transition freezes entire machine
Status: RESOLVED INVALID
Product: gnome-shell
Classification: Core
Component: drivers
3.20.x
Other Linux
: Normal major
: ---
Assigned To: gnome-shell-maint
gnome-shell-maint
Depends on:
Blocks:
 
 
Reported: 2016-04-20 02:41 UTC by jackieb
Modified: 2017-01-03 03:55 UTC
See Also:
GNOME target: ---
GNOME version: ---



Description jackieb 2016-04-20 02:41:23 UTC
Triple display, mouse cursor on internal display

When entering the sole window on the internal display
- the entire computer froze instantly and had to be powered off
- on the frozen display was present both the resize mouse cursor that is displayed near the edge of a gnome terminal server window
- and the text input mouse cursor when the cursor is inside the terminal window

after the log messages below the system logs some sort of shutdown. The computer was frozen however, ctrl+alt+fn+F2 not working and network down, time stopped

There were no such crashes on 3.18/Ubuntu 15.10

some related log messages
Apr 19 19:15:58 c89 gnome-session[4986]: gnome-session-binary[4986]: GLib-GObject-CRIT
ICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session-binary[4986]: GLib-GObject-CRITICAL: g_object_unref:
 assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session[4986]: gnome-session-binary[4986]: GLib-GObject-CRIT
ICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session-binary[4986]: GLib-GObject-CRITICAL: g_object_unref:
 assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session[4986]: gnome-session-binary[4986]: GLib-GObject-CRIT
ICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session-binary[4986]: GLib-GObject-CRITICAL: g_object_unref:
 assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session[4986]: gnome-session-binary[4986]: GLib-GObject-CRIT
ICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:15:58 c89 gnome-session-binary[4986]: GLib-GObject-CRITICAL: g_object_unref:
 assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:16:02 c89 gnome-session[4986]: gnome-session-binary[4986]: GLib-GObject-CRIT
ICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:16:02 c89 gnome-session[4986]: message repeated 2 times: [ gnome-session-bin
ary[4986]: GLib-GObject-CRITICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' fai
led]
Apr 19 19:16:02 c89 gnome-session-binary[4986]: GLib-GObject-CRITICAL: g_object_unref:
 assertion 'G_IS_OBJECT (object)' failed
Apr 19 19:16:02 c89 gnome-session-binary[4986]: message repeated 2 times: [ GLib-GObje
ct-CRITICAL: g_object_unref: assertion 'G_IS_OBJECT (object)' failed]
Comment 1 jackieb 2016-04-20 08:00:48 UTC
I have also seen black squares twice in chromium-browser, which traditionally has meant OpenGL/GPU memory corruption. Typically, if you immediately exit the app that displays a black square, you can continue without problems.

3.20 freezes and restarts itself approximately once per hour, whereas 3.18 only crashed if you hit a known bug.

In one day, 3.20 has forced me to restart the computer twice.
16.04/i915

The video tearing is clearly related to the mouse cursor.
It is unclear if that is also the cause of GPU memory corruption.
Comment 2 jackieb 2016-04-21 06:36:06 UTC
This bug is reproducible - YES!!

Have an external display to the right
Have a maximized gnome terminal server window on it
  it can be the first thing you do after login
hover the mouse cursor close to the lower left corner about half an inch away
  mouse cursor/video corruption result
  my display is 2560x1600

- computer halts almost immediately
  MacBook Pro 13" 2015

- no log output, no nada, network down, game over. Only way out is power off

mouse cursor was always crazy in this area 3.16 3.18 3.20.1/15.10 16.04
Right now I am on 3.18.4/16.04
Comment 3 jackieb 2016-04-21 06:47:35 UTC
This bug outlines the mouse cursor area and apps
https://bugzilla.gnome.org/show_bug.cgi?id=765280

I have 
gsettings get org.gnome.desktop.interface cursor-size
96

Two externals via standard DisplayPort

I would expect this to happen for any modern Intel gpu
Comment 4 jackieb 2016-04-21 17:14:49 UTC
Is there some remedy or suggestion around this?

Hangs occur every few hours and it causes log corruption and data loss.

back in 3.18.2/15.10 this did not happen
Comment 5 Rui Matos 2016-04-21 17:25:19 UTC
This all sounds like driver issues to me. Do you have full system logs you can attach here?
Comment 6 jackieb 2016-04-21 17:43:51 UTC
It does not output anything to the log. The computer halts but maintains static video display. I looked at it many times.

I believe it has to do with the mouse cursor over multiple displays, and there is a backtrace for that in 
https://bugs.launchpad.net/ubuntu/+source/gnome-session/+bug/1573096

I could just now make it halt on Wayland/Weston
GNOME/X displays the tearing, but I could not make it crash.
GNOME on Wayland has it

This would indicate it is Wayland rather than GNOME or i915

historically:
It does appear in 16.04/libwayland-server0 1.10.0-1/3.18.4-3.20.1
It did not appear in 15.10/libwayland-server0 1.8.1-1/3.18.2
Comment 7 Rui Matos 2016-04-21 18:12:21 UTC
The wayland support is a fast moving target so it's possible this is fixed gnome 3.20. Can you try with that version?
Comment 8 jackieb 2016-04-21 18:16:57 UTC
I was on 3.20.1, and the problem was present.

Because 3.20 had so short uptime and many GPU challenges, i downgraded back to 3.18. The problem is with 3.18, too, but it is only serious thing that is broken.
Comment 9 Rui Matos 2016-04-21 18:22:29 UTC
Can you attach a log here after it happens with 3.20 ?
Comment 10 jackieb 2016-04-21 19:27:39 UTC
Yes. However, I can reproduce the halt, but not the exit that produces the stack trace.

on it.
Comment 11 jackieb 2016-04-21 19:55:46 UTC
Anyone with an i915 gpu and an external display should be able to reproduce this, at least the halt
Comment 12 jackieb 2016-04-21 22:05:42 UTC
Make that a MacBook Pro 13" 2015
Only that machine shows the intermittent redraw of content in the wrong location when the mouse shape is changed or on crossing a display boundary.

It did both for 3.18 and 3.20

It only happens when there is an external display connected

It happens very quickly when rapidly mouse over a terminal window causing shape changes

Having a window edge on the border between two displays easily causes an animation mode, where mouse pointer and windows are continuously redrawn with various about 1" offsets, mouse cursors in multiple locations and different shapes and windows by the right edge of a display being drawn at the left edge, probably mistaken for being on the external display. You can leave the computer flickering likeso by itself.

Display flicker caused by the mouse cursor happens when the cursor is about 1/2" into the external display, not at the display border.

So apparently there are some calculations that do not produce static values, instead cyclically move windows and the cursor around which may affect the shape of the mouse cursor. The top bar, for example, seems to be drawn relative to the mouse cursor as opposed to the top of the display.

It seems it hangs less if the external display is to the left as opposed to to the right or above

Older hardware does none of this.

to make it crash less:
- do not have windows edges within 1" of a display border
- do not have an external display above or to the right of the internal display

Because the computer halts, there is no clever output.
Comment 13 jackieb 2016-04-22 00:00:47 UTC
So I have been up for 1 hour now

I limit myself to have a single external display to the left, with no windows in the 1" rightmost area of the external display. There is some special redraw when the mouse cursor is there.

I believe this bug lies in the mutter compositor which is responsible for drawing the mouse cursor
- failure to take in account what display the mouse cursor is on
- while mouse cursor changes, intermittently redrawing all displays incorrectly, most often with the content for the top of the display slightly below the mouse cursor's vertical position
- further miscalculations causes a limited number of phantom mouse cursors and windows, that can be configured to a static state of flashing phantom images
- when the mouse cursor exits the internal display, during the redraw instant at that magic 1" from the edge location, windows on the internal display may be redrawn relative to the external display the mouse cursor is on with some X-wise offset

When something fails in all this, the main cpu halts and have to be powered off
- for unhappy configurations, like external displays placed above, or an external display to the right with a window border at its left edge, the cpu may halt within seconds

Secondly there is some free/alloc problem with the mouse cursor, which may or may not be b/c of the external displays
- I believe this to be a separate problem
- This causes GNOME Shell to exit and should be easier to investigate

Older similar Intel hardware does not suffer from any of this
Comment 14 jackieb 2016-04-22 00:03:25 UTC
If a second external display to the left of the first one, the cpu halted when the mouse cursor was in that displays 1" area
Comment 15 jackieb 2016-04-22 00:08:10 UTC
and I had another computer on ssh doing
dmesg --follow --time-format iso --color --nopager

it show some drm underruns, but they do not happen concurrently with halt.
Comment 16 jackieb 2016-04-22 00:38:31 UTC
i5-5287U CPU @ 2.90GHz
Comment 17 jackieb 2016-04-23 01:14:49 UTC
Because weston crashed, too, one has to wait for:
wayland later than 1.10.0

GNOME on X has GPU acceleration troubles with Chromium

KDE/X shows much less of the phantom images but more importantly does not crash.
Comment 18 Rui Matos 2016-04-24 15:21:46 UTC
(In reply to jackieb from comment #17)
> Because weston crashed, too, one has to wait for:
> wayland later than 1.10.0
> 
> GNOME on X has GPU acceleration troubles with Chromium
> 
> KDE/X shows much less of the phantom images but more importantly does not
> crash.

This makes very little sense. Please keep things as factual as possible. If you can't attach your system log (including kernel and userland logs) around one of these occurrences there's nothing we can do.
Comment 19 jackieb 2017-01-03 03:55:15 UTC
This halt was caused by i915 driver that needed kernel command line parameter i915.enable_rc6=0 to disable its power-down mode

Because it was a halt, no logs could be retrieved