Bug 119108

Summary: installing packages from a directory repository fails with 'list index out of range'
Product: Red Hat Enterprise Linux 3 Reporter: Mike MacCana <mmaccana>
Component: up2dateAssignee: Adrian Likins <alikins>
Status: CLOSED CURRENTRELEASE QA Contact: Fanny Augustin <fmoquete>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0   
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2004-07-05 23:58:59 UTC Type: ---
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 119505    

Description Mike MacCana 2004-03-25 04:58:33 UTC
Description of problem:
When attempting to use a directory repository (configured in sources
with the line 'dir mikes-custom-packages /var/ftp/pub/extras') I get
the following message.

up2date -i dnstracer
 
Fetching Obsoletes list for channel: rhel-i386-es-3...
 
Fetching Obsoletes list for channel: dag-dag...
 
Fetching Obsoletes list for channel: mikes-custom-packages...
 
Fetching rpm headers...
Traceback (most recent call last):
  File "/usr/sbin/up2date", line 1267, in ?
    sys.exit(main() or 0)
  File "/usr/sbin/up2date", line 797, in main
    fullUpdate, dryRun=options.dry_run))
  File "/usr/sbin/up2date", line 1141, in batchRun
    batch.run()
  File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 62, in run
    self.__findPackagesToUpdate()
  File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 108, in
__findPackagesToUpdate
    self.availableUpdates = plist.getPackagesToInstall()
  File "/usr/share/rhn/up2date_client/packageList.py", line 580, in
getPackagesToInstall
    result = self.__skipPackages(result)
  File "/usr/share/rhn/up2date_client/packageList.py", line 609, in
__skipPackages
    packageList = self.__skipFiles(packageList)
  File "/usr/share/rhn/up2date_client/packageList.py", line 630, in
__skipFiles
    ignoreMsgCallback = self.ignoreMsgCallback)
  File "/usr/share/rhn/up2date_client/packageList.py", line 669, in
buildHeaderList
    hdr = headerList[pkg]
  File "/usr/share/rhn/up2date_client/headers.py", line 37, in __getitem__
    self.__retrievePackage(item)
  File "/usr/share/rhn/up2date_client/headers.py", line 42, in
__retrievePackage
    hdr, sourceType = rpcServer.doCall(self.repos.getHeader, item)
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 112, in doCall
    ret = apply(method, args, kwargs)
  File "/usr/share/rhn/up2date_client/repoDirector.py", line 31, in
getHeader
    return self.handlers[channel['type']].getHeader(pkg, msgCallback,
progressCallback)
  File "/usr/share/rhn/up2date_client/rpmSource.py", line 210, in
getHeader
    header = source.getHeader(pkg, progressCallback = progressCallback)
  File "/usr/share/rhn/up2date_client/repoBackends/dirRepo.py", line
246, in getHeader
    filename = pkg[7]
IndexError: list index out of range

Here's a listing of the directory:

ls -la /var/ftp/pub/extras/
total 820
drwxr-xr-x    2 root     root         4096 Jan 14 14:46 .
drwxr-xr-x   16 root     root         4096 Mar 23 15:23 ..
-rw-r--r--    1 root     root        18226 Jan 14 14:46
dnstracer-1.7-1mm.i386.rpm


Version-Release number of selected component (if applicable):
up2date-4.3.11-2.1.1

How reproducible:
Always

Steps to Reproduce:
1.Attempt to install a package off a directory type repository
  
Actual results:
Python errors above.

Expected results:
The package would install properly.

Additional info:

Comment 1 Adrian Likins 2004-03-30 23:19:03 UTC
I'll take a look at this for the next update set. 

Comment 2 Adrian Likins 2004-04-06 19:50:50 UTC
should be fixed in 4.2.9 in the next update

Comment 3 Mike MacCana 2004-07-05 23:58:59 UTC
Works now. Thanks very much.