The wrong sequence of mouse events can render the whole system unusable

Bug #1885435 reported by teo1978 on 2020-06-28
This bug affects 1 person
Affects Status Importance Assigned to Milestone
compiz (Ubuntu)
unity (Ubuntu)

Bug Description

This is 100% reproducible with any window, I'll use a terminal window as an example.

Steps to reproduce:

- open a terminal window (again, this could be a Gedit, Nautilus window or any other window)
- make sure the window is not maximized
- Place the mouse cursor at the center of the right border of the window, press the mouse left button and don't release it, so as to resize the window by dragging its right border
- While dragging the terminal window's right border, press and hold the mouse right button too (remember you're still holding the left button too)
- While still holding both mouse buttons pressed, move the mouse cursor away from the border of the window fast. If you move it fast enough, at some point the border will stop following the mouse cursor (which wouldn't happen if you hadn't pressed both buttons).
- While the mouse cursor is outside the terminal winow, release the right button and then the left button. Now you are no longer holding any mouse button pressed
- move the mouse cursor to the left and to right "crossing" the terminal window border, that is, move the mouse inside and outside the terminal window. Notice how, whenever the cursor "crosses" the window's right border, the border nonsensically moves a little bit following the movements of the cursor for a fraction of a second, as if you were still dragging it, but then it stops following the cursor. This is the first sign that something has gone completely berserk, but it's still nothing compared to what is coming
- while the mouse cursor is outside of the offending window (i.e. the terminal window in our example), click on something outside of it. For example, in my case that's a maximized Chrome window that's behind.

Observed disaster:

now you are unable to do anything with the mouse. Try clicking on any window to move, close, or resize it. Try to click on stuff to give it focus. Try to click on Launcher icons. None of this has any effect. It's as if your mouse buttons dead.

Not even by trying to go back to the original window and press and release the mouse buttons in any particular order while the cursor is over the window border seems to allow you to "unlock" the system.

There's no way to recover from this situation except by KILLING the offending window without using the mouse. For example, by using alt+tab as many time as needed to give it focus, and then, since in this case it is a terminal, typing "exit" and hitting Enter, so the window gets closed and normal functioning of the mouse gets restored. If the offending window is not a terminal window, then you can hit Ctrl+Alt+T to open a new terminal, and then use a "kill" or "killall" command to kill the process that owns the offending window.

Both of these imply loss of any unsaved work.

This is a fucking disaster and an incredibly stupid bug of the kind that you usually observe in "software" written by novice programmers (or rather, non-programmers such as web designers playing around with javascript) who write their first programs with mouse events (press, release, rollover, etc) and forget to take into account all possible sequences of events. Seriously, I hadn't seen such stupid mouse behavior bugs outside of the scope of amateur website UIs.

Fucking unbelievable.

ProblemType: Bug
DistroRelease: Ubuntu 16.04
Package: xorg 1:7.7+13ubuntu3.1
ProcVersionSignature: Ubuntu 4.4.0-179.209-generic 4.4.219
Uname: Linux 4.4.0-179-generic x86_64
NonfreeKernelModules: nvidia_uvm nvidia
.proc.driver.nvidia.gpus.0000.01.00.0: Error: [Errno 21] Is a directory: '/proc/driver/nvidia/gpus/0000:01:00.0'
.proc.driver.nvidia.registry: Binary: ""
 NVRM version: NVIDIA UNIX x86_64 Kernel Module 340.107 Thu May 24 21:54:01 PDT 2018
 GCC version: gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.12)

