Bug#927831: gnome-shell: keyboard mouse freeze while a bell sound is triggered. Can't even VT-switch. Ruins user-experience.

Ludovic Pouzenc ludovic at pouzenc.fr
Tue Apr 23 21:48:07 BST 2019


Package: gnome-shell
Version: 3.32.1-1
Severity: important

Dear Maintainer,

With a fresh Debian 10 setup with default wayland gnome-session, or with 
a debian 9 with wayland gnome-session, or with gnome-shell-* packages 
from experimental, I hit a systematic freeze of all user inputs while a 
bell sound is triggered.

It is more than 2.5 seconds if my current pulseaudio default-sink is 
over HDMI on nvidia GP106 card (with nouveau + linux-firmware-nonfree).
It is around 250 ms with my home computer motherboard's AMD HDAudio 
(lspci 1022:1457). Still ruins user experience if using shell and <tab> key.

I hit this problem also at work on Debian 9 / wayland on at least 4 kind 
of desktop computers, 2 with nvidia, 2 with only intel video card, 
without any HDMI involved.

Scenario 1 :
In a default Debian buster installation (testing 2019-04-23) with a test 
user (named ludovic in traces) with a working sound configuration :
- log in as the test user
- start gnome-terminal
- type some letters that are not a valid shell command prefix (lets says 
type "qwert"), see no lags for now
- press tab and right after try to move mouse or typing anything else, 
everything is frozen for more than 2 seconds

Scenario 2 :
In a default Debian buster installation (testing 2019-04-23) with a test 
user (named ludovic in traces) with a working sound configuration :
- log in as the test user
- start firefox
- browse https://www.debian.org
- hit Ctrl+F to have focus in a search field
- seek a word that in NOT in the page (but have some first letters that 
match some words in the page)
(lets say "windows" : "wi" matches "wiki", and I've got a nasty mood ^^)
- you will observe the lag when firefox trigger "no match" system bell 
sound after typing n
- the search box forme contains now 71 or 72 "n" : 
"winnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnnndows"


I think that sound trigger should not be waited in the main event loop.
I think anything should freeze the main event loop more than 100ms.
I think this is fragile or prone to easy DoS that completly freeze the
whole machine ( sh -c "while beep; do : done;" or javascript equivalent ).

I ran reportbug after upgrading to experimental, with no luck. I will
upload all straces I have.

-- System Information:
Debian Release: buster/sid
   APT prefers testing
   APT policy: (990, 'testing'), (1, 'experimental')
Architecture: amd64 (x86_64)

Kernel: Linux 4.19.0-4-amd64 (SMP w/12 CPU cores)
Locale: LANG=fr_FR.UTF-8, LC_CTYPE=fr_FR.UTF-8 (charmap=UTF-8), 
LANGUAGE=fr_FR.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /usr/bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

Versions of packages gnome-shell depends on:
ii  dconf-gsettings-backend [gsettings-backend]  0.30.1-2
ii  evolution-data-server                        3.30.5-1
ii  gir1.2-accountsservice-1.0                   0.6.45-2
ii  gir1.2-atspi-2.0                             2.30.0-7
ii  gir1.2-freedesktop                           1.58.3-2
ii  gir1.2-gcr-3                                 3.28.1-1
ii  gir1.2-gdesktopenums-3.0                     3.32.0-1
ii  gir1.2-gdm-1.0                               3.30.2-3
ii  gir1.2-geoclue-2.0                           2.5.2-1
ii  gir1.2-glib-2.0                              1.58.3-2
ii  gir1.2-gnomebluetooth-1.0                    3.28.2-3
ii  gir1.2-gnomedesktop-3.0                      3.30.2.1-1
ii  gir1.2-gtk-3.0                               3.24.5-1
ii  gir1.2-gweather-3.0                          3.28.2-2
ii  gir1.2-ibus-1.0                              1.5.19-4
ii  gir1.2-mutter-4                              3.32.1-1
ii  gir1.2-nm-1.0                                1.14.6-2
ii  gir1.2-nma-1.0                               1.8.20-1
ii  gir1.2-pango-1.0                             1.42.4-6
ii  gir1.2-polkit-1.0                            0.105-25
ii  gir1.2-rsvg-2.0                              2.44.10-2
ii  gir1.2-soup-2.4                              2.64.2-2
ii  gir1.2-upowerglib-1.0                        0.99.10-1
ii  gjs                                          1.54.3-1
ii  gnome-backgrounds                            3.30.0-1
ii  gnome-settings-daemon                        3.32.0-1
ii  gnome-shell-common                           3.32.1-1
ii  gsettings-desktop-schemas                    3.32.0-1
ii  libatk-bridge2.0-0                           2.30.0-5
ii  libatk1.0-0                                  2.30.0-2
ii  libc6                                        2.28-8
ii  libcairo2                                    1.16.0-4
ii  libcroco3                                    0.6.12-3
ii  libecal-1.2-19                               3.30.5-1
ii  libedataserver-1.2-23                        3.30.5-1
ii  libgcr-base-3-1                              3.28.1-1
ii  libgdk-pixbuf2.0-0                           2.38.1+dfsg-1
ii  libgirepository-1.0-1                        1.58.3-2
ii  libgjs0g                                     1.54.3-1
ii  libgles2                                     1.1.0-1
ii  libglib2.0-0                                 2.58.3-1
ii  libglib2.0-bin                               2.58.3-1
ii  libgstreamer1.0-0                            1.14.4-1
ii  libgtk-3-0                                   3.24.5-1
ii  libical3                                     3.0.4-3
ii  libmutter-4-0                                3.32.1-1
ii  libnm0                                       1.14.6-2
ii  libpango-1.0-0                               1.42.4-6
ii  libpangocairo-1.0-0                          1.42.4-6
ii  libpolkit-agent-1-0                          0.105-25
ii  libpolkit-gobject-1-0                        0.105-25
ii  libpulse-mainloop-glib0                      12.2-4
ii  libpulse0                                    12.2-4
ii  libsecret-1-0                                0.18.7-1
ii  libsystemd0                                  241-3
ii  libx11-6                                     2:1.6.7-1
ii  libxfixes3                                   1:5.0.3-1
ii  mutter                                       3.32.1-1
ii  python3                                      3.7.2-1

Versions of packages gnome-shell recommends:
ii  bolt                  0.7-2
ii  chrome-gnome-shell    10.1-5
ii  gdm3                  3.30.2-3
ii  gkbd-capplet          3.26.1-1
ii  gnome-control-center  1:3.30.3-1
ii  gnome-user-docs       3.30.2-1
ii  ibus                  1.5.19-4
ii  iio-sensor-proxy      2.4-2
ii  switcheroo-control    1.2-2
ii  unzip                 6.0-22

Versions of packages gnome-shell suggests:
pn  gir1.2-telepathyglib-0.12   <none>
pn  gir1.2-telepathylogger-0.2  <none>

-- no debconf information

-------------- next part --------------
A non-text attachment was scrubbed...
Name: strace-lspci-dmesg-dpkg-config-pulse.tar.bz2
Type: application/x-bzip
Size: 254536 bytes
Desc: not available
URL: <http://alioth-lists.debian.net/pipermail/pkg-gnome-maintainers/attachments/20190423/74cc3472/attachment-0001.bin>


More information about the pkg-gnome-maintainers mailing list