Bug 1881234

Summary: Resizing doesn't work right in anaconda blivet-gui mode: "AttributeError: 'BlivetStorageHandler' object has no attribute '_resizable_filesystems'"
Product: [Fedora] Fedora Reporter: Adam Williamson <awilliam>
Component: blivet-guiAssignee: Vojtech Trefny <vtrefny>
Status: CLOSED ERRATA QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: unspecified    
Version: rawhideCC: gmarr, kparal, mkolman, robatino, vtrefny
Target Milestone: ---Keywords: Reopened
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard: openqa
Fixed In Version: blivet-gui-2.2.1-1.fc33 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2020-10-05 19:46:05 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:

Description Adam Williamson 2020-09-21 21:47:41 UTC
Since Fedora-Rawhide-20200913.n.0 , a test openQA runs where it tries to resize an existing LVM volume in the installer blivet-gui mode has been failing with this traceback:

05:59:13,948 CRT exception: Traceback (most recent call last):

  File "/usr/lib/python3.9/site-packages/blivetgui/blivetgui.py", line 281, in resize_device
    self.client.remote_call("device_resizable", device))

  File "/usr/lib/python3.9/site-packages/blivetgui/communication/client.py", line 176, in remote_call
    raise type(ret.exception)(str(ret.exception) + "\n" + ret.traceback)  # pylint: disable=maybe-no-member

AttributeError: 'BlivetStorageHandler' object has no attribute '_resizable_filesystems'
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/blivetgui/communication/server.py", line 317, in _call_utils_method
    ret = utils_method(*args)
  File "/usr/lib/python3.9/site-packages/blivetgui/blivet_utils.py", line 636, in device_resizable
    elif blivet_device.format.type not in self.resizable_filesystems:
  File "/usr/lib/python3.9/site-packages/blivetgui/blivet_utils.py", line 169, in resizable_filesystems
    if self._resizable_filesystems is None:
AttributeError: 'BlivetStorageHandler' object has no attribute '_resizable_filesystems'

in that compose, anaconda and blivet itself didn't change, but blivet-gui did, from 2.1.15 to 2.2.0. I haven't yet been able to spot the specific change to blame for this issue, though.

Comment 1 Adam Williamson 2020-09-21 21:50:22 UTC
oh, wait, it's probably this:

https://github.com/storaged-project/blivet-gui/commit/12f4ae6bfb35cedb64ce2b92391365cf6e9e9712

the 'BlivetStorageHandler' class being used here is from anaconda, but it's a subclass of 'BlivetUtilsAnaconda', which is from blivetgui/osinstall.py. That is a subclass of BlivetUtils, but it *does not* call BlivetUtils.__init__ , which is where (in that commit) self._resizable_filesystems gets set. So you can see the problem...

Comment 3 Vojtech Trefny 2020-09-23 12:35:59 UTC
*** Bug 1881932 has been marked as a duplicate of this bug. ***

Comment 4 Kamil Páral 2020-09-23 12:55:09 UTC
I've just hit this in bug 1881932. Proposing as a Final blocker:
"Any installer mechanism for resizing storage volumes must correctly attempt the requested operation. "
https://fedoraproject.org/wiki/Fedora_33_Final_Release_Criteria#Storage_volume_resize

Comment 5 Geoffrey Marr 2020-09-28 16:54:45 UTC
Discussed during the 2020-09-28 blocker review meeting: [0]

The decision to classify this bug as an "AcceptedBlocker (Final)" was made as it violates the following criterion:

"Any installer mechanism for resizing storage volumes must correctly attempt the requested operation."

[0] https://meetbot.fedoraproject.org/fedora-blocker-review/2020-09-28/f33-blocker-review.2020-09-28-16.01.txt

Comment 6 Fedora Update System 2020-09-29 11:23:26 UTC
FEDORA-2020-f9ad33acdd has been submitted as an update to Fedora 33. https://bodhi.fedoraproject.org/updates/FEDORA-2020-f9ad33acdd

