Bug 1034311

Summary: CreateException: Can't have a partition outside the disk!
Product: Red Hat Enterprise Linux 7 Reporter: Martin Kyral <mkyral>
Component: anacondaAssignee: Anaconda Maintenance Team <anaconda-maint-list>
Status: CLOSED CURRENTRELEASE QA Contact: Release Test Team <release-test-team-automation>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0   
Target Milestone: rc   
Target Release: ---   
Hardware: x86_64   
OS: Unspecified   
Whiteboard: abrt_hash:0fa7a26829443040bdd3bf4f6b95b9dccb06f2dd41eadbdd2e5f6978665d78da
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-12-13 18:38:40 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: 1023190    
Attachments:
Description Flags
File: anaconda-tb
none
File: anaconda.log
none
File: environ
none
File: lsblk_output
none
File: nmcli_dev_list
none
File: os_info
none
File: program.log
none
File: storage.log
none
File: syslog
none
File: ifcfg.log
none
File: packaging.log none

Description Martin Kyral 2013-11-25 15:11:13 UTC
Description of problem:
1) Enter the manual partitioning tool
2) in the 'Desired Capacity' filed type in greater number than is the disk's size
3) click 'Update Settings'
4) crash

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

The following was filed automatically by anaconda:
anaconda 19.31.34-1 exception report
Traceback (most recent call first):
  File "/usr/lib64/python2.7/site-packages/parted/geometry.py", line 55, in __init__
    self.__geometry = _ped.Geometry(self.device.getPedDevice(), start, length)
  File "/usr/lib64/python2.7/site-packages/parted/decorators.py", line 41, in new
    ret = fn(*args, **kwds)
  File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 1573, in _computeResize
    length=newLen)
  File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 1263, in _setTargetSize
    (constraint, geometry) = self._computeResize(self.partedPartition)
  File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 605, in <lambda>
    lambda s, v: s._setTargetSize(v),
  File "/usr/lib/python2.7/site-packages/blivet/deviceaction.py", line 400, in __init__
    self.device.targetSize = newsize
  File "/usr/lib/python2.7/site-packages/blivet/__init__.py", line 1242, in resizeDevice
    self.devicetree.registerAction(action_class(device, new_size))
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/custom.py", line 1403, in _save_right_side
    self.__storage.resizeDevice(device, size)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/custom.py", line 2780, in on_apply_clicked
    self._save_right_side(self._current_selector)
CreateException: Can't have a partition outside the disk!

Additional info:
cmdline:        /usr/bin/python  /sbin/anaconda
cmdline_file:   initrd=/distrotrees/65107/initrd method=http://download-01.eng.brq.redhat.com/pub/rhel/rel-eng/RHEL-7.0-20131115.2/compose/Everything/x86_64/os/ repo=http://download-01.eng.brq.redhat.com/pub/rhel/rel-eng/RHEL-7.0-20131115.2/compose/Everything/x86_64/os/  BOOT_IMAGE=/distrotrees/65107/kernel 
executable:     /sbin/anaconda
hashmarkername: anaconda
kernel:         3.10.0-50.el7.x86_64
product:        Red Hat Enterprise Linux
release:        Red Hat Enterprise Linux Server release 7.0 Beta (Maipo)
type:           anaconda
version:        7.0

Comment 1 Martin Kyral 2013-11-25 15:11:20 UTC
Created attachment 828718 [details]
File: anaconda-tb

Comment 2 Martin Kyral 2013-11-25 15:11:25 UTC
Created attachment 828719 [details]
File: anaconda.log

Comment 3 Martin Kyral 2013-11-25 15:11:28 UTC
Created attachment 828720 [details]
File: environ

Comment 4 Martin Kyral 2013-11-25 15:11:35 UTC
Created attachment 828721 [details]
File: lsblk_output

Comment 5 Martin Kyral 2013-11-25 15:11:57 UTC
Created attachment 828722 [details]
File: nmcli_dev_list

Comment 6 Martin Kyral 2013-11-25 15:12:02 UTC
Created attachment 828723 [details]
File: os_info

Comment 7 Martin Kyral 2013-11-25 15:12:06 UTC
Created attachment 828724 [details]
File: program.log

Comment 8 Martin Kyral 2013-11-25 15:12:10 UTC
Created attachment 828725 [details]
File: storage.log

Comment 9 Martin Kyral 2013-11-25 15:12:14 UTC
Created attachment 828726 [details]
File: syslog

Comment 10 Martin Kyral 2013-11-25 15:12:17 UTC
Created attachment 828727 [details]
File: ifcfg.log

Comment 11 Martin Kyral 2013-11-25 15:12:21 UTC
Created attachment 828728 [details]
File: packaging.log

Comment 12 Martin Kyral 2013-11-25 15:21:05 UTC
This crash happens when resizing existing partition. Typing in too huge number in the new partition dialog causes the partition to be as big as possible, which is correct (however, the user shall be notified that the partition size will be smaller than entered and / or there shall be checkbox "Fill in free space".

Comment 14 Martin Kyral 2013-11-25 15:58:41 UTC
Another symptom of the same bug:

Traceback (most recent call first):
  File "/usr/lib64/python2.7/site-packages/parted/geometry.py", line 55, in __init__
    self.__geometry = _ped.Geometry(self.device.getPedDevice(), start, length)
  File "/usr/lib64/python2.7/site-packages/parted/decorators.py", line 41, in new
    ret = fn(*args, **kwds)
  File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 1573, in _computeResize
    length=newLen)
  File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 1263, in _setTargetSize
    (constraint, geometry) = self._computeResize(self.partedPartition)
  File "/usr/lib/python2.7/site-packages/blivet/devices.py", line 605, in <lambda>
    lambda s, v: s._setTargetSize(v),
  File "/usr/lib/python2.7/site-packages/blivet/deviceaction.py", line 400, in __init__
    self.device.targetSize = newsize
  File "/usr/lib/python2.7/site-packages/blivet/__init__.py", line 1242, in resizeDevice
    self.devicetree.registerAction(action_class(device, new_size))
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/custom.py", line 1403, in _save_right_side
    self.__storage.resizeDevice(device, size)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/custom.py", line 2780, in on_apply_clicked
    self._save_right_side(self._current_selector)
CreateException: Can't have overlapping partitions!

Comment 15 David Cantrell 2013-12-13 18:38:40 UTC
I am unable to reproduce this using RHEL 7.0 Beta.  I am entering a desired capacity larger than my disk size, then clicking Update Settings, and the desired capacity is reset to an appropriate value.  No traceback.