Description of problem: Booted an F22 image with libblockdev 0.8 (to fix #1206394). Version-Release number of selected component: anaconda-22.20.7-1 The following was filed automatically by anaconda: anaconda 22.20.7-1 exception report Traceback (most recent call first): File "/usr/lib/python2.7/site-packages/blivet/devicetree.py", line 1593, in handleUdevMDMemberFormat md_info = blockdev.md_examine(device.path) File "/usr/lib/python2.7/site-packages/blivet/devicetree.py", line 1877, in handleUdevDeviceFormat self.handleUdevMDMemberFormat(info, device) File "/usr/lib/python2.7/site-packages/blivet/devicetree.py", line 1260, in addUdevDevice self.handleUdevDeviceFormat(info, device) File "/usr/lib/python2.7/site-packages/blivet/devicetree.py", line 2177, in _populate self.addUdevDevice(dev) File "/usr/lib/python2.7/site-packages/blivet/devicetree.py", line 2111, in populate self._populate() File "/usr/lib/python2.7/site-packages/blivet/blivet.py", line 277, in reset self.devicetree.populate(cleanupOnly=cleanupOnly) File "/usr/lib/python2.7/site-packages/blivet/osinstall.py", line 1117, in storageInitialize storage.reset() File "/usr/lib64/python2.7/threading.py", line 766, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib64/python2.7/site-packages/pyanaconda/threads.py", line 244, in run threading.Thread.run(self, *args, **kwargs) File "/usr/lib64/python2.7/site-packages/pyanaconda/threads.py", line 115, in wait self.raise_if_error(name) File "/usr/lib64/python2.7/site-packages/pyanaconda/timezone.py", line 75, in time_initialize threadMgr.wait(THREAD_STORAGE) File "/usr/lib64/python2.7/threading.py", line 766, in run self.__target(*self.__args, **self.__kwargs) File "/usr/lib64/python2.7/site-packages/pyanaconda/threads.py", line 244, in run threading.Thread.run(self, *args, **kwargs) Error: g-bd-md-error-quark: malformed or invalid UUID: (null) (1) Additional info: addons: com_redhat_kdump cmdline: /usr/bin/python2 /sbin/anaconda cmdline_file: BOOT_IMAGE=vmlinuz initrd=initrd.img inst.stage2=hd:LABEL=Fedora-22_B_T5test-x86_64 quiet dnf.rpm.log: Mar 30 16:52:08 INFO --- logging initialized --- executable: /sbin/anaconda hashmarkername: anaconda kernel: 4.0.0-0.rc4.git0.1.fc22.x86_64 product: Fedora release: Cannot get release name. type: anaconda version: 22
Created attachment 1008607 [details] File: anaconda-tb
Created attachment 1008608 [details] File: anaconda.log
Created attachment 1008609 [details] File: dnf.log
Created attachment 1008610 [details] File: environ
Created attachment 1008611 [details] File: lsblk_output
Created attachment 1008612 [details] File: nmcli_dev_list
Created attachment 1008613 [details] File: os_info
Created attachment 1008614 [details] File: program.log
Created attachment 1008615 [details] File: storage.log
Created attachment 1008616 [details] File: syslog
Created attachment 1008617 [details] File: ifcfg.log
Created attachment 1008618 [details] File: packaging.log
Nominating as a Beta blocker: https://fedoraproject.org/wiki/Fedora_22_Beta_Release_Criteria#Hardware_and_firmware_RAID , "The installer must be able to detect and install to hardware or firmware RAID storage devices."
scratch build with a potential fix: http://koji.fedoraproject.org/koji/taskinfo?taskID=9368091
Created attachment 1008635 [details] logs from install attempt with the scratch build With the scratch build it no longer crashes, but the set does not appear as an available installation target (so if your only target is a RAID set, you can't install). Attaching the logs (all smooshed into one file by fpaste).
Discussed at 2015-03-30 blocker review meeting: http://meetbot.fedoraproject.org/fedora-blocker-review/2015-03-30/f22-blocker-review.2015-03-30-16.04.log.txt . Accepted as a blocker per criterion cited in #c13.
So the key is this (from storage.log): 17:34:05,125 DEBUG blivet: DeviceTree.handleUdevDeviceFormat: name: sda ; 17:34:05,136 INFO blivet: type detected on 'sda' is 'isw_raid_member' 17:34:05,138 DEBUG blivet: MDRaidMember.__init__: uuid: None ; exists: True ; label: None ; device: /dev/sda ; serial: ST3500418AS_9VM1BT6B ; mdUuid: None ; biosraid: True ; 17:34:05,138 DEBUG blivet: getFormat('isw_raid_member') returning MDRaidMember instance with object id 10 17:34:05,140 DEBUG blivet: DiskDevice._setFormat: sda ; current: None ; type: mdmember ; 17:34:05,140 INFO blivet: got format: existing mdmember 17:34:05,143 DEBUG blivet: DeviceTree.handleUdevMDMemberFormat: type: mdmember ; name: sda ; 17:34:05,162 DEBUG blivet: DeviceTree.getDeviceByUuid: hidden: False ; uuid: None ; incomplete: True ; 17:34:05,164 DEBUG blivet: DeviceTree.getDeviceByUuid returned None 17:34:05,164 ERR blivet: failed to determine name for the md array e0fb362e-9865-d1c0-cdb0-f5e327c9a085 and the problem behind that is that this: 17:34:05,153 INFO program: Running [5] mdadm --examine --brief /dev/sda ... 17:34:05,160 INFO program: stdout[5]: ARRAY metadata=imsm UUID=e0fb362e:9865d1c0:cdb0f5e3:27c9a085 ARRAY /dev/md/Volume0 container=e0fb362e:9865d1c0:cdb0f5e3:27c9a085 member=0 UUID=1d1335e9:79d4be6a:e16b7fa7:fe8c41f6 in case of a SW MD RAID array starts with 'ARRAY /dev/md/something' which libblockdev uses to determine the name of the device (and so used to do blivet earlier). I cannot imagine how this worked before, but if this works with F22 Alpha (no libblockdev), we need to investigate it more. Otherwise libblockdev can just search for the 'ARRAY /dev/md/something' pattern in the whole output to get the name.
The last time I know for sure it worked was 21 Final. I'll check 22 Alpha later and attach logs if it works.
So with some changes in libblockdev (I hesitate to call them fixes now) [1] we get to bug #1208536. [1] http://vpodzime.fedorapeople.org/1207317_updates.img
Pull request with the libblockdev changes: https://github.com/rhinstaller/libblockdev/pull/7
re-assigning to libblockdev for clarity.
Booting TC6 with the updates.img from #c19 I do indeed get to #1208536 , but if I build current libblockdev package plus https://github.com/rhinstaller/libblockdev/pull/7.patch and include that libblockdev build in a boot.iso , I still get 'malformed or invalid UUID'. I think some fix from the updates.img must be missing from the PR.
(In reply to awilliam from comment #22) > Booting TC6 with the updates.img from #c19 I do indeed get to #1208536 , but > if I build current libblockdev package plus > https://github.com/rhinstaller/libblockdev/pull/7.patch and include that > libblockdev build in a boot.iso , I still get 'malformed or invalid UUID'. I > think some fix from the updates.img must be missing from the PR. As explained in the PR, the change related to UUIDs was already pushed to master and thus is not part of the PR (I considered the change safe and clearly right).
oh, sorry, missed that. it made testing a bit tricky as there isn't an image with those changes :) i figured out a way, though.
libblockdev-0.9-1.fc22, python-blivet-1.0.7-1.fc22, anaconda-22.20.9-1.fc22 has been submitted as an update for Fedora 22. https://admin.fedoraproject.org/updates/libblockdev-0.9-1.fc22,python-blivet-1.0.7-1.fc22,anaconda-22.20.9-1.fc22
Fix verified with a test image built with the bits from #c25.
*** Bug 1209263 has been marked as a duplicate of this bug. ***
Update has gone stable, closing (I'll verify FW RAID with Beta RC2 soon).