Bug 1329548 - gnome-software allows to create several instances of upgrade
Summary: gnome-software allows to create several instances of upgrade
Alias: None
Product: Fedora
Classification: Fedora
Component: gnome-software
Version: 23
Hardware: x86_64
OS: Linux
Target Milestone: ---
Assignee: Richard Hughes
QA Contact: Fedora Extras Quality Assurance
Depends On:
TreeView+ depends on / blocked
Reported: 2016-04-22 08:17 UTC by Jiri Eischmann
Modified: 2019-07-31 17:52 UTC (History)
4 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Last Closed: 2016-04-22 17:29:50 UTC
Type: Bug

Attachments (Terms of Use)
Video of the bug (959.44 KB, application/octet-stream)
2016-04-22 08:19 UTC, Jiri Eischmann
no flags Details

Description Jiri Eischmann 2016-04-22 08:17:36 UTC
When I click "Download" button to download packages for upgrade the progress bar shows, but if I switch to Installed and back to Updates I'm again shown the "Download" button and if I click it, it creates another instance of "fedora installation". You can go on like this indefinitely. See the video: https://dl.dropboxusercontent.com/u/1309518/Nahr%C3%A1vka%20obrazovky%20z%2022.4.2016%2009%3A58%3A55.webm
Moreover none of the instances ever finishes, so I was not able to download packages for the upgrade.

Comment 1 Jiri Eischmann 2016-04-22 08:19:55 UTC
Created attachment 1149678 [details]
Video of the bug

Comment 2 Jiri Eischmann 2016-04-22 08:27:55 UTC
If I don't switch to Installed and stay on the Updates screen, the progress bar goes to ca 20% and stops there, after approx. 1 minute the banner switches to the original one and shows the Download button again.

Comment 3 Richard Hughes 2016-04-22 09:47:02 UTC
Okay, new fixes:

commit d4305150776b3d610e6368865cbc1a15e6ff5f31
Author: Richard Hughes <richard@hughsie.com>
Date:   Fri Apr 22 09:54:19 2016 +0100

    Run the distro upgrade download as a background restartable task
    This splits out the PackageKit upgrade action as a new plugin so that we can
    set the ONLY_DOWNLOAD flag specifically for this PkTask.
    Trying to share the PkTask in pk-plugin-packagekit.c was impossible as doing
    gs_plugin_app_upgrade_download() -> gs_plugin_app_install() meant we retried
    the download without ONLY_DOWNLOAD set, meaning we tried to do it live.
    This also effectively reverts commit b67a8e0456ff078d82e1bceb59011d8daead24f9.

:100644 100644 ad4112a... a256cec... M  src/plugins/Makefile.am
:000000 100644 0000000... b3d1b5d... A  src/plugins/gs-plugin-packagekit-upgrade.c
:100644 100644 14b53e1... 189e1f1... M  src/plugins/gs-plugin-packagekit.c

commit adae1add87d2917a59aac3b8e28d943de6b26478
Author: Richard Hughes <richard@hughsie.com>
Date:   Thu Apr 21 22:14:04 2016 +0100

    trivial: Recover the application state if the plugin forgets on action failure

:100644 100644 43ce2c0... 73e7b07... M  src/gs-plugin-loader.c
:100644 100644 86f5c07... acf8327... M  src/gs-upgrade-banner.c
:100644 100644 773ba4b... 93ce13a... M  src/plugins/gs-plugin-dummy.c

commit 9afd827c62fd1cef483143d6bae12e76566e7c99
Author: Richard Hughes <richard@hughsie.com>
Date:   Thu Apr 21 22:13:02 2016 +0100

    Do not re-request the distro-upgrade when switching pages

:100644 100644 8e3b644... 7f51330... M  src/gs-shell-updates.c

New package in the COPR. There is still one more bug I'm chasing down, but getting there, thanks!

Comment 4 Richard Hughes 2016-04-22 12:14:50 UTC
(In reply to Richard Hughes from comment #3)
> New package in the COPR. There is still one more bug I'm chasing down, but
> getting there, thanks!

commit e1748a5691e0bd97f193eae0858020bf8d436d60
Author: Richard Hughes <richard@hughsie.com>
Date:   Fri Apr 22 13:06:36 2016 +0100

    Do not clear the recovery state when using gs_app_set_state_recover()
    If we do AVAILABLE->INSTALLING then recover (which puts us back at AVAILABLE)
    then we do AVAILABLE->INSTALLING then recover we want to stay at AVAILABLE
    rather than be at the new state of UNKNOWN.

:100644 100644 1783da9... 6effba8... M  src/gs-app.c

Note You need to log in before you can comment on or make changes to this bug.