Bug 1756105 - "Restart & Install" restarts but silently fails to install due to TypeError in /usr/lib/python3.7/site-packages/dnf-plugins/system_upgrade.py
Summary: "Restart & Install" restarts but silently fails to install due to TypeError i...
Keywords:
Status: CLOSED DUPLICATE of bug 1751103
Alias: None
Product: Fedora
Classification: Fedora
Component: dnf-plugins-extras
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
unspecified
Target Milestone: ---
Assignee: rpm-software-management
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: F31FinalBlocker
TreeView+ depends on / blocked
 
Reported: 2019-09-26 19:05 UTC by Stephan Bergmann
Modified: 2019-09-27 09:40 UTC (History)
16 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-09-27 08:40:21 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Stephan Bergmann 2019-09-26 19:05:49 UTC
Description of problem:
In Gnome Software, "Updates - Download - Restart & Update - Restart & Install" restarts but silently fails to install the updates.


Version-Release number of selected component (if applicable):
gnome-software-3.34.0-2.fc31.x86_64
python3-dnf-plugin-system-upgrade-4.0.5-1.fc31.noarch


How reproducible:
always


Additional info:
Afterwards, `journalctl -b -1` contains
> Sep 26 20:40:54 delta pk-offline-update[880]: status query
> Sep 26 20:40:54 delta pk-offline-update[880]: percentage 0%
> Sep 26 20:40:54 delta pk-offline-update[880]: status loading-cache
> Sep 26 20:40:54 delta python3[878]: detected unhandled Python exception in '/usr/bin/dnf'
> Sep 26 20:40:54 delta pk-offline-update[880]: percentage 1%
> Sep 26 20:40:54 delta dnf[878]: Traceback (most recent call last):
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/bin/dnf", line 58, in <module>
> Sep 26 20:40:54 delta dnf[878]:     main.user_main(sys.argv[1:], exit_code=True)
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 191, in user_main
> Sep 26 20:40:54 delta dnf[878]:     errcode = main(args)
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 65, in main
> Sep 26 20:40:54 delta dnf[878]:     return _main(base, args, cli_class, option_parser_class)
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf/cli/main.py", line 94, in _main
> Sep 26 20:40:54 delta dnf[878]:     cli.configure(list(map(ucd, args)), option_parser())
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf/cli/cli.py", line 970, in configure
> Sep 26 20:40:54 delta dnf[878]:     self.command.configure()
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf-plugins/system_upgrade.py", line 335, in configure
> Sep 26 20:40:54 delta dnf[878]:     self._call_sub("configure")
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf-plugins/system_upgrade.py", line 347, in _call_sub
> Sep 26 20:40:54 delta dnf[878]:     subfunc()
> Sep 26 20:40:54 delta dnf[878]:   File "/usr/lib/python3.7/site-packages/dnf-plugins/system_upgrade.py", line 410, in configure_upgrade
> Sep 26 20:40:54 delta dnf[878]:     repo.gpgcheck = repo.id in self.state.gpgcheck_repos
> Sep 26 20:40:54 delta dnf[878]: TypeError: argument of type 'NoneType' is not iterable
> Sep 26 20:40:54 delta python3[878]: can't communicate with ABRT daemon, is it running? [Errno 2] No such file or directory
> Sep 26 20:40:54 delta python3[878]: error sending data to ABRT daemon: 
> Sep 26 20:40:54 delta pk-offline-update[880]: percentage 2%
> Sep 26 20:40:54 delta pk-offline-update[880]: percentage 3%
> Sep 26 20:40:54 delta systemd[1]: dnf-system-upgrade.service: Main process exited, code=exited, status=1/FAILURE
> -- Subject: Unit process exited
> -- Defined-By: systemd
> -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
> -- 
> -- An ExecStart= process belonging to unit dnf-system-upgrade.service has exited.
> -- 
> -- The process' exit code is 'exited' and its exit status is 1.
> Sep 26 20:40:54 delta systemd[1]: dnf-system-upgrade.service: Failed with result 'exit-code'.
> -- Subject: Unit failed
> -- Defined-By: systemd
> -- Support: https://lists.freedesktop.org/mailman/listinfo/systemd-devel
> -- 
> -- The unit dnf-system-upgrade.service has entered the 'failed' state with result 'exit-code'.
> Sep 26 20:40:54 delta systemd[1]: Failed to start System Upgrade using DNF.
[...]

Comment 1 Kalev Lember 2019-09-26 19:26:25 UTC
This looks like the dnf system upgrade plugin erroring out and restarting while the packagekit process is busy applying the offline update. The dnf system upgrade plugin should check that it was itself that initiated the offline update and not take over when packagekit is doing the offline update.

Also proposing as a Final Blocker.

Comment 2 Kalev Lember 2019-09-26 19:27:13 UTC
Hm, dnf-plugin-system-upgrade seems orphaned. Moving to dnf then.

Comment 3 Adam Williamson 2019-09-26 20:11:28 UTC
[adamw@adam tmp]$ sudo dnf repoquery -i python3-dnf-plugin-system-upgrade
...
Source       : dnf-plugins-extras-4.0.5-1.fc31.src.rpm

Comment 4 Pavla Kratochvilova 2019-09-27 07:06:48 UTC
This is likely a duplicate of bug 1751103.

> This looks like the dnf system upgrade plugin erroring out and restarting while the packagekit process is busy applying the offline update. The dnf system upgrade plugin should check that it was itself that initiated the offline update and not take over when packagekit is doing the offline update.

Kalev, can you please explain what you mean by this? I thought that PackageKit simply ran dnf system-upgrade and there was a traceback, but I don't know how PackageKit works, so maybe I am missing something. Do you believe there is some other problem?

If not, I will close it as duplicate.

Comment 5 Kalev Lember 2019-09-27 08:40:21 UTC
Yeah, looks like a dup of that other issue. Let's close this one then.

As for PackageKit, no, it does not use dnf system upgrade. It has its own offline updater. In addition, fwupd has its own offline updater as well.

The way it's all supposed to work is that /system-update symlink points to a different location depending on which offline updater is supposed to run. The others are supposed to just check the symlink and exit without rebooting if it's not their update.

In this case, I guess dnf system upgrade tracebacked and didn't get to exiting cleanly and then the dnf system upgrade systemd unit rebooted after the unit failed. This all happened at the same time as packagekit was already installing its update.

*** This bug has been marked as a duplicate of bug 1751103 ***

Comment 6 Stephan Bergmann 2019-09-27 09:24:37 UTC
Ah, so the dnf-system-upgrade.service would be responsible for doing the work of `dnf system-upgrade reboot` (which I didn't initiate, so somewhat surprising to see that service even kicking in), while that pk-offline-update is what's doing the work initiated by my gnome-software "Restart & Install"?  I see.

Comment 7 Kalev Lember 2019-09-27 09:40:02 UTC
Yes, exactly.


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