ApportVersion: 2.20.1-0ubuntu2.23
Architecture: amd64
CompizPlugins: No value set for `/apps/compiz-1/general/screen0/options/active_plugins'
CompositorRunning: compiz
CompositorUnredirectDriverBlacklist: '(nouveau|Intel).*Mesa 8.0'
CompositorUnredirectFSW: true
CurrentDesktop: Unity
Date: Sun Jun 28 17:28:05 2020
DistUpgraded: Fresh install
DistroCodename: xenial
DistroVariant: ubuntu
ExtraDebuggingInterest: No
 Intel Corporation 3rd Gen Core processor Graphics Controller [8086:0166] (rev 09) (prog-if 00 [VGA controller])
   Subsystem: Acer Incorporated [ALI] 3rd Gen Core processor Graphics Controller [1025:0647]
 NVIDIA Corporation GF117M [GeForce 610M/710M/810M/820M / GT 620M/625M/630M/720M] [10de:1140] (rev a1) (prog-if 00 [VGA controller])
   Subsystem: Acer Incorporated [ALI] GeForce 710M [1025:0691]
InstallationDate: Installed on 2013-10-11 (2451 days ago)
InstallationMedia: Ubuntu 13.04 "Raring Ringtail" - Release amd64 (20130424)
MachineType: Acer Aspire V3-571G
ProcKernelCmdLine: BOOT_IMAGE=/boot/vmlinuz-4.4.0-179-generic root=UUID=5830b30e-69e8-4bb4-8a2b-bc2b43c7414a ro quiet splash vt.handoff=7
SourcePackage: xorg
UpgradeStatus: No upgrade log present (probably fresh install) 10/15/2012
dmi.bios.vendor: Acer
dmi.bios.version: V2.07
dmi.board.asset.tag: Type2 - Board Asset Tag VA50_HC_CR
dmi.board.vendor: Acer
dmi.board.version: Type2 - Board Version
dmi.chassis.type: 10
dmi.chassis.vendor: Acer
dmi.chassis.version: V2.07
dmi.modalias: dmi:bvnAcer:bvrV2.07:bd10/15/2012:svnAcer:pnAspireV3-571G:pvrV2.07:rvnAcer:rnVA50_HC_CR:rvrType2-BoardVersion:cvnAcer:ct10:cvrV2.07: Aspire V3-571G
dmi.product.version: V2.07
dmi.sys.vendor: Acer
version.compiz: compiz 1:
version.ia32-libs: ia32-libs N/A
version.libdrm2: libdrm2 2.4.91-2~16.04.1
version.libgl1-mesa-dri: libgl1-mesa-dri 18.0.5-0ubuntu0~16.04.1
version.libgl1-mesa-dri-experimental: libgl1-mesa-dri-experimental N/A
version.libgl1-mesa-glx: libgl1-mesa-glx 18.0.5-0ubuntu0~16.04.1
version.nvidia-graphics-drivers: nvidia-graphics-drivers-* N/A
version.xserver-xorg-core: xserver-xorg-core 2:1.18.4-0ubuntu0.8
version.xserver-xorg-input-evdev: xserver-xorg-input-evdev 1:2.10.1-1ubuntu2
version.xserver-xorg-video-ati: xserver-xorg-video-ati 1:7.7.0-1
version.xserver-xorg-video-intel: xserver-xorg-video-intel 2:2.99.917+git20160325-1ubuntu1.2
version.xserver-xorg-video-nouveau: xserver-xorg-video-nouveau 1:1.0.12-1build2
xserver.bootTime: Thu Jun 4 15:27:33 2020
xserver.configfile: /etc/X11/xorg.conf
xserver.logfile: /var/log/Xorg.0.log
xserver.version: 2:1.18.4-0ubuntu0.8

teo1978 (teo8976) wrote :
Daniel van Vugt (vanvugt) wrote :

Ubuntu 16.04 you are using is over 4 years old and there are two major long term releases newer than that, both of which use a completely different GUI to the one you have. I suggest if you want a higher quality experience then you should install Ubuntu 20.04:

affects: xorg (Ubuntu) → compiz (Ubuntu)
Zippy Zebu (zippy.zebu) wrote :

Do not use abusive language in the bug report. This is probably the issue with your machine. Try with fresh install or live usb. Try without nvidia, use intel only. Try using older kernel if that helps.

teo1978 (teo8976) wrote :

> Ubuntu 16.04 you are using is over 4 years old and there are two major long term
> releases newer than that

Yet if I'm not mistaken it hasn't reached end-of-life yet, hence, being LTS, crippling bugs like this should still be fixed.

But anyway, the main reason I haven't upgraded yet, is because of this:

which renders Nautilus unusable. (don't get misguided by the status "fix released". It regressed again after the fix was released).

If you want users to upgrade often, try to avoid breaking critical stuff. (and also, make the upgrade process smooth so that it doesn't result in a bricked machine every single time - because again, if one is supposed to reformat and reinstall from scratch every time, you can't expect people to upgrade often)

Rather than upgrading, I think I'll move to another distro.

To post a comment you must log in.