Bug 103434

Summary: problem updating redhat-release
Product: Red Hat Enterprise Linux 3 Reporter: Michael Redinger <michael.redinger>
Component: up2dateAssignee: Adrian Likins <alikins>
Status: CLOSED CURRENTRELEASE QA Contact: Fanny Augustin <fmoquete>
Severity: medium Docs Contact:
Priority: medium    
Version: 3.0CC: barryn, dhennessy
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-08-24 18:58:26 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: 101028    
Attachments:
Description Flags
/var/log/up2date from one failed attempt (from command line) none

Description Michael Redinger 2003-08-30 11:05:28 UTC
I tried to upgrade from Taroon Beta 1 to Beta 2 using up2date. This worked fine
except for one package. I cannot update redhat-release, up2date always returns a
traceback.

I only select redhat-release for update. After downloading, the error given
below is shown.

/var/spool/up2date/ contains both the .hdr and the .rpm, so download seems to be
successful.

I also tried up2date -p - this does not solve the problem either.

The redhat-release information, as shown by up2date:

Package Name     Version       Old Version  Arch   Size     Channel
redhat-release   2.9.5AS-7     2.9.5AS-1    i386   165 kB   rhel-beta1-as-i386

(Why is the channel still "beta1"? RHN says that the base channel for this
system is beta2 ...)

Here is the traceback:

Traceback (most recent call last):
  File "/usr/sbin/up2date", line 1148, in ?
    sys.exit(main() or 0)
  File "/usr/sbin/up2date", line 747, in main
    fullUpdate, dryRun=options.dry_run))
  File "/usr/sbin/up2date", line 1014, in batchRun
    batch.run()
  File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 73, in run
    self.__getPackages()
  File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 139, in __getPackages
    up2date.getPackage(pkg, wrapperUtils.printPkg, wrapperUtils.printRetrieveHash)
  File "/usr/share/rhn/up2date_client/up2date.py", line 310, in getPackage
    progressCallback)
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 163, in doCall
    pkgName = "%s-%s-%s.%s" % (pkg[0], pkg[1], pkg[2], pkg[4])
  File "/usr/share/rhn/up2date_client/rhnChannel.py", line 50, in __getitem__
    return self.dict[item]
KeyError: 0

This is up2date-3.9.12-1

Comment 1 Bill Nottingham 2003-09-01 02:28:26 UTC
*** Bug 103456 has been marked as a duplicate of this bug. ***

Comment 2 Adrian Likins 2003-09-02 18:50:09 UTC
can you try this with up2date-3.9.21 from
http://people.redhat.com/alikins/up2date/severn/RPMS/

I belive this is fixed now (it seems to be
a variation of #103405).

Comment 3 Barry K. Nathan 2003-09-02 22:44:35 UTC
I think I'm seeing the same traceback, with anaconda-product, even with up2date
3.9.22. FWIW I've reconfigured up2date to download source RPMs as well. I can
reproduce this 100% of the time, even if I 'rm /var/spool/up2date/*'. This
traceback happens *only* on anaconda-product, and this is an i386 Everything
install of WS beta 2. I haven't tried testing with AS beta 2 yet.

[root@localhost root]# up2date anaconda-product
                                                                                
Fetching package list for channel: rhel3-beta1-ws-i386...
########################################
                                                                                
Fetching Obsoletes list for channel: rhel3-beta1-ws-i386...
                                                                                
Fetching rpm headers...
########################################
                                                                                
Testing package set / solving RPM inter-dependencies...
########################################
anaconda-product-2.9.5-3WS. ########################## Done.
Traceback (most recent call last):
  File "/usr/sbin/up2date", line 1150, in ?
    sys.exit(main() or 0)
  File "/usr/sbin/up2date", line 748, in main
    fullUpdate, dryRun=options.dry_run))
  File "/usr/sbin/up2date", line 1015, in batchRun
    batch.run()
  File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 73, in run
    self.__getPackages()
  File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 139, in __getPackages
    up2date.getPackage(pkg, wrapperUtils.printPkg, wrapperUtils.printRetrieveHash)
  File "/usr/share/rhn/up2date_client/up2date.py", line 327, in getPackage
    progressCallback)
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 160, in doCall
    pkgName = "%s-%s-%s.%s" % (pkg[0], pkg[1], pkg[2], pkg[4])
  File "/usr/share/rhn/up2date_client/rhnChannel.py", line 50, in __getitem__
    return self.dict[item]
KeyError: 0


