Bug 590339

Summary: Weird edge case depsolving bug, requires manual update with multilib.
Product: Red Hat Enterprise Linux 6 Reporter: James Antill <james.antill>
Component: yumAssignee: James Antill <james.antill>
Status: CLOSED CURRENTRELEASE QA Contact: Karel Srot <ksrot>
Severity: medium Docs Contact:
Priority: low    
Version: 6.0CC: jhutar, ksrot
Target Milestone: rc   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: yum-3.2.27-8.el6 Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2010-11-15 14:52:55 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 James Antill 2010-05-08 22:41:59 UTC
Description of problem:
 Found a weird edge case bug upstream, which is pretty hard to trigger. It's likely in RHEL-5 (although it requires that only one arch of a multilib. library is installed, and we changed multilib_policy from "all" to "best" in RHEL-6).
 On the upside the fix is one line, and really obvious.

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

Comment 1 RHEL Program Management 2010-05-08 23:26:46 UTC
This request was evaluated by Red Hat Product Management for inclusion in a Red
Hat Enterprise Linux major release.  Product Management has requested further
review of this request by Red Hat Engineering, for potential inclusion in a Red
Hat Enterprise Linux Major release.  This request is not yet committed for
inclusion.

Comment 3 James Antill 2010-05-14 14:22:48 UTC
There is an upstream test case:

commit 37899b9c170ce1a97cd29be6a0a0322f608c4fd6
Author: James Antill <james>
Date:   Sat May 8 17:49:34 2010 -0400

    Add a couple of depsolve tests, from a bug I found updating F-13.

diff --git a/test/simpleupdatetests.py b/test/simpleupdatetests.py
index f02cc75..8232675 100644
--- a/test/simpleupdatetests.py
+++ b/test/simpleupdatetests.py
@@ -764,3 +764,43 @@ class SimpleUpdateTests(OperationsTests):
                                      [pa1, pa2, pa4, pa3])
         self.assert_(res=='ok', msg)
         self.assertResult((pa1, pa3))
+
+    def testUpdateRLEvince1(self):
+        pi1 = FakePackage('evince', '1', '1', '0', 'x86_64')
+        pi1.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
+        pi2 = FakePackage('evince-libs', '1', '1', '0', 'x86_64')
+        pi3 = FakePackage('evince-djvu', '1', '1', '0', 'x86_64')
+        pi3.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
+
+        pa1 = FakePackage('evince', '2', '1', '0', 'x86_64')

+        pa1.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
+        pa2i = FakePackage('evince-libs', '2', '1', '0', 'i686')
+        pa2x = FakePackage('evince-libs', '2', '1', '0', 'x86_64')
+        pa3 = FakePackage('evince-djvu', '2', '1', '0', 'x86_64')
+        pa3.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
+
+        res, msg = self.runOperation(['update', 'evince'],
+                                     [pi1, pi2, pi3],
+                                     [pa1, pa2x, pa2i, pa3])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa2x, pa3))
+
+    def testUpdateRLEvince2(self):
+        pi1 = FakePackage('evince', '1', '1', '0', 'x86_64')
+        pi1.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
+        pi2 = FakePackage('evince-libs', '1', '1', '0', 'x86_64')
+        pi3 = FakePackage('evince-djvu', '1', '1', '0', 'x86_64')
+        pi3.addRequires('evince-libs', 'EQ', ('0', '1', '1'))
+
+        pa1 = FakePackage('evince', '2', '1', '0', 'x86_64')
+        pa1.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
+        pa2i = FakePackage('evince-libs', '2', '1', '0', 'i686')
+        pa2x = FakePackage('evince-libs', '2', '1', '0', 'x86_64')

+        pa3 = FakePackage('evince-djvu', '2', '1', '0', 'x86_64')
+        pa3.addRequires('evince-libs', 'EQ', ('0', '2', '1'))
+
+        res, msg = self.runOperation(['update', 'evince'],
+                                     [pi1, pi2, pi3],
+                                     [pa1, pa2i, pa2x, pa3])
+        self.assert_(res=='ok', msg)
+        self.assertResult((pa1, pa2x, pa3))

Comment 12 releng-rhel@redhat.com 2010-11-15 14:52:55 UTC
Red Hat Enterprise Linux 6.0 is now available and should resolve
the problem described in this bug report. This report is therefore being closed
with a resolution of CURRENTRELEASE. You may reopen this bug report if the
solution does not work for you.