Note: This is a beta release of Red Hat Bugzilla 5.0. The data contained within is a snapshot of the live data so any changes you make will not be reflected in the production Bugzilla. Also email is disabled so feel free to test any aspect of the site that you want. File any problems you find or give feedback here.

Bug 235140

Summary: If newer packages exist on machine than on RHN and up2date is used to install a package that needs an older version of one of these newer packages, traceback produced
Product: Red Hat Enterprise Linux 4 Reporter: Steve Salevan <ssalevan>
Component: up2dateAssignee: Pradeep Kilambi <pkilambi>
Status: CLOSED DUPLICATE QA Contact: Corey Welton <cwelton>
Severity: high Docs Contact:
Priority: medium    
Version: 4.0CC: dgregor, rhn-bugs
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: 2007-05-22 15:04:54 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 Steve Salevan 2007-04-03 22:18:04 UTC
From Bugzilla Helper:
User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.9) Gecko/20061215 Red Hat/1.5.0.9-0.1.el4 Firefox/1.5.0.9

Description of problem:
I've installed the latest version of RHEL 4 U5 available on an ia64 box, and, having discovered that I needed gcc to compile a C program for a test case, I performed an 'up2date gcc' on the machine.  At this time, I had a newer version of the cpp package (3.4.6-8) than the gcc present on WebQA (3.4.6-7) needed.  In this situation, we'd expect to see the following error:

There was a package dependency problem. The message was:

Unresolvable chain of dependencies:
gcc-3.4.6-7                              requires cpp = 3.4.6-7

However, I received the following output:

[root@test01-ia64 ~]# up2date gcc

Fetching Obsoletes list for channel: rhel-ia64-as-4...

Fetching Obsoletes list for channel: rhel-ia64-as-4-beta...

Fetching rpm headers...
########################################

Name                                    Version        Rel
----------------------------------------------------------
gcc                                     3.4.6          7                 ia64


Testing package set / solving RPM inter-dependencies...
warning: package gcc = 3.4.6-7 was already added, replacing with gcc <= 3.4.6-7
warning: package gcc = 3.4.6-7 was already added, replacing with gcc <= 3.4.6-7
warning: package gcc = 3.4.6-7 was already added, replacing with gcc <= 3.4.6-7
An error has occurred:
exceptions.UnboundLocalError
See /var/log/up2date for more information

After examining the log, the following traceback was present:

[Tue Apr  3 22:38:32 2007] up2date   File "/usr/sbin/up2date", line 1272, in ?
    sys.exit(main() or 0)
   File "/usr/sbin/up2date", line 791, in main
    fullUpdate, dryRun=options.dry_run))
   File "/usr/sbin/up2date", line 1127, in batchRun
    batch.run()
   File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 82, in run
    self.__dryRun()
   File "/usr/share/rhn/up2date_client/up2dateBatch.py", line 204, in __dryRun
    self.percentCallback)
   File "/usr/share/rhn/up2date_client/up2date.py", line 384, in dryRun
    ret = depsolve.solvedep()
   File "/usr/share/rhn/up2date_client/depSolver.py", line 752, in solvedep
    ret = self.process_deps(deps)
   File "/usr/share/rhn/up2date_client/depSolver.py", line 646, in process_deps
    changed = self.__dependencies(dependencies)
   File "/usr/share/rhn/up2date_client/depSolver.py", line 409, in __dependencies
    if iPkg[4] == aPkg[4] or iPkg[4] == "noarch" or aPkg[4] == "noarch":

If an older version of up2date is used (such as 4.4.3), we see the expected output.  Since this error was reproduced on an x86_64 box as well, it looks like we might have a regression here,

Version-Release number of selected component (if applicable):
up2date-4.5.5-2.el4

How reproducible:
Always


Steps to Reproduce:
1. Find a package on RHN that has a newer version available outside of RHN, such as GCC and install it or install a really fresh build of RHEL containing a lot of newer-than-RHN packages
2. Install a package that needs an older version of one of these newer-than-RHN packages via up2date
3. Observe output

Actual Results:
Traceback as above

Expected Results:
Correct output as above

Additional info:

Comment 1 Mike McCune 2007-04-03 22:28:46 UTC
prad, this looks like dep solver related.  could you take a look?

Comment 2 Pradeep Kilambi 2007-04-05 14:47:28 UTC
its too late for 4.5,proposing for rhel-4.6

Comment 5 RHEL Product and Program Management 2007-05-09 05:02:52 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux maintenance release.  Product Management has requested
further review of this request by Red Hat Engineering, for potential
inclusion in a Red Hat Enterprise Linux Update release for currently deployed
products.  This request is not yet committed for inclusion in an Update
release.

Comment 6 Pradeep Kilambi 2007-05-16 16:30:24 UTC
*** Bug 240335 has been marked as a duplicate of this bug. ***

Comment 7 Todd Sanders 2007-05-22 15:04:54 UTC

*** This bug has been marked as a duplicate of 235748 ***

Comment 8 Brandon Perkins 2007-05-24 17:24:57 UTC
DUPLICATE of bug 235748