Bug 90801 - kickstart harddrive upgrades from files laid out like a CD fail
kickstart harddrive upgrades from files laid out like a CD fail
Status: CLOSED WONTFIX
Product: Red Hat Linux
Classification: Retired
Component: anaconda (Show other bugs)
8.0
All Linux
medium Severity medium
: ---
: ---
Assigned To: Michael Fulbright
Mike McLean
:
Depends On:
Blocks:
  Show dependency treegraph
 
Reported: 2003-05-13 19:09 EDT by Seth D. Alford
Modified: 2007-04-18 12:53 EDT (History)
0 users

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Environment:
Last Closed: 2003-05-21 17:40:06 EDT
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
CRM:
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---


Attachments (Terms of Use)

  None (edit)
Description Seth D. Alford 2003-05-13 19:09:49 EDT
Description of problem:

In anaconda, in harddrive.py, line 82 should read, I think:

        hl = HeaderListFromFile(self.tree + self.path + "/RedHat/base/hdlist")

so that anaconda can find hdlist in the directory within the
partition in which the files from the CD have been installed.

Similarly, line 88 should read, I think:

        hdlist.mergeFullHeaders(self.tree + self.path + "/RedHat/base/hdlist2")


Version-Release number of selected component (if applicable): anaconda-8.0-4


How reproducible:
Steps to Reproduce:
1.  Copy the installation CD's to a directory, NOT as ISO images, but rather
as directory trees, using something like:

mkdir /cdimage
mount /dev/cd0 /mnt/cdrom
(cd /mnt/cdrom; tar cf - . ) | (cd /cdimage; tar xf -)

2.  Setup kickstart to upgrade from the /cdimage directory. using
the harddrive directive.  Make sure /cdimage is NOT its own partition,
or you will not see the bug.
3.  Try upgrading with kickstart.
  
Actual results: python traceback


Expected results: anaconda should have run the upgrade


Additional info: although it should not matter, I started with a RH 7.1
system.  It doesn't matter, I think, because if anaconda can't read hdlist,
then anaconda won't be able to do the install.
Comment 1 Michael Fulbright 2003-05-14 12:37:23 EDT
I think you are hitting an existing issue where if you try to do a harddrive
upgrade from a partition which is in your /etc/fstab it will fail.  If you copy
the files to a partition not in /etc/fstab does it succeed?
Comment 2 Seth D. Alford 2003-05-14 13:09:13 EDT
I suspect that if I copy the files to the top directory of 
an existing, non-fstab, partition, the upgrade will succeed.
I suspect that if I copy the files to the top directory an existing
partition that is in fstab, the upgrade will also succeed.  If I get a chance,
I will verify that and let you know.

I think that the failure is coming because I'm copying the files to
a non-top directory of the partition.  So, say
I have a /var partition mounted on /dev/sda12.  I copy the CD files to
/var/upgrade/.  I copy files rather than dealing with iso images because
I want to modify a couple of the files, automatically, without user
intervention, before actually doing the upgrade.

When I try to run the upgrade, anaconda should look in
/mnt/sysimage/var/upgrade/RedHat/base/hdlist, but instead looks in
/mnt/sysimage/var//RedHat/base/hdlist.

So that you can see for sure what's happening, I will try to copy the
actual python traceback into this bug report.  --Seth
Comment 3 Michael Fulbright 2003-05-20 14:38:10 EDT
The problem probably will always occur if the files are on a filesystem in
/etc/fstab because of the following. We mount the partition containing the
install source in the 'loader' (the text-based bootstrap before anaconda runs).
 Then later when the upgrade starts we try to mount everything in /etc/fstab on
the system to be installed, and run into problems trying to remount the
partition, which was mounted ro in the loader.

Its a mess to clean up internally, and we honestly dont see many people using HD
based upgrades so it hasnt been a priority to address to date.
Comment 4 Seth D. Alford 2003-05-21 17:40:06 EDT
Here's the python traceback:

Traceback (most recent call last):
  File "/usr/bin/anaconda", line 694, in ?
    intf.run(id, dispatch, configFileData)
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/text.py", line 400, in run
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/dispatch.py", line 251, in
currentStep
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/dispatch.py", line 150, in gotoNext
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/dispatch.py", line 215, in moveStep
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/packages.py", line 126, in
readPackages
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/harddrive.py", line 82, in
readHeaders
  File "/var/tmp/anaconda-8.0//usr/lib/anaconda/comps.py", line 223, in
__init__rpm404.error: (2, 'No such file or directory')

Local variables in innermost frame:
path: /mnt/sysimage/var//RedHat/base/hdlist
self: <comps.HeaderListFromFile instance at 0x838fec4>
noscore: 0
compatPackages: None


----end of python traceback----

I think that the path variable should be 
/mnt/sysimage/var/upgrade/RedHat/base/hdlist
in this case, since the files are in /var/upgrade.
Fixing this one problem may be easy, but as you said,
fixing all of the problems associated with this issue
may be a mess.  And, as you suggested, putting the
files into the root directory of a partition which is not
listed in fstab does work.

I also did discover that I could use ISO images after all,
so I have just created an /upgrade directory with an
ISO image.  That works just fine.

I'd rather have RedHat working on fixing other things, so I'm
going to try to change the resolution to WONTFIX.  Thanks for
looking into the problem.

--Seth

Note You need to log in before you can comment on or make changes to this bug.