Performing verification for Bionic.

I want to say straight up, I haven't been able to reproduce the problem,
I have tried many mechanisms, but I can not reproduce the 20 second
shell hang and crash, as documented in https://github.com/GSConnect
/gnome-shell-extension-gsconnect/issues/549#issuecomment-515679156

I first tried to reproduce the problem using gnome-shell
3.28.4-0ubuntu18.04.3 from -updates.

I have tried the following in both KVM and on physical hardware of a
Lenovo Thinkpad X1 Laptop.

I installed the "TeaTime" gnome-shell extension version 28 from
https://extensions.gnome.org/extension/604/teatime/ and used it to send
multiple notifications that arrive in 5 second delays. The hang never
occured.

I tried creating a draft email in evolution as suggested in
https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/470, and ctrl-
clicked the link to spawn firefox with a notification. I did this
several times, no hangs. I then tried the calendar feature in Evolution
to send a notification on a new event in 5 minutes time. I did this
multiple times, and never got any hangs.
https://bugzilla.redhat.com/show_bug.cgi?id=1575281

I installed the gsconnect gnome-shell extension 
https://extensions.gnome.org/extension/1319/gsconnect/ and paired it to my 
android phone running the kdeconnect app.
In the settings menu on the android app, there is a "send ping" button. Press 
that and a notification is spawned in gnome-shell. I clicked this many times, 
and tried clearing notifications and being in various apps, or trying to race 
notifications and still could not get a hang.

Reading the commits, the gnome-shell hang is caused by fsync() being
called from a main thread on persistent gnome-shell state files. I found
the gnome-shell pid, and attached strace like so:

$ sudo strace -e fsync -p <PID>

On 3.28.4-0ubuntu18.04.3 each time I pressed "Send Ping" from
kdeconnect, a line is printed with:

fsync(38)                 0

suggesting that fsync is called every time a notification comes in.

I then enabled -proposed and installed gnome-shell 3.28.4-0ubuntu18.04.7

I retried all my initial tests, and everything worked and did not hang.

When it came to running strace against gnome-shell to view fsync calls,
I noticed that fsync was no longer being called each time I pressed
"Send Ping", meaning it is no longer happening per notification arrival.
I clicked the clock icon to see all notifications, and a large amount of
fsync calls appeared in strace output all at once, suggesting that they
were put on pause and batched all at once.

I can see the behaviour change that 86a00b6 and 19e0840 has had on fsync
behaviour, so the commits are doing what they say.

In my testing, I did not see any harm caused by these commits, as
notifications still arrived as usual.

Again, I could not reproduce the original report of a 20 second hang,
but the new package in -proposed appears to do no harm from the testing
I have undertaken.

I talked to Marco about this bug, and we agreed it is okay to mark as
verified. So, with some hesitation, I will mark this bug as verified.

** Bug watch added: github.com/GSConnect/gnome-shell-extension-gsconnect/issues 
#549
   https://github.com/GSConnect/gnome-shell-extension-gsconnect/issues/549

** Bug watch added: gitlab.gnome.org/GNOME/gnome-shell/-/issues #470
   https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/470

** Bug watch added: Red Hat Bugzilla #1575281
   https://bugzilla.redhat.com/show_bug.cgi?id=1575281

** Tags removed: verification-needed verification-needed-bionic
** Tags added: verification-done-bionic

-- 
You received this bug notification because you are a member of Desktop
Packages, which is subscribed to gnome-shell in Ubuntu.
https://bugs.launchpad.net/bugs/1838152

Title:
  gnome-shell freezes on notification arrival (fixed upstream)

Status in GNOME Shell:
  Fix Released
Status in gnome-shell package in Ubuntu:
  Fix Released
Status in gnome-shell source package in Bionic:
  Fix Committed
Status in gnome-shell source package in Disco:
  Fix Released
Status in gnome-shell source package in Eoan:
  Fix Released

Bug description:
  [ Description ]

  Sometimes certain notifications make the desktop unresponsive for a
  few seconds and then gnome-shell crashes and all extensions are
  reloaded.

  [ Test case ]

  Install gsconnect extension in gnome-shell:
   https://extensions.gnome.org/extension/1319/gsconnect/

  - Start Up system
  - first Notification from connected device
  - Hangs for about 20 sec
    + This should not happen

  [ Regression potential ]

  Persistent state is not kept, although the patch is living upstream
  for many cycles already, so it's pretty safe.

  -----

  I have found an upstream bug with a patch, but it's probably not in the 
Ubuntu's package. I thought of creating an issue in case it is something not 
known.
  https://gitlab.gnome.org/GNOME/gnome-shell/issues/470

  https://gitlab.gnome.org/GNOME/gnome-
  shell/commit/86a00b6872375a266449beee1ea6d5e94f1ebbcb

  In my case it happens only with the notifications of gsconnect and maybe 
android studio.
  I have reproduced the problem in gsconnect in case it helps.
  https://github.com/andyholmes/gnome-shell-extension-gsconnect/issues/549

  the error is:
  lug 27 19:55:56 ghv gnome-shell[4071]: Object Meta.Background 
(0x55ce6b4cf300), has been already deallocated - impossible to access it. This 
might be caused by the object having been destroyed from C code using something 
such as destroy(), dispose(), or remove() vfuncs

  Ubuntu 18.04
  gnome-shell
  Version: 3.28.4-0ubuntu18.04.1

To manage notifications about this bug go to:
https://bugs.launchpad.net/gnome-shell/+bug/1838152/+subscriptions

-- 
Mailing list: https://launchpad.net/~desktop-packages
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~desktop-packages
More help   : https://help.launchpad.net/ListHelp

Reply via email to