Bug 2131183
| Summary: | Installer Crashes When Attempting to Reclaim Space | ||||||||
|---|---|---|---|---|---|---|---|---|---|
| Product: | [Fedora] Fedora | Reporter: | seanmottles | ||||||
| Component: | anaconda | Assignee: | Vendula Poncova <vponcova> | ||||||
| Status: | CLOSED ERRATA | QA Contact: | Fedora Extras Quality Assurance <extras-qa> | ||||||
| Severity: | unspecified | Docs Contact: | |||||||
| Priority: | unspecified | ||||||||
| Version: | 37 | CC: | anaconda-maint-list, fzatlouk, geraldo.simiao.kutz, joepesco2020, jonathan, kellin, kparal, robatino, vanmeeuwen+fedora, vponcova, w | ||||||
| Target Milestone: | --- | ||||||||
| Target Release: | --- | ||||||||
| Hardware: | x86_64 | ||||||||
| OS: | Unspecified | ||||||||
| Whiteboard: | AcceptedBlocker | ||||||||
| Fixed In Version: | anaconda-37.12.6-1.fc37 | Doc Type: | If docs needed, set a value | ||||||
| Doc Text: | Story Points: | --- | |||||||
| Clone Of: | Environment: | ||||||||
| Last Closed: | 2022-10-10 14:22:43 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: | |||||||||
| Bug Depends On: | |||||||||
| Bug Blocks: | 2009539 | ||||||||
| Attachments: |
|
||||||||
|
Description
seanmottles
2022-09-30 08:17:50 UTC
From anaconda.log:
10:09:11,115 DBG ui.gui.spokes.custom_storage: Saving storage configuration...
10:09:12,145 DBG ui.gui.spokes.custom_storage: Checking storage configuration...
10:09:13,178 DBG exception: running handleException
10:09:13,181 CRT exception: Traceback (most recent call last):
File "/usr/lib64/python3.11/site-packages/pyanaconda/ui/gui/spokes/custom_storage.py", line 956, in on_back_clicked
if not self._do_check():
^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/ui/gui/spokes/custom_storage.py", line 909, in _do_check
report = apply_partitioning(
^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/ui/lib/storage.py", line 329, in apply_partitioning
sync_run_task(task_proxy)
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/__init__.py", line 46, in sync_run_task
task_proxy.Finish()
File "/usr/lib/python3.11/site-packages/dasbus/client/handler.py", line 444, in _call_method
return self._get_method_reply(
^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/dasbus/client/handler.py", line 477, in _get_method_reply
return self._handle_method_error(error)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/dasbus/client/handler.py", line 497, in _handle_method_error
raise exception from None
pyanaconda.modules.common.errors.general.AnacondaError: 'NoneType' object has no attribute 'type'
From storage.log:
DEBUG:anaconda.modules.storage.bootloader.base:Is sda a valid stage1 target device?
DEBUG:anaconda.modules.storage.bootloader.base:_is_valid_disklabel(sda) returning True
DEBUG:anaconda.modules.storage.bootloader.base:_is_valid_size(sda) returning True
DEBUG:anaconda.modules.storage.bootloader.base:_is_valid_location(sda) returning True
DEBUG:anaconda.modules.storage.bootloader.base:_is_valid_format(sda) returning True
DEBUG:anaconda.modules.storage.bootloader.base:is_valid_stage1_device(sda) returning True
INFO:anaconda.threading:Thread Failed: AnaTaskThread-StorageValidateTask-1 (139879147853504)
ERROR:anaconda.modules.common.task.task:Thread AnaTaskThread-StorageValidateTask-1 has failed: Traceback (most recent call last):
File "/usr/lib64/python3.11/site-packages/pyanaconda/threading.py", line 275, in run
threading.Thread.run(self)
File "/usr/lib64/python3.11/threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/task.py", line 96, in _thread_run_callback
self._task_run_callback()
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/task.py", line 109, in _task_run_callback
self._set_result(self.run())
^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/partitioning/validate.py", line 51, in run
return self._validate_storage(self._storage)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/partitioning/validate.py", line 59, in _validate_storage
result = storage_checker.check(storage)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/checker/utils.py", line 686, in check
check(storage, constraints, result.add_error, result.add_warning)
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/checker/utils.py", line 213, in verify_gpt_biosboot
for stage1, _stage2 in storage.bootloader.install_targets:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/bootloader/grub2.py", line 392, in install_targets
if self.stage2_device.type == "mdarray" and \
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'type'
INFO:anaconda.threading:Thread Done: AnaTaskThread-StorageValidateTask-1 (139879147853504)
WARNING:dasbus.server.handler:The call org.fedoraproject.Anaconda.Task.Finish has failed with an exception:
Traceback (most recent call last):
File "/usr/lib/python3.11/site-packages/dasbus/server/handler.py", line 455, in _method_callback
result = self._handle_call(
^^^^^^^^^^^^^^^^^^
File "/usr/lib/python3.11/site-packages/dasbus/server/handler.py", line 265, in _handle_call
return handler(*parameters, **additional_args)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/task_interface.py", line 114, in Finish
self.implementation.finish()
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/task.py", line 175, in finish
threadMgr.raise_if_error(self._thread_name)
File "/usr/lib64/python3.11/site-packages/pyanaconda/threading.py", line 166, in raise_if_error
raise exc_info[1]
File "/usr/lib64/python3.11/site-packages/pyanaconda/threading.py", line 275, in run
threading.Thread.run(self)
File "/usr/lib64/python3.11/threading.py", line 975, in run
self._target(*self._args, **self._kwargs)
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/task.py", line 96, in _thread_run_callback
self._task_run_callback()
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/common/task/task.py", line 109, in _task_run_callback
self._set_result(self.run())
^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/partitioning/validate.py", line 51, in run
return self._validate_storage(self._storage)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/partitioning/validate.py", line 59, in _validate_storage
result = storage_checker.check(storage)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/checker/utils.py", line 686, in check
check(storage, constraints, result.add_error, result.add_warning)
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/checker/utils.py", line 213, in verify_gpt_biosboot
for stage1, _stage2 in storage.bootloader.install_targets:
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/usr/lib64/python3.11/site-packages/pyanaconda/modules/storage/bootloader/grub2.py", line 392, in install_targets
if self.stage2_device.type == "mdarray" and \
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'type'
Some extra info from Sean:
>> What is currently installed on the disk?
> a previous fedora testing install, 3 partitions: /dev/sda1 -> UEFI FAT, /dev/sda2 -> /boot, /dev/sda3 -> /
>> Fedora 37? Is the layout custom, or have you used the defaults? Also, is that VM BIOS or UEFI?
> Yep, Fedora 37. That install was UEFI, It was custom but "create standard partitions automatically" to have boot and root on ext4. The new installer fails on both legacy BIOS and UEFI
>> Since you have /dev/sda, it seems you're not using Virtio disks. What are you using?
> passing -hda to qemu, qcow2 disk image
> it's a small 10G disk
I'm unable to reproduce this problem. It seems to be a race condition, according to the original description. But it seems to be a genuine error, so I'm proposing it for a blocker discussion and I hope anaconda team can look into this.
Sean, please keep the VM around, don't overwrite it yet, thanks.
As said in the matrix room, Sean used Fedora-i3-Live-x86_64-37-20220929.n.0.iso as well as Fedora-Everything-netinst-x86_64-37-20220929.n.0.iso to try this install. I tried to reproduce the bug without success with the same isos, as well as F37 KDE iso with updated anaconda (anaconda-37.12.5-1.fc37) in a virt-manager/qemu/kvm setup. My installations ended as expected. Some additional info/corrections: qemu is saying it's a raw disk image file (made it a couple weeks ago so couldn't remember. I usually make qcow2 format files out of muscle memory) and that write operations on block 0 will be restricted. Running the installer when specifying raw format also crashes. Making a copy of the disk file and running the Debian 11 x86_64 iso installer in legacy BIOS mode without raw specified succeeds in detecting the existing data and reclaiming the space (Guided Partitioning -> Use entire disk), as well as completing the installation normally. Here's my qemu command: qemu-system-x86_64 -enable-kvm -m 4096 -smp 2 -hda ./vm.disk -cdrom ./Fedora-Everything-netinst-x86_64-37-20220929.n.0.iso -boot menu=on Another small update/correction: Previous install was using Fedora-i3-Live-37_B-1-5 on legacy BIOS. Same qemu command just different cdrom choice. I've attached the anaconda logs from the installation that exists on disk in case that's helpful. Created attachment 1915260 [details]
previous installer log files
Fixed in a pull request: https://github.com/rhinstaller/anaconda/pull/4359 How to reproduce the issue: 1. Enter the Installation Destination spoke. 2. Select some disks and choose the custom storage configuration. 3. Delete all mount points and devices on the Manual Partitioning screen. 4. Click Done. Anaconda crashes with the same error as reported in this bug. Discussed during the 2022-10-03 blocker review meeting: [1] The decision to classify this bug as an AcceptedBlocker was made: "Any installer mechanism for resizing storage volumes must correctly attempt the requested operation." [1] https://meetbot-raw.fedoraproject.org/fedora-blocker-review/2022-10-03/f37-blocker-review.2022-10-03-16.00.log.txt FEDORA-2022-2c9c1ebab5 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-2c9c1ebab5 FEDORA-2022-2c9c1ebab5 has been pushed to the Fedora 37 testing repository. Soon you'll be able to install the update with the following command: `sudo dnf upgrade --enablerepo=updates-testing --refresh --advisory=FEDORA-2022-2c9c1ebab5` You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2022-2c9c1ebab5 See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates. (In reply to Vendula Poncova from comment #8) > How to reproduce the issue: > > 1. Enter the Installation Destination spoke. > 2. Select some disks and choose the custom storage configuration. > 3. Delete all mount points and devices on the Manual Partitioning screen. > 4. Click Done. > > Anaconda crashes with the same error as reported in this bug. This crash no longer happens with the updated anaconda. Also the installation completed fine. FEDORA-2022-2c9c1ebab5 has been pushed to the Fedora 37 stable repository. If problem still persists, please make note of it in this bug report. |