Proposing as a F13Blocker. Since running low on /boot disk space is common, this issue came up multiple times during the test day. I'd like to propose moving the kickstart generation into it's own try/except block so that it can still be written to disk.

note that, as usual for preupgrade blockers, this blocks F13 release but not composes; as long as we can fix it before the actual planned release date, it's okay.
--
Fedora Bugzappers volunteer triage team
https://fedoraproject.org/wiki/BugZappers

(In reply to comment #1)
> Proposing as a F13Blocker. Since running low on /boot disk space is common,
> this issue came up multiple times during the test day. I'd like to propose
> moving the kickstart generation into it's own try/except block so that it can
> still be written to disk.
You mentioned a patch on the test day, two questions:
1. could you attach it please
2. is it tested?
Thanks.

Created attachment 411323[details]
preupgrade.patch - move kickstart generation before install.img download
I'm testing the attached patch as we speak. This patch only fixes preupgrade, preupgrade-cli would need a similar change I gather.

(In reply to comment #3)
> (In reply to comment #1)
> > Proposing as a F13Blocker. Since running low on /boot disk space is common,
> > this issue came up multiple times during the test day. I'd like to propose
> > moving the kickstart generation into it's own try/except block so that it can
> > still be written to disk.
>
> You mentioned a patch on the test day, two questions:
>
> 1. could you attach it please
See attachment#411323[details]> 2. is it tested?
Yes, I can confirm that this patch creates a kickstart file and allows for clean preupgrade in conditions where there is enough '/boot' space for vmlinuz+initrd.img, but *not* enough for install.img.

I worked with jlaska today on this issue and ran some tests on a fresh install of Fedora 12 x86. I did an install selecting all of the defaults except in the area of partitioning. I changed the /boot partition from the default 200mb to 1024mb.
Once the system was fully updated to the latest F12 patch level I installed both http://people.freedesktop.org/~hughsient/fedora/13/i386/preupgrade-1.1.6-0.10.fc13.noarch.rpm and http://kojipkgs.fedoraproject.org/packages/python-urlgrabber/3.9.1/4.1.fc12/noarch/python-urlgrabber-3.9.1-4.1.fc12.noarch.rpm
After these two packages were updated I ran preupgrade as root. The process was very smooth after that. Following is the output that preupgrade generated:
[root@oneil ~]# preupgrade
Loaded plugins: blacklist, whiteout
No plugin match for: rpm-warm-cache
No plugin match for: remove-with-leaves
No plugin match for: auto-update-debuginfo
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: repomdG9KuvBtmp.xml
unknown metadata being downloaded: MEMORY
Fetched treeinfo from http://mirrordenver.fdcservers.net/fedora/development/13/i386/os//.treeinfo
treeinfo timestamp: Thu May 6 10:16:56 2010
unknown metadata being downloaded: MEMORY
unknown metadata being downloaded: MEMORY
Downloading 760.1MB
Available disk space for /var/cache/yum/preupgrade: 61.5GB
Upgrade requires 500.0MB
Available disk space for /usr: 60.8GB
Kernel requires 26.0MB
Available disk space for /boot: 716.8MB
unknown metadata being downloaded: repomdVrUGr2tmp.xml
Generating metadata for preupgrade repo
DEBUG /sbin/grubby --title="Upgrade to Fedora 13 (Branch)" --remove-kernel="/boot/upgrade/vmlinuz" --add-kernel="/boot/upgrade/vmlinuz" --initrd="/boot/upgrade/initrd.img" --args="preupgrade repo= hd::/var/cache/yum/preupgrade ks= hd:UUID=54bb5aef-5b7a-4af8-b4c2-581ac7bc85cb:/upgrade/ks.cfg stage2= hd:UUID=54bb5aef-5b7a-4af8-b4c2-581ac7bc85cb:/upgrade/install.img"
jlaska asked what the grub.conf looked like once it was complete. Following is the /boot/grub/grub.conf that was generated:
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE: You have a /boot partition. This means that
# all kernel and initrd paths are relative to /boot/, eg.
# root (hd0,0)
# kernel /vmlinuz-version ro root=/dev/mapper/vg_oneil-LogVol00
# initrd /initrd-[generic-]version.img
#boot=/dev/sda
default=1
timeout=0
splashimage=(hd0,0)/grub/splash.xpm.gz
hiddenmenu
title Upgrade to Fedora 13 (Branch)
kernel /upgrade/vmlinuz preupgrade repo= hd::/var/cache/yum/preupgrade ks= hd:UUID=54bb5aef-5b7a-4af8-b4c2-581ac7bc85cb:/upgrade/ks.cfg stage2= hd:UUID=54bb5aef-5b7a-4af8-b4c2-581ac7bc85cb:/upgrade/install.img
initrd /upgrade/initrd.img
title Fedora (2.6.32.11-99.fc12.i686.PAE)
root (hd0,0)
kernel /vmlinuz-2.6.32.11-99.fc12.i686.PAE ro root=/dev/mapper/vg_oneil-LogVol00 LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.32.11-99.fc12.i686.PAE.img
title Fedora (2.6.31.5-127.fc12.i686.PAE)
root (hd0,0)
kernel /vmlinuz-2.6.31.5-127.fc12.i686.PAE ro root=/dev/mapper/vg_oneil-LogVol00 LANG=en_US.UTF-8 SYSFONT=latarcyrheb-sun16 KEYBOARDTYPE=pc KEYTABLE=us rhgb quiet
initrd /initramfs-2.6.31.5-127.fc12.i686.PAE.img
The thing that seemed odd to jlaska and I was the spaces in the kernel line. For instance repo= hd::
Following his advice I edited the grub.conf file to add
title Upgrade to Fedora 13 (Branch) -- MODIFIED
kernel /upgrade/vmlinuz preupgrade repo=hd::/var/cache/yum/preupgrade ks=hd:UUID=54bb5aef-5b7a-4af8-b4c2-581ac7bc85cb:/upgrade/ks.cfg stage2=hd:UUID=54bb5aef-5b7a-4af8-b4c2-581ac7bc85cb:/upgrade/install.img
initrd /upgrade/initrd.img
after the first F13 kernel line.
After this I rebooted the system and it booted to the F13 upgrade screens and it progressed as expected.

Ok, I updated to python-urlgrabber-3.9.1-4.1.fc12 and that solved that traceback. Kickstart is now generated when not enough space for install.img, good. But there are still some problems:
1. preupgrade does not require python-urlgrabber-3.9.1-4.1.fc12. It must require that, because you can't suppose the user has all packages fully updated.
2. Upgrade item in GRUB is not set as default. I have seen this for several times, it seems to appear randomly (after some preupgrade runs it is default, after some it isn't).
3. There are superfluous spaces in GRUB item, exactly as Eric Lake reported. That makes the whole process fail ("kickstart not found").

(In reply to comment #12)
> 2. Upgrade item in GRUB is not set as default. I have seen this for several
> times, it seems to appear randomly (after some preupgrade runs it is default,
> after some it isn't).
> 3. There are superfluous spaces in GRUB item, exactly as Eric Lake reported.
> That makes the whole process fail ("kickstart not found").
Different bug reports please, please don't piggy back new things onto this ticket. Thanks.

I'm not piggybacking, those problems are directly connected to this update (except for #2).
Tested preupgrade-1.1.6-1.fc12, from comment #12 - problem 1 is solved, problem 2 has not appeared, but problem 3 is still present and that is a show-stopper.

preupgrade-1.1.6-1.fc12 has been pushed to the Fedora 12 testing repository. If problems still persist, please make note of it in this bug report.
If you want to test the update, you can install it with
su -c 'yum --enablerepo=updates-testing update preupgrade'. You can provide feedback for this update here: http://admin.fedoraproject.org/updates/preupgrade-1.1.6-1.fc12

(In reply to comment #12)
> 3. There are superfluous spaces in GRUB item, exactly as Eric Lake reported.
> That makes the whole process fail ("kickstart not found").
I also ran into this issue with preupgrade-1.1.6-1.fc12. Removing the spaces in /etc/grup.conf by hand seems to have allowed the upgrade to proceed.

I just want to add that I just had problems upgrading from F12 to F13 because of a *missing* space in grub.conf. I have a small /boot, and thus a http link was inserted as the stage2 parameter, but there was no space in front of the "stage2=..." keyword. Therefore, I got a message that the kickstart file could not be found. Adding a space before stage2 in grub.conf solved the problem.
(The system is upgrading now, so I cannot report the version etc, sorry)