Bug 1713109

Summary: KDE live installs fail with "TypeError: setup() missing 1 required positional argument: 'payload'"
Product: [Fedora] Fedora Reporter: Adam Williamson <awilliam>
Component: subscription-managerAssignee: Chris Snyder <csnyder>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 30CC: alikins, anaconda-maint-list, awood, bkearney, csnyder, desire1824, dowdle, Fedora.rmx, jbwillia, jonathan, kellin, lsedlar, mkolman, nathan95, robatino, vanmeeuwen+fedora, vponcova, wwoods
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: openqa
Fixed In Version: subscription-manager-1.25.5-4.fc30 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-06-06 01:06:02 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Adam Williamson 2019-05-22 21:53:00 UTC
Since Fedora-Rawhide-20190514.n.0 , all KDE live install tests are failing. anaconda crashes with this backtrace:

===

11:36:07,513 CRT exception: Traceback (most recent call last):

  File "/usr/lib64/python3.7/site-packages/pyanaconda/threading.py", line 280, in run
    threading.Thread.run(self)

  File "/usr/lib64/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)

  File "/usr/lib64/python3.7/site-packages/pyanaconda/installation.py", line 402, in doInstall
    installation_queue.start()

  File "/usr/lib64/python3.7/site-packages/pyanaconda/installation_tasks.py", line 304, in start
    item.start()

  File "/usr/lib64/python3.7/site-packages/pyanaconda/installation_tasks.py", line 304, in start
    item.start()

  File "/usr/lib64/python3.7/site-packages/pyanaconda/installation_tasks.py", line 472, in start
    self.run_task()

  File "/usr/lib64/python3.7/site-packages/pyanaconda/installation_tasks.py", line 438, in run_task
    self._task(*self._task_args, **self._task_kwargs)

  File "/usr/lib64/python3.7/site-packages/pyanaconda/addons.py", line 106, in setup
    v.setup(storage, ksdata, payload)

TypeError: setup() missing 1 required positional argument: 'payload'

===

Workstation live installs, and traditional installer installs, are fine. Proposing as a Beta blocker as a violation of "The installer must run when launched normally from the release-blocking images" - https://fedoraproject.org/wiki/Basic_Release_Criteria#Installer_requirements

Comment 1 Adam Williamson 2019-05-22 21:58:40 UTC
Looking at the 20190514.n.0 compose changes, anaconda did not change in that compose, but pungi did...CCing lsedlar.

Comment 2 Lubomír Sedlář 2019-05-23 07:27:30 UTC
This is a function call inside anaconda when addons are initialized. I don't think Pungi is involved in this one.

Comment 3 Adam Williamson 2019-05-23 17:26:44 UTC
It's just that it's the only obvious package that actually changed in the compose where this broke. I don't see an *obvious* causation link either, but it could be that the anaconda code relies on something baked into the image by pungi somehow, or something. I'll try and figure it out today.

Comment 4 Adam Williamson 2019-05-24 18:53:01 UTC
Aha. So I think this is caused by the com_redhat_subscription_manager addon having an unexpected signature for its setup() method:

    def setup(self, storage, ksdata, instclass, payload):

the expected signature is this:

    def setup(self, storage, ksdata, payload):

anaconda code calls `setup(storage, ksdata, payload)` on all discovered addons...so with the unexpected signature of the com_redhat_subscription_manager addon's method, it is missing one arg.

The reason we don't see this on Workstation is that this addon is part of the 'subscription-manager-initial-setup-addon' package, and that package "Supplements: initial-setup-gui", so it gets pulled in when initial-setup-gui is included. initial-setup-gui is not in the Workstation live or the traditional installer images, so those don't have this problem, but it *is* in the KDE live image (and other desktop live images, so this bug likely affects those too).

I'm not sure why com_redhat_subscription_manager has this unexpected signature - whether it's just a straight-up error or if there's something more complex going on. Will dig into it.

The bug appeared in the 20190514.n.0 compose because a new subscription-manager package landed just ahead of that compose:

https://koji.fedoraproject.org/koji/buildinfo?buildID=1267285

and that added the 'Supplements: initial-setup-gui' line to the spec, which causes this package to get pulled into live images where previously it was not.

Comment 5 Adam Williamson 2019-05-24 18:57:52 UTC
Ah - so this is quite simple. The subscription-manager addon simply hasn't been updated for this anaconda change:

