Version-Release number of selected component: anaconda-21.35-1 The following was filed automatically by anaconda: anaconda 21.35-1 exception report Traceback (most recent call first): File "/usr/lib/python2.7/site-packages/blivet/formats/disklabel.py", line 127, in dict "sectorSize": self.partedDevice.sectorSize, File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 701, in dict "format": self.format.dict, "removable": self.removable, File "/usr/lib/python2.7/site-packages/blivet/__init__.py", line 1694, in dumpState shelf[key] = [d.dict for d in self.devices] File "/usr/lib/python2.7/site-packages/blivet/__init__.py", line 371, in doIt self.dumpState("final") File "/usr/lib/python2.7/site-packages/blivet/__init__.py", line 170, in turnOnFilesystems storage.doIt() File "/usr/lib64/python2.7/site-packages/pyanaconda/install.py", line 167, in doInstall turnOnFilesystems(storage, mountOnly=flags.flags.dirInstall) 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 227, in run threading.Thread.run(self, *args, **kwargs) AttributeError: 'NoneType' object has no attribute 'sectorSize' Additional info: cmdline: /usr/bin/python /sbin/anaconda cmdline_file: repo=http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/ initrd=http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/images/pxeboot/initrd.img BOOT_IMAGE=http://download.fedoraproject.org/pub/fedora/linux/development/rawhide/x86_64/os/images/pxeboot/vmlinuz executable: /sbin/anaconda hashmarkername: anaconda kernel: 3.15.0-0.rc4.git1.1.fc21.x86_64 product: Fedora release: Cannot get release name. type: anaconda version: rawhide
Created attachment 893261 [details] File: anaconda-tb
Created attachment 893262 [details] File: anaconda.log
Created attachment 893263 [details] File: environ
Created attachment 893264 [details] File: lsblk_output
Created attachment 893265 [details] File: nmcli_dev_list
Created attachment 893266 [details] File: os_info
Created attachment 893267 [details] File: program.log
Created attachment 893268 [details] File: storage.log
Created attachment 893269 [details] File: syslog
Created attachment 893270 [details] File: ifcfg.log
Created attachment 893271 [details] File: packaging.log
There are two things that seem wrong here: 1) dumpState() is allowing this exception to propagate. It should catch and log at least all AttributeErrors. 2) Disklabel.dict() should not assume that partedDevice has been set, since the property explicitly allows None. labelType, partitions, and alignment are all properties which handle a missing partedDevice somehow. sectorSize() should be a property as well, since it is used in both dict() and __repr__(). No other problems are immediately obvious.
Note that many of the attributes listed rely on partedDisk, itself a property. If partedDevice is None, partedDisk will propagate a parted.DiskException. This seems like the correct behavior. Note that in this particular case partedDevice is None because there was an error when reading OpticalDevice /dev/sr0 "No medium found"
If no media can be found on the OpticalDevice then it should have the default format corresponding to None, not a Disklabel format, and so the code that actually throws the exception should not be executing. So there is an underlying bug. The problem is that DeviceTree.updateDeviceFormat() is be invoked by anaconda, and it has no safeguards to prevent putting a format on the device if no media is present. In addUdevDevice() the safeguard exists. Since handleUdevDeviceFormat is only called from these two places, it seems reasonable to put the safeguards in that method.
Reposted.
This bug appears to have been reported against 'rawhide' during the Fedora 22 development cycle. Changing version to '22'. More information and reason for this action is here: https://fedoraproject.org/wiki/Fedora_Program_Management/HouseKeeping/Fedora22