Bug 1557957
Summary: | TypeError: __init__() got an unexpected keyword argument 'wwn' | ||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Product: | [Fedora] Fedora | Reporter: | Kamil Páral <kparal> | ||||||||||||||||||||||||
Component: | python-blivet | Assignee: | Blivet Maintenance Team <blivet-maint-list> | ||||||||||||||||||||||||
Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||||||||||||||||||||
Severity: | unspecified | Docs Contact: | |||||||||||||||||||||||||
Priority: | unspecified | ||||||||||||||||||||||||||
Version: | 28 | CC: | amulhern, anaconda-maint-list, awilliam, blivet-maint-list, jkonecny, jonathan, kellin, lruzicka, mkolman, robatino, rvykydal, sbueno, vanmeeuwen+fedora, v.podzimek+fedora, vponcova, vtrefny, wwoods | ||||||||||||||||||||||||
Target Milestone: | --- | ||||||||||||||||||||||||||
Target Release: | --- | ||||||||||||||||||||||||||
Hardware: | x86_64 | ||||||||||||||||||||||||||
OS: | Unspecified | ||||||||||||||||||||||||||
Whiteboard: | abrt_hash:1116bc4a03dcde07589c7bd7c05a2314203b1d310e3b91a6a949ad1a096c8ad1;VARIANT_ID=workstation; AcceptedBlocker | ||||||||||||||||||||||||||
Fixed In Version: | python-blivet-3.0.0-0.6.b1.fc28 | Doc Type: | If docs needed, set a value | ||||||||||||||||||||||||
Doc Text: | Story Points: | --- | |||||||||||||||||||||||||
Clone Of: | Environment: | ||||||||||||||||||||||||||
Last Closed: | 2018-03-26 22:29:41 UTC | Type: | --- | ||||||||||||||||||||||||
Regression: | --- | Mount Type: | --- | ||||||||||||||||||||||||
Documentation: | --- | CRM: | |||||||||||||||||||||||||
Verified Versions: | Category: | --- | |||||||||||||||||||||||||
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |||||||||||||||||||||||||
Cloudforms Team: | --- | Target Upstream Version: | |||||||||||||||||||||||||
Embargoed: | |||||||||||||||||||||||||||
Bug Depends On: | |||||||||||||||||||||||||||
Bug Blocks: | 1469204 | ||||||||||||||||||||||||||
Attachments: |
|
Description
Kamil Páral
2018-03-19 11:23:15 UTC
Created attachment 1409815 [details]
File: anaconda-tb
Created attachment 1409816 [details]
File: anaconda.log
Created attachment 1409817 [details]
File: dbus.log
Created attachment 1409818 [details]
File: environ
Created attachment 1409819 [details]
File: journalctl
Created attachment 1409820 [details]
File: lsblk_output
Created attachment 1409821 [details]
File: nmcli_dev_list
Created attachment 1409822 [details]
File: os_info
Created attachment 1409823 [details]
File: program.log
Created attachment 1409824 [details]
File: storage.log
Created attachment 1409825 [details]
File: ifcfg.log
Proposing as a Beta blocker: " The installer must be able to detect and install to hardware or firmware RAID storage devices." https://fedoraproject.org/wiki/Fedora_28_Beta_Release_Criteria#Hardware_and_firmware_RAID It looks to be a problem in the storage library, reassigning. Discussed at 2018-03-19 Fedora 28 blocker review meeting: https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2018-03-19/f28-blocker-review.2018-03-19-16.02.html . Accepted as a blocker issue: this seems like a clear showstopper for installs to Intel firmware RAID sets, which is a violation of Beta criterion "The installer must be able to detect and install to hardware or firmware RAID storage devices". OK, so this is a bit twisty, but basically: blivet/populator/helpers/disk.py defines a class DiskDevicePopulator , with a class attribute _device_class that's intended to be a Device subclass , and a method _get_kwargs() that - unless _device_class is DiskDevice - returns a dict with a 'wwn' key. It also has a 'run' method which does this: kwargs = self._get_kwargs() device = self._device_class(name, **kwargs) There is a subclass of DiskDevicePopulator called MDBiosRaidDevicePopulator which defines _device_class as MDBiosRaidArrayDevice . That's a Device subclass - defined in blivet/blivet/devices/md.py - that takes **kwargs, but calls `super(MDBiosRaidArrayDevice, self).__init__(name, **kwargs)`. Its parent class is MDRaidArrayDevice, and *that* class - defined in the same file - does *not* take a 'wwn' kwarg. MDBiosRaidDevicePopulator overrides the parent's (that's DiskDevicePopulator, remember) _get_kwargs(), but the child's method does start by calling the parent's: def _get_kwargs(self): kwargs = super(MDBiosRaidDevicePopulator, self)._get_kwargs() it then does some stuff to *add* new kwargs, and later on it removes some: # remove some kwargs that don't make sense for md del kwargs["model"] del kwargs["serial"] del kwargs["vendor"] del kwargs["bus"] but it does *not* remove wwn. Thus, ultimately, we wind up calling `MDRaidArrayDevice(wwn=something)` and we blow up. Obvious fix: have MDBiosRaidDevicePopulator._get_kwargs() do: del kwargs["wwn"] Also, check if there are any other cases where we should do this. https://github.com/storaged-project/blivet/pull/671 should fix this. If anyone wants to generate an updates.img and try it, go for it. Otherwise I'll try and post one later. python-blivet-3.0.0-0.6.b1.fc28 has been submitted as an update to Fedora 28. https://bodhi.fedoraproject.org/updates/FEDORA-2018-e6332fc675 Here's an updates.img you can use to test the fix: http://www.happyassassin.net/updates/1557957.0.img can someone with an affected system please test an install of a recent F28 image with 'inst.updates=http://www.happyassassin.net/updates/1557957.0.img' ? I can't do it myself as I don't have an Intel fwraid motherboard any more :( (In reply to Adam Williamson from comment #18) > Here's an updates.img you can use to test the fix: > > http://www.happyassassin.net/updates/1557957.0.img > > can someone with an affected system please test an install of a recent F28 > image with 'inst.updates=http://www.happyassassin.net/updates/1557957.0.img' > ? I can't do it myself as I don't have an Intel fwraid motherboard any more > :( Anaconda no longer crashes during start up so that problem seems to be fixed, but it still crashes later, during disk selection, see bug 1558906. python-blivet-3.0.0-0.6.b1.fc28 has been pushed to the Fedora 28 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-2018-e6332fc675 python-blivet-3.0.0-0.6.b1.fc28 has been pushed to the Fedora 28 stable repository. If problems still persist, please make note of it in this bug report. |