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 Ubuntu
Desktop Bugs, which is subscribed to gnome-shell in Ubuntu.
https://bugs.launchpad.net/bugs/1838152

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

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

-- 
desktop-bugs mailing list
desktop-bugs@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/desktop-bugs

Reply via email to