Bug 577436

Summary: preupgrade reports 'Ready to being upgrade' despite having run out of room.
Product: [Fedora] Fedora Reporter: David Nalley <david>
Component: preupgradeAssignee: Richard Hughes <richard>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: high Docs Contact:
Priority: low    
Version: 12CC: alex, b, delete, luis, richard, vwfoxguru
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-12-03 16:42:21 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:

Description David Nalley 2010-03-27 01:26:01 UTC
Description of problem:
If you run out of disk space, preupgrade doesn't tell you that it couldn't finish downloading, and reports success and readiness to upgrade. 

Version-Release number of selected component (if applicable): preupgrade-1.1.4-1.fc12.noarch


How reproducible: everytime


Steps to Reproduce:
1. start out with too little disk space - I had 200MB of /boot which was the F12 standard iirc with two kernels installed. 
2. run preupgrade from a terminal
3. wait til download 'completes' see below traceback in terminal and window telling you that it's ready to begin upgrading. 

Traceback follows: 

[ke4qqq@nalleyx60 upgrade]$ preupgrade
/usr/lib/python2.6/site-packages/yum/__init__.py:215: UserWarning: Use .preconf instead of passing args to _getConfig
  warnings.warn('Use .preconf instead of passing args to _getConfig')
Loaded plugins: blacklist, refresh-packagekit, whiteout
preupgrade-main (mirrorlist) 
  url: http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=$basearch
  now: http://mirrors.fedoraproject.org/mirrorlist?repo=fedora-13&arch=i386
preupgrade (mirrorlist) 
  url: http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/development/13/$basearch/os
  now: http://mirrors.fedoraproject.org/mirrorlist?path=pub/fedora/linux/development/13/i386/os
unknown metadata being downloaded: repomdKI1_4stmp.xml
preupgrade-rpmfusion-free-rawhide (mirrorlist) 
  url: http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-rawhide&arch=i386
  now: http://mirrors.rpmfusion.org/mirrorlist?repo=free-fedora-rawhide&arch=i386
unknown metadata being downloaded: repomdanuxPAtmp.xml
preupgrade-rpmfusion-nonfree-rawhide (mirrorlist) 
  url: http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-rawhide&arch=i386
  now: http://mirrors.rpmfusion.org/mirrorlist?repo=nonfree-fedora-rawhide&arch=i386
unknown metadata being downloaded: repomdqumPbLtmp.xml
unknown metadata being downloaded: MEMORY
Fetched treeinfo from http://mirrordenver.fdcservers.net/fedora/development/13/i386/os//.treeinfo
treeinfo timestamp: Thu Mar 25 13:21:57 2010
unknown metadata being downloaded: MEMORY
checksum failure downloading initrd.img
unknown metadata being downloaded: MEMORY
Fetched treeinfo from http://mirrordenver.fdcservers.net/fedora/development/13/i386/os//.treeinfo
treeinfo timestamp: Fri Mar 26 13:23:58 2010
unknown metadata being downloaded: MEMORY
unknown metadata being downloaded: MEMORY
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1089, in _retrieve
    self.fo.write(buf)
IOError: [Errno 28] No space left on device
Traceback (most recent call last):
  File "/usr/share/preupgrade/preupgrade-gtk.py", line 240, in on_assistant_apply
    self._do_main()
  File "/usr/share/preupgrade/preupgrade-gtk.py", line 259, in _do_main
    self.main_preupgrade()
  File "/usr/share/preupgrade/preupgrade-gtk.py", line 473, in main_preupgrade
    stage2file = self.pu.retrieve_non_critical_files()
  File "/usr/lib/python2.6/site-packages/preupgrade/__init__.py", line 560, in retrieve_non_critical_files
    self._retrieve_file(self.mainimage, targetdir, reserve_space=extra_space)
  File "/usr/lib/python2.6/site-packages/preupgrade/__init__.py", line 468, in _retrieve_file
    self.instrepo._getFile(relative=fileinfo, local=local)
  File "/usr/lib/python2.6/site-packages/yum/yumRepo.py", line 810, in _getFile
    size=size
  File "/usr/lib/python2.6/site-packages/urlgrabber/mirror.py", line 408, in urlgrab
    return self._mirror_try(func, url, kw)
  File "/usr/lib/python2.6/site-packages/urlgrabber/mirror.py", line 394, in _mirror_try
    return func_ref( *(fullurl,), **kwargs )
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 982, in urlgrab
    return self._retry(opts, retryfunc, url, filename)
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 886, in _retry
    r = apply(func, (opts,) + args, {})
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 968, in retryfunc
    fo = PyCurlFileObject(url, filename, opts)
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1063, in __init__
    self._do_open()
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1342, in _do_open
    self._do_grab()
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1472, in _do_grab
    self._do_perform()
  File "/usr/lib/python2.6/site-packages/urlgrabber/grabber.py", line 1267, in _do_perform
    raise KeyboardInterrupt
KeyboardInterrupt

Comment 1 Luis Villa 2010-04-03 18:38:32 UTC
Really two bugs, I guess, each of which are probably dups (sorry, I can't mark dups in this bugzilla):

1) doesn't properly check for free space beforehand (possibly related to bug 543582?)
2) doesn't handle the no space on device error (bug 573451 and bug 576760)

