Description of problem: Anaconda crashes immediately on startup when I have 3 disks in my PC, sda is a standard drive, and sdb+sdc are put into RAID0. All disks were completely wiped using dd (beginning and end of each disk) before creating the RAID volume and booting into LiveCD, so this bug should not be caused by any leftover data from previous installations. Version-Release number of selected component: anaconda-core-28.22.2-3.fc28.x86_64 The following was filed automatically by anaconda: anaconda 28.22.2 exception report Traceback (most recent call first): File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/devices/md.py", line 681, in __init__ super(MDBiosRaidArrayDevice, self).__init__(name, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/populator/helpers/disk.py", line 71, in run device = self._device_class(name, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 263, in handle_device device = helper_class(self, info).run() File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 462, in _populate self.handle_device(dev) File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/populator/populator.py", line 412, in populate self._populate() File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib/python3.6/site-packages/blivet/blivet.py", line 161, in reset self.devicetree.populate(cleanup_only=cleanup_only) File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib64/python3.6/site-packages/pyanaconda/storage/osinstall.py", line 1665, in reset super().reset(cleanup_only=cleanup_only) File "/usr/lib/python3.6/site-packages/blivet/threads.py", line 53, in run_with_lock return m(*args, **kwargs) File "/usr/lib64/python3.6/site-packages/pyanaconda/storage/osinstall.py", line 2186, in storage_initialize storage.reset() File "/usr/lib64/python3.6/threading.py", line 864, in run self._target(*self._args, **self._kwargs) File "/usr/lib64/python3.6/site-packages/pyanaconda/threading.py", line 291, in run threading.Thread.run(self) TypeError: __init__() got an unexpected keyword argument 'wwn' Additional info: addons: com_redhat_kdump cmdline: /usr/bin/python3 /sbin/anaconda --liveinst --method=livecd:///dev/mapper/live-base cmdline_file: BOOT_IMAGE=/images/pxeboot/vmlinuz root=live:CDLABEL=Fedora-WS-Live-28-20180318-n-0 rd.live.image quiet executable: /sbin/anaconda hashmarkername: anaconda kernel: 4.16.0-0.rc4.git0.1.fc28.x86_64 other involved packages: python3-libs-3.6.4-16.fc28.x86_64, python3-blivet-3.0.0-0.4.b1.fc28.noarch product: Fedora release: Fedora release 28 (Twenty Eight) type: anaconda version: 28 Potential duplicate: bug 1557270
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.