Extension breaks when accessing Overview or applications list (Focal)

Bug #1892245 reported by fcole90 on 2020-08-19
42
This bug affects 4 people
Affects Status Importance Assigned to Milestone
Gnome Shell Extension Dash To Panel
Fix Released
Unknown
gnome-shell-extension-dash-to-panel (Debian)
Unknown
Unknown
gnome-shell-extension-dash-to-panel (Ubuntu)
Undecided
Unassigned
Focal
Undecided
fcole90

Bug Description

SRU

[Impact]

This bug is quite disruptive, in fact, if this extension is installed and active, it renders gnome-shell almost unusable. Anytime you open gnome-shell's overview (using the super/win-key) or you just press on the "Show Applications" button on the panel, instead of opening the overlay correctly something weird happens and you cannot close it back in any way. The only workaround I found is to press Alt+F2 and press R to restart the shell (using Xorg).

This package used to work until a recent gnome-shell update to 3.36.5 as part of 20.04.1, which changed some API related to setting geometries (https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1119). Probably nobody tested gnome-shell with this extension, I'm not sure about the QA procedure.

This package is clearly broken in its current status, so I suggest backporting the latest version from groovy (38-2), which has an update that fixes the issue. I'm using it for three days now and it works perfectly like it used to do before this bug arose.

The fix is likely this one-liner https://github.com/home-sweet-gnome/dash-to-panel/commit/ed00ae61ba5c81ceec6e5bb9f04afa8272fac13a which checks for the available API instead of checking the package version.

[Test Case]

What happens?

1. Install this package, and enable it (e.g. from the Extensions app) if it's not already enabled upon install.
2. With this extension enabled, try to open the overview (e.g. by pressing the super button).
3. The overview appears corrupted, from now on it's no longer possible to close it and the windows are stuck in their position.

A screencast of the bug is available in comment #2 https://bugs.launchpad.net/ubuntu/+source/gnome-shell-extension-dash-to-panel/+bug/1892245/comments/2

What should happen instead?
At step 3 the overview to work normally and be able to switch applications as usual

[Regression Potential]

As the bug the current version is very disruptive, breaking entirely the use of the shell, the risk of regression is extremely low. It may introduce instabilities to gnome-shell which have not been discovered yet. I'm personally using the groovy 38-2 version for 3 days on my main device and I didn't detect any problematic behaviour.

[Other Info]

An alternative could be to cherry-pick the single fixing commit, but I did not test it, nor have been tested by upstream, hence I suggest to directly backport version 38-2 from groovy.

--- Original Description ---

Since the last boot, few minutes ago, anytime I open the gnome-shell's overview (using the super/win-key) or I just press on the "Show Applications" button on the panel, instead of opening the overlay correctly something weird happens and I cannot close it back in any way. The only workaround I found is to press Alt+F2 and press R to restart the shell (using Xorg).

If I disable the extension, everything works correctly, so I think it to be culprit.

What happens when I try to get the overlay and it gets stuck? You can see the attached screenshot. Note the name of the window on the top right, it appears as soon as I trigger the overview, like if the overlay was open but the window was not getting resized. If I try to drag the window, an animation shows like if the overview was correctly working, but nothing works.

ProblemType: Bug
DistroRelease: Ubuntu 20.04
Package: gnome-shell-extension-dash-to-panel 31-1
ProcVersionSignature: Ubuntu 5.4.0-42.46-generic 5.4.44
Uname: Linux 5.4.0-42-generic x86_64
NonfreeKernelModules: nvidia_modeset nvidia
ApportVersion: 2.20.11-0ubuntu27.6
Architecture: amd64
CasperMD5CheckResult: skip
CurrentDesktop: GNOME
Date: Wed Aug 19 23:01:35 2020
InstallationDate: Installed on 2020-04-03 (137 days ago)
InstallationMedia: Ubuntu 20.04 LTS "Focal Fossa" - Beta amd64 (20200401)
PackageArchitecture: all
SourcePackage: gnome-shell-extension-dash-to-panel
UpgradeStatus: No upgrade log present (probably fresh install)
mtime.conffile..etc.apport.crashdb.conf: 2020-05-04T10:26:46.106768