Comment 7 Kamil Páral 2020-09-29 16:16:19 UTC
(In reply to Fedora Update System from comment #6)
> FEDORA-2020-f9ad33acdd has been submitted as an update to Fedora 33.
> https://bodhi.fedoraproject.org/updates/FEDORA-2020-f9ad33acdd

I roughly followed the OpenQA testcase:
https://openqa.fedoraproject.org/tests/679103/modules/disk_custom_blivet_resize_lvm/steps/1/src
and everything worked fine.

Comment 8 Fedora Update System 2020-09-30 01:10:21 UTC
FEDORA-2020-f9ad33acdd has been pushed to the Fedora 33 testing repository.
In short time you'll be able to install the update with the following command:
`sudo dnf upgrade --enablerepo=updates-testing --advisory=FEDORA-2020-f9ad33acdd`
You can provide feedback for this update here: https://bodhi.fedoraproject.org/updates/FEDORA-2020-f9ad33acdd

See also https://fedoraproject.org/wiki/QA:Updates_Testing for more information on how to test updates.

Comment 9 Fedora Update System 2020-10-02 00:34:45 UTC
FEDORA-2020-f9ad33acdd has been pushed to the Fedora 33 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 10 Adam Williamson 2020-10-03 23:18:09 UTC
Still seems broken in latest Rawhide compose:

04:08:04,950 CRT exception: Traceback (most recent call last):

  File "/usr/lib/python3.9/site-packages/blivetgui/blivetgui.py", line 281, in resize_device
    self.client.remote_call("device_resizable", device))

  File "/usr/lib/python3.9/site-packages/blivetgui/communication/client.py", line 176, in remote_call
    raise type(ret.exception)(str(ret.exception) + "\n" + ret.traceback)  # pylint: disable=maybe-no-member

AttributeError: 'BlivetStorageHandler' object has no attribute '_resizable_filesystems'
Traceback (most recent call last):
  File "/usr/lib/python3.9/site-packages/blivetgui/communication/server.py", line 317, in _call_utils_method
    ret = utils_method(*args)
  File "/usr/lib/python3.9/site-packages/blivetgui/blivet_utils.py", line 636, in device_resizable
    elif blivet_device.format.type not in self.resizable_filesystems:
  File "/usr/lib/python3.9/site-packages/blivetgui/blivet_utils.py", line 169, in resizable_filesystems
    if self._resizable_filesystems is None:
AttributeError: 'BlivetStorageHandler' object has no attribute '_resizable_filesystems'

https://openqa.fedoraproject.org/tests/684114

I think this is because the Rawhide update failed gating, so didn't get pushed: https://bodhi.fedoraproject.org/updates/FEDORA-2020-7955e13f0e

Not sure why the expected test result is missing.

Comment 11 Vojtech Trefny 2020-10-04 14:03:44 UTC
(In reply to Adam Williamson from comment #10)
> 
> I think this is because the Rawhide update failed gating, so didn't get
> pushed: https://bodhi.fedoraproject.org/updates/FEDORA-2020-7955e13f0e
> 
> Not sure why the expected test result is missing.

I waived the missing results.

Looks like enabling gating on blivet-gui was bad idea, this isn't the first time this happened and there's no way to tell what happened, the test results are just missing... Tests passed on the F33 update and in our upstream CI too, so lets just hope it was some weird bug in gating and not in blivet-gui.

Comment 12 Adam Williamson 2020-10-04 16:42:55 UTC
We could follow up with the Fedora CI team to try and find out why the test didn't run. There's the ci@ mailing list, and #fedora-ci on Freenode.

Comment 13 Kamil Páral 2020-10-05 13:26:30 UTC
Adam, should we remove the blocker trackers from here and keep this bug related to Rawhide, or is this likely to get closed soon?

Comment 14 Adam Williamson 2020-10-05 16:22:41 UTC
Should get fixed in the next Rawhide, since the update is pushed stable now. Might be fixed in today's Rawhide, I'll check after the blocker meeting.

Comment 15 Adam Williamson 2020-10-05 19:03:54 UTC
Update didn't make it into 1004.n.1. Should be in next Rawhide, but I'll drop the blocker trackers to avoid confusion.

Comment 16 Adam Williamson 2020-10-05 19:46:05 UTC
I misread. Fix did make 1004.n.1, and test passed: https://openqa.fedoraproject.org/tests/685085 . Closing.