https://github.com/rhinstaller/anaconda/commit/78fd1e8242bbd814d6c8bcabd6e62aefc3c98186

that's what changed the expected signature for addons' setup() and execute() methods not to include an install class. The addon needs to be changed in Fedora (and I guess RHEL 8, possibly?) to reflect that change.

Having said that, I'm not sure whether it makes sense for this addon to be included by default in Fedora images - whether it does anything useful for Fedora users - even if we fix it.

I'm going to send a PR upstream and patch the bug in Rawhide, then we can consider whether the Supplements: is appropriate later.

Comment 7 Fedora Update System 2019-05-24 20:53:27 UTC
subscription-manager-1.25.5-2.fc30 has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f0af218c5a

Comment 8 Adam Williamson 2019-05-24 20:54:39 UTC
https://koji.fedoraproject.org/koji/buildinfo?buildID=1270509 should fix this for Rawhide. I determined that this bug would likely affect F30 respins as well, so I'm sending a fix for F30 (see above); once we confirm that Rawhide is fixed, I'll drop the blocker proposal and switch to bug to F30, then it will get closed out when the update goes stable.

Comment 9 Fedora Update System 2019-05-25 01:51:34 UTC
subscription-manager-1.25.5-2.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-f0af218c5a

Comment 10 Adam Williamson 2019-05-25 15:16:29 UTC
Fixed in Fedora-Rawhide-20190524.n.1. Moving to F30-only.

Comment 11 Vendula Poncova 2019-05-27 10:47:17 UTC
*** Bug 1711570 has been marked as a duplicate of this bug. ***

Comment 14 Vendula Poncova 2019-05-30 10:09:52 UTC
*** Bug 1714726 has been marked as a duplicate of this bug. ***

Comment 15 Alec B 2019-05-31 02:31:27 UTC
Similar problem has been detected:

Built remix using livecd-tools (livecd-creator) using updated fedora-live-lxqt.ks, .iso built ok, boots to live image ok, performed the liveinst, configured, and immediately after clicking begin installation it crashes. 

addons:         com_redhat_subscription_manager, com_redhat_kdump
blivet-gui-utils.log: 
cmdline:        /usr/bin/python3  /sbin/anaconda --liveinst --method=livecd:/dev/mapper/live-base
cmdline_file:   BOOT_IMAGE=vmlinuz0 initrd=initrd0.img root=live:CDLABEL=F30LXQTrmx rootfstype=auto ro rd.live.image quiet  rhgb rd.luks=0 rd.md=0 rd.dm=0 
hashmarkername: anaconda
kernel:         5.0.17-300.fc30.x86_64
other involved packages: python3-libs-3.7.3-3.fc30.x86_64
package:        anaconda-core-30.25.6-3.fc30.x86_64
packaging.log:  
product:        Fedora
reason:         TypeError: setup() missing 1 required positional argument: 'payload'
release:        Fedora release 30 (Thirty)
version:        30

Comment 16 Adam Williamson 2019-05-31 05:48:48 UTC
Alec: include the subscription-manager update shown above in your respin and it should work fine.

Comment 17 Scott Dowdle 2019-05-31 17:36:20 UTC
DId a fresh build with what I think are the needed packages on Fedora 30... build a remix and I'm still getting the same error.  Here's what I have installed in the live media I'm getting the error from:

$ rpm -qa | grep -e subscription -e anaconda | sort
anaconda-30.25.6-3.fc30.x86_64
anaconda-core-30.25.6-3.fc30.x86_64
anaconda-gui-30.25.6-3.fc30.x86_64
anaconda-install-env-deps-30.25.6-3.fc30.x86_64
anaconda-live-30.25.6-3.fc30.x86_64
anaconda-tui-30.25.6-3.fc30.x86_64
anaconda-user-help-26.1-9.fc30.noarch
anaconda-widgets-30.25.6-3.fc30.x86_64
dnf-plugin-subscription-manager-1.25.5-2.fc30.x86_64
kdump-anaconda-addon-005-4.20190103gitb16ea2c.fc30.noarch
libreport-anaconda-2.10.0-3.fc30.x86_64
python3-subscription-manager-rhsm-1.25.5-2.fc30.x86_64
subscription-manager-1.25.5-2.fc30.x86_64
subscription-manager-initial-setup-addon-1.25.5-1.fc30.x86_64
subscription-manager-rhsm-certificates-1.25.5-2.fc30.x86_64