Comment 4 Barry K. Nathan 2003-09-02 22:45:51 UTC
(By "happens only on anaconda-product" I mean no other package in the channel
appears to cause this traceback)

Comment 5 Barry K. Nathan 2003-09-03 05:34:16 UTC
I'm still getting my traceback with up2date 3.9.23-1 (the previous version I
tried was 3.9.22-2, just to clarify).

Comment 6 Adrian Likins 2003-09-05 01:54:22 UTC
Hmm, not having much luck reproducing this myself.

Seemed to work for me on an x86 and an iSeries box
subscribed to current taroon channels without any
problems.

I'll have a 3.9.24 up soon to test. (thats the
code I'm testing with)

Comment 7 Barry K. Nathan 2003-09-05 04:20:09 UTC
If I do it (try to update anaconda-product) graphically, I get a shorter traceback:

Traceback (most recent call last):
  File "/usr/share/rhn/up2date_client/gui.py", line 1861, in doRetrieval
    self.setRetrievalProgress)
  File "/usr/share/rhn/up2date_client/up2date.py", line 327, in getPackage
    progressCallback)
  File "/usr/share/rhn/up2date_client/rpcServer.py", line 160, in doCall
    pkgName = "%s-%s-%s.%s" % (pkg[0], pkg[1], pkg[2], pkg[4])
  File "/usr/share/rhn/up2date_client/rhnChannel.py", line 50, in __getitem__
    return self.dict[item]
KeyError: 0

This is with 3.9.24-1. 100% reproducible for me.

I did some more testing and it turns out that for my case at least,
"retrieveSource" ***MUST*** be set to 1, not 0, for the bug to happen. This is
an i386 (more specifically, i686) box.

If you still cannot reproduce the bug, let me know.

Comment 8 Barry K. Nathan 2003-09-05 04:21:02 UTC
retrieveSource being in /etc/sysconfig/rhn/up2date (ugh, forgot to mention that
in my last post, sorry)

Comment 9 Barry K. Nathan 2003-09-05 04:30:48 UTC
Created attachment 94223 [details]
/var/log/up2date from one failed attempt (from command line)

up2date --get-source anaconda-product
appears to be the fastest way to get this traceback to happen.

The log I've attached is what was saved after running:
up2date -vvvvvvvvv --get-source anaconda-product
(probably overkill on the v's, but whatever)
with debug set to 1 in /etc/sysconfig/rhn/up2date

It's a fresh log file (I deleted /var/log/up2date right before running
up2date), so there's no data from other up2date runs mixed into that file.

I hope this additional info sheds some more light on whatever's going on...

Comment 10 Adrian Likins 2003-09-09 19:15:59 UTC
I've sort of reproduced this now, but still kind of scratching my head.
As you mention, only the anaconda-product package seems to cause this.

Looks like it's somehow more prone to having the headed get corrupted,
but I'm not sure why at the moment. still investigating...

Comment 11 Adrian Likins 2003-09-15 21:15:22 UTC
this might be just the package missing on the server, 
as per #103771

when 3.9.28 lands (today hopefully, try it out with
that and see if still breaks it)

Comment 12 Barry K. Nathan 2003-09-17 04:07:49 UTC
It will be 1-3 more days before I can test 3.9.28, due to both the latest SSH
hole (need to patch all of my production systems) and to a family emergency.

Comment 13 Barry K. Nathan 2003-09-19 04:42:54 UTC
Ok, I've test 3.9.28. Here's what happens now:

[root@localhost root]# up2date --get-source anaconda-product
 
Fetching all package list for channel: rhel3-beta1-ws-i386...
########################################
 
Fetching package list for channel: rhel3-beta1-ws-i386...
########################################
File Not Found:
File Not Found: anaconda-product-2.9.5-3WS.src.rpm
 
Error Message:
    Invalid RPM package anaconda-product-2.9.5-3WS.src.rpm requested
Error Class Code: 17
Error Class Info: File not found.
Explanation:
     An error has occurred while processing your request. If this problem
     persists please enter a bug report at bugzilla.redhat.com.
     If you choose to submit the bug report, please be sure to include
     details of what you were trying to do when this error occurred and
     details on how to reproduce this problem.


This is FAR better than previous up2date 3.9.xx releases. I'm guessing there's
no longer a bug in up2date itself?

Comment 14 Barry K. Nathan 2004-07-14 15:06:56 UTC
AFAICT (from a user's point of view) this bug no longer exists in RHEL
3. Unless I'm missing something, this bug should be closed.