Bug 143339

Summary: up2date fails with IndexError
Product: [Fedora] Fedora Reporter: keith drewke <drewke>
Component: up2dateAssignee: Bret McMillan <bretm>
Status: CLOSED CANTFIX QA Contact: Fanny Augustin <fmoquete>
Severity: medium Docs Contact:
Priority: medium    
Version: 3CC: jos, mattdm, rayvd
Target Milestone: ---   
Target Release: ---   
Hardware: i386   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2006-10-29 15:11:57 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:

Description keith drewke 2004-12-19 16:47:07 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.4.3)
Gecko/20040924

Description of problem:
up2date produces the following error:

up2date -u
http://fedora.redhat.com/download/up2date-mirrors/fedora-core-3
using mirror: http://ftp.esat.net/pub/linux/fedora/3/i386/os/
http://fedora.redhat.com/download/up2date-mirrors/updates-released-fc3
using mirror: http://ftp.uni-koeln.de/fedora/updates/3/i386/
 
Fetching Obsoletes list for channel: fedora-core-3...
 
Fetching obsoletes list for
http://ftp.esat.net/pub/linux/fedora/3/i386/os/...
 
Fetching
http://ftp.esat.net/pub/linux/fedora/3/i386/os//headers/header.info...
########################################
Traceback (most recent call last):
  File "/usr/sbin/up2date", line 1248, in ?
    sys.exit(main() or 0)
  File "/usr/sbin/up2date", line 803, in main
    fullUpdate, dryRun=options.dry_run))
  File "/usr/sbin/up2date", line 1122, 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 101, in
__findPackagesToUpdate
    plist.run()
  File "/usr/share/rhn/up2date_client/packageList.py", line 128, in run
    progressCallback = self.progressCallback )
  File "/usr/share/rhn/up2date_client/rhnPackageInfo.py", line 404, in
obsoletesList
    progressCallback = progressCallback )
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 310, in doCall
    ret = apply(method, args, kwargs)
  File "/usr/share/rhn/up2date_client/repoDirector.py", line 27, in
getObsoletes
    return self.handlers[channel['type']].getObsoletes(channel,
msgCallback, progressCallback)
  File "/usr/share/rhn/up2date_client/rpmSource.py", line 249, in
getObsoletes
    msgCallback, progressCallback)
  File "/usr/share/rhn/up2date_client/repoBackends/yumRepo.py", line
318, in getObsoletes
    baseFileName = "%s-%s-%s.%s.hdr" % (pkg[0], pkg[1], pkg[2], pkg[4])
IndexError: list index out of range


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


How reproducible:
Always

Steps to Reproduce:
1. execute up2date -u
2.
3.
    

Actual Results:  up2date failed

Expected Results:  system to be updated.

Additional info:

System was RH 8 upgraded to FC3.

I have updated the selinux files to:

system-config-securitylevel-1.4.18-2.i386.rpm
system-config-securitylevel-tui-1.4.18-2.i386.rpm
libselinux-1.19.1-8.i386.rpm 

and upgraded libselinux to:

libselinux-1.19.3-1.i386.rpm

However, experienced the same results.

Comment 1 Ray Van Dolson 2005-02-25 05:02:52 UTC
Does running:

rm -f /var/spool/up2date/* 

fix the problem?

Comment 2 keith drewke 2005-02-26 13:51:44 UTC
Thanks.  Porblem corrected.  Can you explain why this error occured?

Comment 3 Jos Vos 2005-05-04 17:22:59 UTC
This problems also occurs on RHEL4 up2date 4.4.5(.6) using yum repositories (I
know yum is not supported for RHEL4, but it seems to be the same problem).  This
is how to reproduce it (on a fully updated system):

rm -f /var/spool/up2date/*
up2date --whatprovides=/bin/bash
up2date

And *now* update fails with the earlier mentioned stack trace.  If you do the
two up2date commands in the *reverse* order (also based on an empty spool dir),
so first the normal up2date and then the --whatprovides version, everything
works fine!

Comment 4 Jos Vos 2005-05-04 19:12:47 UTC
After two hours of debugging and tracing, I think I found the error: in the file
yumRepo.py, in function getObsoletes(), the line

  pkgList = rd.listPackages(channel, msgCallback, progressCallback)

should read:

  pkgList = rd.listPackages(channel, msgCallback, progressCallback)[0]

Will do some further checking, but my problem is gone.  In my case, the index
problem only occurred with an empty repository, but for non-empty repositories,
the pkgList was in case of a non-empty spooldir *not* the list of packages the
for-loop expects, so that behavior was wrong anyway!

Comment 5 Matthew Miller 2006-07-10 23:17:24 UTC
Fedora Core 3 is now maintained by the Fedora Legacy project for security
updates only. If this problem is a security issue, please reopen and
reassign to the Fedora Legacy product. If it is not a security issue and
hasn't been resolved in the current FC5 updates or in the FC6 test
release, reopen and change the version to match.

Thank you!


Comment 6 John Thacker 2006-10-29 15:11:57 UTC
Closing per lack of response to previous comment.  If this still occurs on FC3
or FC4 and is a security issue, please assign to Fedora Legacy and the
appropriate version.  The bug could also be filed against RHEL if it is relevant
there.

up2date has been replaced by pirut and pup in FC5 and FC6, the still fully
supported versions of Fedora Core, so this bug will not be fixed unless it is a
security issue.