Do I have the wrong version of something or am I missing something?

Comment 18 Scott Dowdle 2019-05-31 17:37:49 UTC
Or maybe I'm getting a different error now?

TypeError: __init__() missing 1 required positional argument: 'instclass'

Comment 19 Scott Dowdle 2019-05-31 17:42:42 UTC
Weird, why do I have subscription-manager-initial-setup-addon-1.25.5-1.fc30.x86_64 rather than subscription-manager-initial-setup-addon-1.25.5-2.fc30.x86_64 that I have in my local repo?

Comment 20 Scott Dowdle 2019-05-31 17:47:10 UTC
And even after updating to subscription-manager-initial-setup-addon-1.25.5-2.fc30.x86_64 I'm still getting:
TypeError: __init__() missing 1 required positional argument: 'instclass'

Comment 21 Scott Dowdle 2019-05-31 19:02:27 UTC
Ok, I added rhsm-gtk to my package list (because it seemed to be a dep of subscription-manager-initial-setup-addon... but anyway, with it added, subscription-manager-initial-setup-addon isn't even being pulled in anymore... BUT anaconda is working now and no more error.

I guess it could be it worked in the first place and I just imagined it was broken (bad package cache or something).  Anyhoo.

Comment 22 Scott Dowdle 2019-05-31 21:18:01 UTC
Here's a list of relevant packages from my live media that is working:

# rpm -qa | grep -e subscription -e anaconda -e rhsm | sort
anaconda-30.25.6-3.fc30.x86_64
anaconda-core-30.25.6-3.fc30.x86_64
anaconda-gui-30.25.6-3.fc30.x86_64
anaconda-install-env-deps-30.25.6-3.fc30.x86_64
anaconda-live-30.25.6-3.fc30.x86_64
anaconda-tui-30.25.6-3.fc30.x86_64
anaconda-user-help-26.1-9.fc30.noarch
anaconda-widgets-30.25.6-3.fc30.x86_64
dnf-plugin-subscription-manager-1.25.5-2.fc30.x86_64
kdump-anaconda-addon-005-4.20190103gitb16ea2c.fc30.noarch
libreport-anaconda-2.10.0-3.fc30.x86_64
python3-subscription-manager-rhsm-1.25.5-2.fc30.x86_64
rhsm-gtk-1.25.5-2.fc30.x86_64
subscription-manager-1.25.5-2.fc30.x86_64
subscription-manager-rhsm-certificates-1.25.5-2.fc30.x86_64

Comment 23 Adam Williamson 2019-06-03 18:25:46 UTC
well, the package needs to be pulled in to test the fix. I can't see how it wouldn't work, though - the same change fixed the same bug in Rawhide for sure, or else we wouldn't have working Rawhide images.

Comment 24 Adam Williamson 2019-06-03 18:34:25 UTC
Oh, there is actually another place where we have to deal with this instclass mess, and that's what you're hitting. I'm not sure why you're hitting it but a Rawhide install doesn't, though. *when* exactly are you seeing this error?

Comment 25 Fedora Update System 2019-06-03 18:55:42 UTC
FEDORA-2019-f0af218c5a has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f0af218c5a

Comment 26 Adam Williamson 2019-06-03 18:56:18 UTC
Anyhow, I updated the update to fix the other case too - can you try it now?

Comment 27 Fedora Update System 2019-06-04 01:16:48 UTC
subscription-manager-1.25.5-3.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-f0af218c5a

Comment 28 Fedora Update System 2019-06-04 17:26:21 UTC
FEDORA-2019-f0af218c5a has been submitted as an update to Fedora 30. https://bodhi.fedoraproject.org/updates/FEDORA-2019-f0af218c5a

Comment 29 Fedora Update System 2019-06-05 00:32:19 UTC
subscription-manager-1.25.5-4.fc30 has been pushed to the Fedora 30 testing repository. If problems still persist, please make note of it in this bug report.
See https://fedoraproject.org/wiki/QA:Updates_Testing for
instructions on how to install test updates.
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2019-f0af218c5a

Comment 30 Fedora Update System 2019-06-06 01:06:02 UTC
subscription-manager-1.25.5-4.fc30 has been pushed to the Fedora 30 stable repository. If problems still persist, please make note of it in this bug report.