Comment 2 Luis Villa 2010-04-03 18:49:16 UTC
Oops, got that first one wrong: that is bug 543482 not 543582.

Comment 3 Fedora Admin XMLRPC Client 2010-04-16 14:34:46 UTC
This package has changed ownership in the Fedora Package Database.  Reassigning to the new owner of this component.

Comment 4 Matias Kreder 2010-05-05 21:51:54 UTC
Apparently it's fixed updating pyton-urlgrabber

yum update --enablerepo=updates-testing python-urlgrabber

Comment 5 Scott Williams 2010-05-08 21:20:49 UTC
I can confirm this bug in my testing of Fedora 12 to 13 via preupgrade.  None of the updated packages are downloaded, /boot is full (checked with df), and user is prompted to reboot.

Comment 6 Scott Williams 2010-05-08 21:26:48 UTC
This is also problematic, since the user is no longer able to download the installer images during the upgrade process (as has been the case in the past).  This is no longer an option due to this bug.

Comment 7 Alex Lancaster 2010-05-08 22:22:56 UTC
(In reply to comment #5)
> I can confirm this bug in my testing of Fedora 12 to 13 via preupgrade.  None
> of the updated packages are downloaded, /boot is full (checked with df), and
> user is prompted to reboot.    

Did you get the version of python-urlgrabber in updates-testing as described in comment #4?

Comment 8 Alex Lancaster 2010-05-08 22:23:43 UTC
Also you may need preupgrade-1.1.5-1.fc12.noarch also in updates-testing.

Comment 9 Alex Lancaster 2010-05-08 22:25:10 UTC
(In reply to comment #8)
> Also you may need preupgrade-1.1.5-1.fc12.noarch also in updates-testing.    

Actually I think it's been pushed to stable.

Comment 10 Scott Williams 2010-05-08 22:41:26 UTC
I did not, but I will try another test run with the new python-urlgrabber and reply back.

Comment 11 Scott Williams 2010-05-08 23:07:44 UTC
This bug is fixed with the new python-urlgrabber.  

I intentionally left about 50MB of free space on /boot this time just to make sure it would fill up with downloading the images.  It prompted me to quit or continue.  Selecting continue, preupgrade begins downloading the packages instead of immediately telling the user to reboot.

Comment 12 Alex Lancaster 2010-05-09 01:41:07 UTC
(In reply to comment #11)
> This bug is fixed with the new python-urlgrabber.  

Excellent, you might want to add your karma +1 to the update:

http://admin.fedoraproject.org/updates/python-urlgrabber-3.9.1-4.1.fc12

Ideally that update would have had this bug attached, so it would close it automatically when it is pushed to stable.

> I intentionally left about 50MB of free space on /boot this time just to make
> sure it would fill up with downloading the images.  It prompted me to quit or
> continue.  Selecting continue, preupgrade begins downloading the packages
> instead of immediately telling the user to reboot.

Comment 13 Luis Villa 2010-05-09 03:19:32 UTC
I can confirm it fixes it here as well (but I don't have a fedora username so can't add karma to the package.)

Comment 14 Bertrand Juglas 2010-05-09 10:28:35 UTC
I've reported on bodhi it worked for me too so now it has 4 karma points instead of only 3.
This update should really be pushed to stable because without it the user is not warned about the /boot space problem and preupgrade fails too to plan to plan downloading stage2 only at the next reboot.

Comment 15 Bug Zapper 2010-11-03 18:30:49 UTC
This message is a reminder that Fedora 12 is nearing its end of life.
Approximately 30 (thirty) days from now Fedora will stop maintaining
and issuing updates for Fedora 12.  It is Fedora's policy to close all
bug reports from releases that are no longer maintained.  At that time
this bug will be closed as WONTFIX if it remains open with a Fedora 
'version' of '12'.

Package Maintainer: If you wish for this bug to remain open because you
plan to fix it in a currently maintained version, simply change the 'version' 
to a later Fedora version prior to Fedora 12's end of life.

Bug Reporter: Thank you for reporting this issue and we are sorry that 
we may not be able to fix it before Fedora 12 is end of life.  If you 
would still like to see this bug fixed and are able to reproduce it 
against a later version of Fedora please change the 'version' of this 
bug to the applicable version.  If you are unable to change the version, 
please add a comment here and someone will do it for you.

Although we aim to fix as many bugs as possible during every release's 
lifetime, sometimes those efforts are overtaken by events.  Often a 
more recent Fedora release includes newer upstream software that fixes 
bugs or makes them obsolete.

The process we are following is described here: 
http://fedoraproject.org/wiki/BugZappers/HouseKeeping

Comment 16 Bug Zapper 2010-12-03 16:42:21 UTC
Fedora 12 changed to end-of-life (EOL) status on 2010-12-02. Fedora 12 is 
no longer maintained, which means that it will not receive any further 
security or bug fix updates. As a result we are closing this bug.

If you can reproduce this bug against a currently maintained version of 
Fedora please feel free to reopen this bug against that version.

Thank you for reporting this bug and we are sorry it could not be fixed.