Bug 1465674

Summary: AttributeError: 'Disk' object has no attribute 'getMaxLogicalPartitions'
Product: [Fedora] Fedora Reporter: Dale Turner <rxguy>
Component: python-blivetAssignee: Blivet Maintenance Team <blivet-maint-list>
Status: CLOSED RAWHIDE QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: rawhideCC: anaconda-maint-list, awilliam, blivet-maint-list, dcantrell, g.kaviyarasu, jonathan, malmond, mkolman, pwhalen, rvykydal, vanmeeuwen+fedora, vponcova, vtrefny
Target Milestone: ---   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard: abrt_hash:1157833d8337ce611e74dbb9599accd859d0a5792eea23162d0af9fd5fc6a34a;
Fixed In Version: python-blivet-2.1.9-2 Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2017-07-17 07:12:17 UTC Type: ---
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: 1396700    
Attachments:
Description Flags
File: anaconda-tb
none
File: environ
none
File: lsblk_output
none
File: nmcli_dev_list
none
File: os_info none

Description Dale Turner 2017-06-27 22:35:17 UTC
Description of problem:
Attempted to return to the main anaconda screen from the installation destination hub

Version-Release number of selected component:
anaconda-27.16-1

The following was filed automatically by anaconda:
anaconda 27.16-1 exception report
Traceback (most recent call first):
  File "/usr/lib/python3.6/site-packages/blivet/partitioning.py", line 140, in get_next_partition_type
    max_logicals = disk.getMaxLogicalPartitions()
  File "/usr/lib/python3.6/site-packages/blivet/partitioning.py", line 769, in allocate_partitions
    new_part_type = get_next_partition_type(disklabel.parted_disk)
  File "/usr/lib/python3.6/site-packages/blivet/partitioning.py", line 604, in do_partitioning
    allocate_partitions(storage, disks, partitions, free)
  File "/usr/lib/python3.6/site-packages/blivet/autopart.py", line 514, in do_autopart
    do_partitioning(storage)
  File "/usr/lib64/python3.6/site-packages/pyanaconda/kickstart.py", line 328, in execute
    do_autopart(storage, ksdata, min_luks_entropy=MIN_CREATE_ENTROPY)
  File "/usr/lib64/python3.6/site-packages/pyanaconda/kickstart.py", line 2455, in doKickstartStorage
    ksdata.autopart.execute(storage, ksdata, instClass)
  File "/usr/lib64/python3.6/site-packages/pyanaconda/ui/gui/spokes/storage.py", line 452, in _doExecute
    doKickstartStorage(self.storage, self.data, self.instclass)
  File "/usr/lib64/python3.6/site-packages/pyanaconda/ui/gui/spokes/storage.py", line 475, in _doExecute
    raise e
  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 252, in run
    threading.Thread.run(self)
AttributeError: 'Disk' object has no attribute 'getMaxLogicalPartitions'

Additional info:
addons:         com_redhat_docker, com_redhat_kdump
cmdline:        /usr/libexec/system-python  /sbin/anaconda
executable:     /sbin/anaconda
hashmarkername: anaconda
kernel:         4.12.0-0.rc6.git3.1.fc27.x86_64
product:        Fedora
release:        Cannot get release name.
type:           anaconda
version:        rawhide

Comment 1 Dale Turner 2017-06-27 22:35:23 UTC
Created attachment 1292478 [details]
File: anaconda-tb

Comment 2 Dale Turner 2017-06-27 22:35:24 UTC
Created attachment 1292479 [details]
File: environ

Comment 3 Dale Turner 2017-06-27 22:35:25 UTC
Created attachment 1292480 [details]
File: lsblk_output

Comment 4 Dale Turner 2017-06-27 22:35:27 UTC
Created attachment 1292481 [details]
File: nmcli_dev_list

Comment 5 Dale Turner 2017-06-27 22:35:28 UTC
Created attachment 1292482 [details]
File: os_info

Comment 6 Adam Williamson 2017-06-28 03:27:08 UTC
Similar problem has been detected:

Occurs on completing INSTALLATION DESTINATION spoke in today's Rawhide compose (20170627.n.0). Did not occur in 20170626.n.0. All openQA tests are failing on this crash.

addons:         com_redhat_kdump, com_redhat_docker
cmdline:        /usr/libexec/system-python  /sbin/anaconda
hashmarkername: anaconda
kernel:         4.12.0-0.rc6.git3.1.fc27.x86_64
package:        anaconda-27.16-1
product:        Fedora
reason:         AttributeError: 'Disk' object has no attribute 'getMaxLogicalPartitions'
release:        Cannot get release name.
version:        rawhide

Comment 7 Adam Williamson 2017-06-28 03:39:06 UTC
Proposing as an F27 Alpha blocker, this obviously violates all kinds of criteria (it seems to be more or less impossible to avoid).

Comment 8 Adam Williamson 2017-06-28 03:49:15 UTC
This is caused by a change in pyparted 3.11.0, which landed in the affected Rawhide compose:

https://github.com/dcantrell/pyparted/commit/5cdc96ade4847ba46fc0bf54df9bcec426368924

(note to dcantrell: it makes searching for stuff a lot easier if you include the *name* of the removed function in the commit message...)

Comment 9 Matthew Almond 2017-07-07 21:15:38 UTC
There's a corresponding change in blivet 2.1-devel that resolves this: https://github.com/storaged-project/blivet/commit/d81ed9e8eb4eb861927276b1632ff1a49263fc20

It seems like it's going in the right direction. Is there any way to get this into  the release branch?

Comment 10 Matthew Almond 2017-07-13 23:49:10 UTC
Ah, it looks like it happened: https://github.com/storaged-project/blivet/commit/56a1278203dc3842a53686a9a0899f92af57f81a

Comment 11 Adam Williamson 2017-07-14 00:49:19 UTC
Matthew: when someone changes the status to MODIFIED and sets Fixed In Version, that basically means that the fix will show up in the next python-blivet (or anaconda, they use the same process) build, when it happens.

Comment 12 Vojtech Trefny 2017-07-17 07:12:17 UTC
Matthew: Adam is right, I did a new build with this fix 2 weeks ago, just without doing a new upstream release first. This bug should be already fixed in Rawhide.