fcole90 (fcole90) wrote :
summary: - cannot close overview of gnome-shell
+ gnome-shell gets stuck in bugged overview mode

I'm posting a screencast of the issue, as it may be more clear what the issue is.

At 0:22 I click Show Applications, around 0:38 I use keyboard shortcuts to move back and forth between the first and second virtual desktop.

fcole90 (fcole90) wrote :

Checking the logs I found the following, possibly related, which appeared during the screencast:

sender: gnome-shell, time: 23:15:49
../clutter/clutter/clutter-actor.c:10556: The clutter_actor_set_allocation() function can only be called from within the implementation of the ClutterActor::allocate() virtual function.

sender: gnome-shell, time: 23:16:15
JS ERROR: TypeError: this._updateWorkspacesFullGeometry is not a function
_newUpdateWorkspacesViews@/<email address hidden>/panelManager.js:464:14
show@resource:///org/gnome/shell/ui/workspacesView.js:613:14

sender: gnome-shell, time: 23:16:15
JS ERROR: TypeError: area is null
padArea@resource:///org/gnome/shell/ui/workspace.js:1101:9
_updateWindowPositions@resource:///org/gnome/shell/ui/workspace.js:1334:20
_realRecalculateWindowPositions@resource:///org/gnome/shell/ui/workspace.js:1311:14
_recalculateWindowPositions/this._positionWindowsId<@resource:///org/gnome/shell/ui/workspace.js:1286:18

