Bug 9473 - Upgrade from 5.1 to 6.1 fails due to anaconda crashing
Upgrade from 5.1 to 6.1 fails due to anaconda crashing
Product: Red Hat Linux
Classification: Retired
Component: anaconda (Show other bugs)
i386 Linux
medium Severity medium
: ---
: ---
Assigned To: Matt Wilson
Depends On:
  Show dependency treegraph
Reported: 2000-02-15 16:36 EST by Jason Haar
Modified: 2008-05-01 11:37 EDT (History)
1 user (show)

See Also:
Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
Last Closed: 2000-02-16 09:35:06 EST
Type: ---
Regression: ---
Mount Type: ---
Documentation: ---
Verified Versions:
Category: ---
oVirt Team: ---
RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---

Attachments (Terms of Use)

  None (edit)
Description Jason Haar 2000-02-15 16:36:44 EST
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 09:35:59 EST
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 11:44:59 EST
One possible solution would be to do the equivalent of the following bash

 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 11:45:59 EST

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.