Bug 7433

Summary: Pre-install dies with "unsubscriptable object" error, in comps.py?
Product: [Retired] Red Hat Linux Reporter: pixel23
Component: installerAssignee: Jay Turner <jturner>
Severity: high Docs Contact:
Priority: medium    
Version: 6.1CC: rhw, srevivo
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 1999-11-30 13:04:05 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:

Description pixel23 1999-11-30 04:04:31 UTC
First a little info on my set-up...Dell Latitude LX4100T 486DX-100, 6.4G
HD w/ EZ-Drive BIOS, 24 meg RAM, PCMCIA modem card, no CD, Win95 on hd1,
MSDOS on hd1 and hd5...the HD is partitioned as follows:

hd1   2045M    DOS 16-bit
hd5   2045M    DOS 16-bit
hd6   2000M    linux native
hd7   70M      linus swap

I've DL'd the entire RedHat tree from ftp.redhat.com (current/i386), and
stored it on my C: drive (hd1).  I start the install fine with the
standard boot disk...the loader seems to recognize the system OK, with no
errors that I've seen.  I can futz with the partition, assign a mount /
and choose a GNOME workstation, but when it goes to a blue screen with "X
configurator" in the upper right (this screen is called "reading package
information" in the expert install), I get this fatal error after a minute
or two:

exception occured

traceback (innermost last):
File "/usr/bin/anaconda.real", line 225, in ?
intf.run (todo, test = test)
"/tmp/lib/python1.5/site-packages/text.py", line 1000, in run
rc = apply (step [1] () , step [2])
"tmp/lib/python1.5/site-packages/text.py", line 468, in _call_
todo.getCompsList ()
"/tmp/lib/python1.5/site-packages/text.py", line 942, in getCompsList
self.getHeaderList ()
"/tmp/lib/python1.5/site-packages/todo.py", line 930, in getHeaderList
self.method.readHeaders ()
"/tmp/lib/python1.5/site-packages/harddrive.py", line 46, in readHeaders
return HeaderList (hl)
"/tmp/lib/python1.5/site-packages/comps.py", line 50, in _init_
name = h[rpm.RPMTAG_NAME]
TypeError: unsubscriptable object

My first thought was that the installer went looking for the packages
listed in comps.py and didn't find them, thus the error...so I checked
every folder in my local RedHat directory against those in
current/i386/RedHat on redhat.com, and everything was there and had
downloaded completely (byte sizes were identical)...the
supplemental "misc" folder is also complete, but not stored under the
RedHat tree...

any idea what's going on here?  I had expected a somewhat bumpy install on
a laptop, but I figured I'd at least be able to get past the pre-install :)



Comment 1 Jay Turner 1999-11-30 13:04:59 UTC
The problem, more than likely, is that you have a file in the /RedHat/RPMS
directory which is not an *.rpm file.  Do the following, run 'ls | grep -v rpm'
in the /RedHat/RPMS directory on your machine and then just delete the files
which come back in the output.  You will probably find that you have gotten a
file called TRANS.TBL in the directory and more than likely it came from
directly copying the contents of the cd to a directory and installing from that

We have put together a fix for this so that the installer just ignores anything
that it does not understand, but just deleteing the offending file is probably a
heck of a lot easier to do than deal with an updates disk and all.

Reopen this bug if this solution does not work for you.

Comment 2 Riley H Williams 1999-12-04 15:37:59 UTC
An alternative explanation is that there's a file in there that is not a valid
RPM although it claims to be one. The simplest way to find suchlike files is to
run the following bash script in the said directory:

 Q> #!/bin/bash
 Q> $TMPFILE=/tmp/$0-$RANDOM
 Q> for FILE in * ; do
 Q>     if [ `basename $FILE .rpm` = $FILE ]; then
 Q>         echo 'WRONG EXTENSION:' $FILE
 Q>     else
 Q>         rpm -qp $FILE > /dev/null 2> $TMPFILE
 Q>         if [ -n "`cat $TMPFILE`" ]; then
 Q>             echo 'INVALID:        ' $FILE
 Q>             cat $TMPFILE | sed 's/^/                /'
 Q>         fi
 Q>     fi
 Q> done
 Q> rm -f $TMPFILE

The files listed are the ones therein that might cause problems.

Comment 3 Riley H Williams 1999-12-04 15:38:59 UTC
Sorry for the typo - line 2 of the script should not have the $ char in it !!!

Comment 4 Riley H Williams 1999-12-04 15:39:59 UTC
To clarify - line 2 should read...