sender: gnome-shell, time: 23:16:23
JS WARNING: [resource:///org/gnome/shell/ui/workspaceThumbnail.js 813]: reference to undefined property 0

sender: gnome-shell, time: >50x from 23:16:23 to 23:16:27
JS ERROR: TypeError: this._thumbnails[0] is undefined
handleDragOver@resource:///org/gnome/shell/ui/workspaceThumbnail.js:813:13
_updateDragHover@resource:///org/gnome/shell/ui/dnd.js:514:47

sender: gnome-shell, time: 23:17:17
Window manager warning: META_CURRENT_TIME used to choose focus window; focus window may not be correct.

sender: gsd-media-keys, time: 23:17:17
Failed to grab accelerators: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.gnome.Shell” on object at path /org/gnome/Shell

sender: gsd-media-keys, time: 23:17:18
Failed to grab accelerators: GDBus.Error:org.freedesktop.DBus.Error.UnknownMethod: No such interface “org.gnome.Shell” on object at path /org/gnome/Shell

sender: gnome-shell, time: 23:17:18
JS WARNING: [/<email address hidden>/appIcons.js 694]: reference to undefined property "_tweeningToSize"

fcole90 (fcole90) wrote :
summary: - gnome-shell gets stuck in bugged overview mode
+ Extension breaks when accessing Overview or applications list

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in gnome-shell-extension-dash-to-panel (Ubuntu):
status: New → Confirmed
Changed in gnome-shell-extension-dash-to-panel:
status: Unknown → Fix Released
Philipp (philippun) wrote :

I tried the groovy package, works fine on focal with several machines. Maybe backporting it to focal would be the best the easiest way to fix this?

fcole90 (fcole90) wrote :

I installed version 38-2 from Groovy and I confirm that it works correctly on focal and fixes the issue.

Link to Version 38-2 from Groovy: https://launchpad.net/ubuntu/groovy/amd64/gnome-shell-extension-dash-to-panel/38-2

fcole90 (fcole90) wrote :

If someone tells me how to upload the package to launchpad, I can try cherry picking the fix and upload for review

fcole90 (fcole90) on 2020-08-30
summary: - Extension breaks when accessing Overview or applications list
+ Extension breaks when accessing Overview or applications list (Focal)
tags: added: regression-release
description: updated
Changed in gnome-shell-extension-dash-to-panel (Ubuntu Focal):
status: New → Confirmed
Changed in gnome-shell-extension-dash-to-panel (Ubuntu):
status: Confirmed → Fix Released
fcole90 (fcole90) on 2020-08-31
description: updated
fcole90 (fcole90) wrote :

Debdiff from 31-1 to 38-2 for fixing this bug. This needs SRU. Can someone please upload it?

Changed in gnome-shell-extension-dash-to-panel (Ubuntu):
assignee: nobody → fcole90 (fcole90)
Changed in gnome-shell-extension-dash-to-panel (Ubuntu Focal):
assignee: nobody → fcole90 (fcole90)
Changed in gnome-shell-extension-dash-to-panel (Ubuntu):
assignee: fcole90 (fcole90) → nobody
Changed in gnome-shell-extension-dash-to-panel (Ubuntu Focal):
status: Confirmed → In Progress
fcole90 (fcole90) on 2020-08-31
description: updated
fcole90 (fcole90) on 2020-08-31
tags: added: verification-needed-focal
tags: added: verification-needed
fcole90 (fcole90) on 2020-09-02
description: updated
fcole90 (fcole90) wrote :

This signed patch backports the groovy package to focal, which fixes this bug. However in debian/control I kept Build-Depends: debhelper-compat (= 12) as a higher version is not available in focal.

Mattia Rizzolo (mapreri) wrote :

Hello,

I've been pointed this this sponsorship request. Might I ask you to provide me a diff on top of groovy? the diff from focal is good to see what changes are done, but applying that is quite a pain :)

Mattia Rizzolo (mapreri) wrote :

Also, please use version "31-2~ubuntu20.04.1" so that it can sort correctly

Mattia Rizzolo (mapreri) wrote :

Sorry, make that "38-2~ubuntu20.04.1"

fcole90 (fcole90) wrote :

Hi, and thanks for taking care of this.

I this the kind of diff you wanted?

fcole90 (fcole90) wrote :

Added mention in changelog of the debian/control required version changed from 13 to 12

fcole90 (fcole90) wrote :

Patch as suggested by gunnarhj, mentioning SRU, debhelper-compat changed to version 12 (from 13) for compatibility with focal and change of maintainer on Ubuntu

Mattia Rizzolo (mapreri) wrote :

Uploaded!

fcole90 (fcole90) wrote :

Thank you very much, Mattia. Should I do something else about it until the SRU team eventually asks something?

Gunnar Hjalmarsson (gunnarhj) wrote :

On 2020-09-07 15:06, fcole90 wrote:
> Should I do something else about it until the SRU team eventually
> asks something?

Nope, nothing to do until an SRU team member has reviewed and (hopefully) uploaded it to focal-proposed. You'll see here when that happens.

fcole90 (fcole90) wrote :

Perfect, thank you very much for your precious mentoring!

Robie Basak (racb) wrote :

If there is a one-liner that fixes this in Focal, why are you proposing a backport from Groovy instead? The trivial backport is what SRU policy requires in the first instance as that is assumed to carry a much lower regression risk. Backporting other changes needs separate justification please, and is generally going to be harder to review and get landed.

fcole90 (fcole90) wrote :

I was of your same opinion in the beginning, but then I realised that while that one-liner should be the fix, it has not been designed nor tested to be used on top of version 31 (the version currently available in focal) but on top of version 38. If you check the debian/changelog you can notice that in fact the fix is what bumped the package version from 38-1 to 38-2.

Hence to me it seems a greater risk to cherry-pick that fix alone on version 31, and then be on our own, rather than using version 38 with the fix, which is where it was intended and released upstream.

As for the potential of regression, there is none in my opinion, as the current version of the package breaks the interaction so badly that it becomes completely unusable, so this change can only be an improvement on that side.

Robie Basak (racb) wrote :
Download full text (3.6 KiB)

Thank you for the reply. Looks like you're making two separate arguments for why a version bump from 31 to 38 is appropriate here, instead of a cherry-pick of the fix:

1) "while that one-liner should be the fix, it has not been designed nor tested to be used on top of version 31"

2) "As for the potential of regression, there is none in my opinion"

Let me take these one at a time.

