Bug 9473 - Upgrade from 5.1 to 6.1 fails due to anaconda crashing
Summary: Upgrade from 5.1 to 6.1 fails due to anaconda crashing
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Red Hat Linux
Classification: Retired
Component: anaconda
Version: 6.1
Hardware: i386
OS: Linux
medium
medium
Target Milestone: ---
Assignee: Matt Wilson
QA Contact:
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2000-02-15 21:36 UTC by Jason Haar
Modified: 2008-05-01 15:37 UTC (History)
1 user (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
Environment:
Last Closed: 2000-02-16 14:35:06 UTC
Embargoed:


Attachments (Terms of Use)

Description Jason Haar 2000-02-15 21:36:44 UTC
On one of our 5.1 systems, /tmp is a symbolic link to /var/tmp. During the
upgrade to 6.1, anaconda tries to write what packages are to be updated to
/???/sys???/tmp - which is a link to /var/tmp - which of course doesn't
exist during an install.

When I deleted the symbolic link and made a new /tmp dir on the system, the
upgrade went on to completion.

I'd say anaconda should check whether /tmp is a link and decide what to do
in that case - perhaps make a "/upgrade.log" file instead?

Comment 1 Jay Turner 2000-02-16 14:35:59 UTC
The "/mnt/sysimage" that you saw is where the installer mounts the root
filesystem for both installation and upgrade.  Anaconda is only able to deal
with relative links on a system, so I am betting that you have an absolute link
from /tmp to /var/tmp (that is, 'ls -la /tmp' would show '/tmp -> /var/tmp')
This will indeed cause the installer to do bad things, as we are working to
determine the best solution for when the installer finds an absolute link.  Just
change the /tmp link to be relative and things should be fine.  So, executing
'ln -sf ./var/tmp /tmp' from / should solve the problem.  Reopen this bug if you
are still having problems.

Comment 2 Riley H Williams 2000-02-16 16:44:59 UTC
One possible solution would be to do the equivalent of the following bash
script..

 Q> #!/bin/bash
 Q> cd /mnt/sysimage
 Q> declare -i N=0
 Q> TGT=tmp
 Q> while [ $N -lt 32 -a -L "$TGT" ]; do
 Q>     N=$N+1
 Q>     TGT=`ls -dl "$TGT" | rev | cut -d ' ' -f 1 | rev`
 Q> done
 Q> if [ -l "$TGT" ]; then
 Q>     echo 'ERROR 1: Symlinks nested too deeply (32 levels), aborting.'
 Q>     exit 1
 Q> fi
 Q> ln -s /mnt/sysimage/$TGT /tmp
 Q> exit 0

...as this sets /tmp as a symlink to wherever /mnt/sysimage/tmp would end up
pointing to. After that, just use /tmp to refer to it and it will go to wherever
the said directory pointed to.

A similar procedure could be used with other absolute links.

Comment 3 Riley H Williams 2000-02-16 16:45:59 UTC
Oooooopppsss...

In the above script, the nineth line should read...

 Q> if [ -L "$TGT" ]; then

...sorry about that.


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