Bug 1027376

Summary: installer crashes when presented with overcommitted thin pool
Product: Red Hat Enterprise Linux 7 Reporter: David Lehman <dlehman>
Component: python-blivetAssignee: David Lehman <dlehman>
Status: CLOSED CURRENTRELEASE QA Contact: Release Test Team <release-test-team-automation>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 7.0CC: amulhern, anaconda-maint-list, bcl, dlehman, jstodola, mbanas, mruckman
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Unspecified   
Whiteboard: abrt_hash:217c2a42032defe171c0ff12a40f424990d9c954092e73c11499392dc26b1e36 RejectedBlocker
Fixed In Version: python-blivet-0.18.15-1 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: 1024144 Environment:
Last Closed: 2014-06-13 11:10:41 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: 1024144    
Bug Blocks:    

Description David Lehman 2013-11-06 16:59:50 UTC
+++ This bug was initially created as a clone of Bug #1024144 +++

Description of problem:
Tried to add a 25gb root thinp LV to existing thinpool, all existing and the new installation listing on the left vanished (totally blank space) and about a minute later a crash.

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

The following was filed automatically by anaconda:
anaconda 20.25.4-1 exception report
Traceback (most recent call first):
  File "/tmp/updates/blivet/size.py", line 88, in _parseSpec
    raise SizeNotPositiveError("spec= param must be >=0")
  File "/tmp/updates/blivet/size.py", line 138, in __new__
    self = Decimal.__new__(cls, value=_parseSpec(spec))
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/lib/accordion.py", line 61, in selectorFromDevice
    size = Size(spec="%f MB" % device.size)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/lib/accordion.py", line 176, in addSelector
    selector = selectorFromDevice(device, mountpoint=mountpoint)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/custom.py", line 989, in _do_refresh
    mountpoint=mountpoint)
  File "/usr/lib64/python2.7/site-packages/pyanaconda/ui/gui/spokes/custom.py", line 2064, in on_add_clicked
    self._do_refresh(mountpointToShow=mountpoint or fstype)
SizeNotPositiveError: spec= param must be >=0

Additional info:
cmdline:        /usr/bin/python  /sbin/anaconda
cmdline_file:   initrd=initrd.img inst.stage2=hd:LABEL=Fedora\x2020-Beta-TC6\x20x86_64 quiet elevator=noop updates=http://dlehman.fedorapeople.org/updates/updates-1024076.0.img BOOT_IMAGE=vmlinuz 
executable:     /sbin/anaconda
hashmarkername: anaconda
kernel:         3.11.6-301.fc20.x86_64
product:        Fedora
release:        Cannot get release name.
type:           anaconda
version:        20-Beta-TC6

--- Additional comment from Chris Murphy on 2013-10-31 00:16:59 EDT ---

Oh great, as it turns out I did alter the LVM layout outside of the installer, and overcommitted it by 250GB afterall. I may have been suitably punished by spending hours trying to reproduce this bug thinking I hadn't until I read the logs. *sigh*

To reproduce the crash, via thinp overcommitting outside the installer I have these steps.

1. Install to a new clean disk using LVM Thin Provisioning partition scheme via the guided partitioning path.

2. Reboot to the installed system and create a new vLV, format it ext4.
lvcreate --thinpool fedora/pool00 --virtualsize 250g -n punishment

3. Reboot to the installer, applying updates.img, set partition scheme again to LVM thinp, go to custom partitioning.

4. Add new mount point /, at 25gb.

Result:
Installer says "Added new LVM Thin Provisioning to existing container fedora." And crashes about 15 seconds later. No warnings, error messages, or corrections to the 25GB entry I put in.

--- Additional comment from David Lehman on 2013-11-06 09:46:40 EST ---

This bug is about anaconda/blivet not handling the case of a preexisting overcommitted thin pool. I have patches that have resolved the issue in my testing.

Comment 3 Jan Stodola 2014-01-27 12:40:26 UTC
Reproduced with python-blivet-0.18.13-2.el7.
Retested with python-blivet-0.18.19-2.el7, anaconda shows an error message, it is possible to finish the installation after fixing reported issues.

Moving to VERIFIED.

Comment 4 David Lehman 2014-01-27 18:29:09 UTC
(In reply to Jan Stodola from comment #3)
> Retested with python-blivet-0.18.19-2.el7, anaconda shows an error message,
> it is possible to finish the installation after fixing reported issues.

You should not see an error message unless you try to add a new thin lv to the overcommitted pool.

Comment 5 Jan Stodola 2014-01-28 09:22:57 UTC
The error message is displayed when adding a new thin lv to the overcommitted pool.
When reusing already existing thin lv from the overcommitted pool, anaconda doesn't show any error, partitioning is accepted and the installation is successful.
Sorry for confusion...

Comment 6 Ludek Smid 2014-06-13 11:10:41 UTC
This request was resolved in Red Hat Enterprise Linux 7.0.

Contact your manager or support representative in case you have further questions about the request.