> while that one-liner should be the fix, it has not been designed nor tested to be used on top of version 31

This argument also applies generally to Ubuntu SRU policy, which is specifically to favour cherry-picks over taking more unrelated changes from a newer upstream release. The majority of stable release updates in Ubuntu cherry-pick from upstream exactly like this, and these fixes are rarely designed nor tested by upstream on the base on which Ubuntu applies them. Our cherry-picking favouring policy is documented at https://wiki.ubuntu.com/StableReleaseUpdates. Ubuntu as a project has made a policy choice here, and you've given no other reason for an exception in this case except that you disagree with Ubuntu's policy. You're entitled to your opinion of course, and you're welcome to petition for Ubuntu to change its policy. However in the absence of an explanation why the policy is as an exception inappropriate to this case, I think it's appropriate to follow the policy until (and if) it is changed. Otherwise there would be no point in having a policy.

> As for the potential of regression, there is none in my opinion, as the current version of the package breaks the interaction so badly that it becomes completely unusable, so this change can only be an improvement on that side.

Nobody proposes a change that is known to carry a regression, of course. The challenge with assessing regression risk is to think about what we don't know. Here are two cases where regression risk lies that I don't think you've considered:

1) Users who take updates from focal-security but not focal-updates. My understanding is that these users are not currently regressed as they are still using the release versions of gnome-shell and gnome-shell-extension-dash-to-panel. If we accept your version bump and there's subsequently a security update required to gnome-shell-extension-dash-to-panel, then these users would be exposed to any regressions that might exist in moving from a working 31 to 38. So the idea that there is no possible regression because it's already too broken doesn't apply in this case - because it's not already too broken for these users.

2) Changes in one package can affect others, especially if there are bugs. It's not safe to assume that changing this package cannot possibly regress other behaviour without investigating more deeply.

My conclusion remains that it is appropriate to cherry-pick the fix in line with Ubuntu SRU policy, and I haven't seen any reason to deviate from this policy in this particular case.

You (or anybody else who wants to volunteer) now has three choices:

1) Prepare an minimal upload that fixes this bug, as appears to be easily technically possible.

2) Present reasons why the usual policy to cherry-pick is not appropriate in this pa...

Read more...

tags: added: regression-update
removed: regression-release
fcole90 (fcole90) wrote :

TLDR:
I'll prepare a package with the patch alone :)

---

Thank you very much for taking care of writing me such a long and detailed explanation, I really appreciated it. In particular you not only explained me the general rule but also how in particular to this package, like for the potential for regressions. I definitely see now much more risks involved than I had previously considered.
Thank you for making me change my mind in such an instructive way :)

fcole90 (fcole90) wrote :

Hi, this is the fix by cherry-picking only the needed lines.

fcole90 (fcole90) wrote :
Mattia Rizzolo (mapreri) wrote :

uploaded! (after removing the useless %23 from Bug-Debian and dropping the newline-at-end-of-file change)

fcole90 (fcole90) wrote :

Thanks you very much :)

fcole90 (fcole90) wrote :

I'm experiencing the issue again with the patched package. I'm going to check why and send a new fix

fcole90 (fcole90) wrote :

It seems it was a false alarm. I purged and reinstalled the extension and seems to be working correctly (using the patched version). So, I think the review can continue :)

Robie Basak (racb) wrote :

[Regression Potential]

Code relating to updating the visual appearance of things is being altered. If there is a regression, it is likely to manifest in high level UI behaviour.

There is a different code path for before and after the breaking gnome-shell change, so behaviour may be different depending on whether the release pocket or the updates pocket version of gnome-shell is used.

Please test both cases during SRU verification.

Changed in gnome-shell-extension-dash-to-panel (Ubuntu Focal):
status: In Progress → Fix Committed

Hello fcole90, or anyone else affected,

Accepted gnome-shell-extension-dash-to-panel into focal-proposed. The package will build now and be available at https://launchpad.net/ubuntu/+source/gnome-shell-extension-dash-to-panel/31-1ubuntu20.04.1 in a few hours, and then in the -proposed repository.

Please help us by testing this new package. See https://wiki.ubuntu.com/Testing/EnableProposed for documentation on how to enable and use -proposed. Your feedback will aid us getting this update out to other Ubuntu users.

If this package fixes the bug for you, please add a comment to this bug, mentioning the version of the package you tested, what testing has been performed on the package and change the tag from verification-needed-focal to verification-done-focal. If it does not fix the bug for you, please add a comment stating that, and change the tag to verification-failed-focal. In either case, without details of your testing we will not be able to proceed.

Further information regarding the verification process can be found at https://wiki.ubuntu.com/QATeam/PerformingSRUVerification . Thank you in advance for helping!

N.B. The updated package will be released to -updates after the bug(s) fixed by this package have been verified and the package has been in -proposed for a minimum of 7 days.

fcole90 (fcole90) wrote :

I just tested the built package using the updates pocket version of gnome-shell.

I installed again the current package (31-1), reproduced the bug, installed the fixed version (31-1ubuntu20.04.1), tested again, and the bug is fixed.

I'll later test it again on the release pocket on a VM

fcole90 (fcole90) wrote :

I run a VM where I just installed ubuntu 20.04.1, but it has already gnome-shell 3.36.4-1ubuntu1~20.04.2, so I'm not sure how to test for the release pocket

Gunnar Hjalmarsson (gunnarhj) wrote :

Try to downgrade:

sudo apt install gnome-shell=3.36.1-5ubuntu1 gnome-shell-common=3.36.1-5ubuntu1 gnome-shell-extension-prefs=3.36.1-5ubuntu1

Jo (johger) wrote :

I can confirm that https://launchpad.net/ubuntu/+source/gnome-shell-extension-dash-to-panel/31-1ubuntu20.04.1/+build/19943968 fixes the problem for me on gnome-shell 3.36.4-1ubuntu~20.04.2:

The overview shows the application widgets correctly again. Selecting a widget closes the overview and brings the application to the front.

Thank you all!

fcole90 (fcole90) wrote :

I confirm it works also on 3.36.1-5ubuntu1 with no issues.

--------------------------------------------------------------

Thanks Gunnar for your suggestion and thanks Jo for testing.

I could finally find the 20.04 iso here: http://old-releases.ubuntu.com/releases/20.04/ (Despite the page title it doesn't containe only betas). I changed the settings to only security updates but it still tries to update to the latest gnome-shell, IDK why. So I just installed version 31-1 of the package, it worked correctly (it was not an issue with previous versions of gnome-shell), then also the fixed version 31-1ubuntu20.04.1 and it worked as well. I double checked and the version of gnome-shell was still 3.36.1-5ubuntu1, so from the release pocket.

fcole90 (fcole90) on 2020-09-16
tags: added: verification-done verification-done-focal
removed: verification-needed verification-needed-focal

Hi Fabio,
I ran into the same issue today (bug 1896188 now marked a dup of this one) and I'm very happy to see your fix already in focal-proposed - thanks!.

I can (as the other reporters) confirm that the version in focal-proposed works fine.

Launchpad Janitor (janitor) wrote :

This bug was fixed in the package gnome-shell-extension-dash-to-panel - 31-1ubuntu20.04.1

---------------
gnome-shell-extension-dash-to-panel (31-1ubuntu20.04.1) focal; urgency=medium

  * Apply patch as SRU to fix extension breaking, bug (LP: #1892245)

 -- Fabio Colella <email address hidden> Thu, 10 Sep 2020 11:37:11 +0200

Changed in gnome-shell-extension-dash-to-panel (Ubuntu Focal):
status: Fix Committed → Fix Released

The verification of the Stable Release Update for gnome-shell-extension-dash-to-panel has completed successfully and the package is now being released to -updates. Subsequently, the Ubuntu Stable Release Updates Team is being unsubscribed and will not receive messages about this bug report. In the event that you encounter a regression using the package from -updates please report a new bug using ubuntu-bug and tag the bug report regression-update so we can easily find any regressions.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Duplicates of this bug

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.