CentOS repository contains ruby conflicts - unable to run yum update plainly

Bug #1403088 reported by Sergii Golovatiuk on 2014-12-16
40
This bug affects 7 people
Affects Status Importance Assigned to Milestone
Fuel for OpenStack
Critical
Artem Silenkov
5.0.x
High
Fuel Library (Deprecated)
5.1.x
High
Fuel Library (Deprecated)
6.0.x
High
Fuel Library (Deprecated)
6.1.x
Critical
Artem Silenkov

Bug Description

How to reproduce

Run:
ssh node-X
yum upgrade

you will see

--> Finished Dependency Resolution
Error: Package: ruby-augeas-0.5.0-17.3.x86_64 (@anaconda-CentOS-201410241409.x86_64/6.3)
           Requires: libruby.so.1.8()(64bit)
           Removing: ruby-libs-1.8.7.352-13.el6.x86_64 (@2014.2-6.0)
               libruby.so.1.8()(64bit)
           Obsoleted By: ruby-2.1.1-1.1.x86_64 (2014.2-6.0)
               Not found
Error: Package: rubygem-yajl-ruby-1.1.0-1.el6.x86_64 (@anaconda-CentOS-201410241409.x86_64/6.3)
           Requires: ruby(rubygems)
           Removing: rubygems-1.3.7-5.el6.noarch (@2014.2-6.0)
               ruby(rubygems) = 1.3.7
           Obsoleted By: ruby-2.1.1-1.1.x86_64 (2014.2-6.0)

That issue makes almost impossible of package management on CentOs environments

Changed in fuel:
importance: Undecided → High
status: New → Confirmed
assignee: nobody → Fuel Library Team (fuel-library)
Stanislav Makar (smakar) wrote :
Vladimir Kuklin (vkuklin) wrote :

this is expected behaviour. if you want to do update, just exclude ruby from the update command

yum update --exclude=ruby*

summary: - Broken CentOS repo on master node
+ CentOS repository contains ruby conflicts - unable to run yum update
+ plainly
tags: added: release-notes
Changed in fuel:
status: Confirmed → Won't Fix
status: Won't Fix → Triaged
milestone: 6.0 → 6.1
Roman Vyalov (r0mikiam) wrote :

please use yum update --exclude=ruby*

Matthew Mosesohn (raytrac3r) wrote :

Let's just ship yum config for forcing ruby to 1.8.7. I'll take this bug and make it so you can yum update without ruby conflicts.

Changed in fuel:
assignee: Fuel OSCI Team (fuel-osci) → Matthew Mosesohn (raytrac3r)

Fix proposed to branch: master
Review: https://review.openstack.org/161286

Changed in fuel:
status: Triaged → In Progress
Dmitry Borodaenko (angdraug) wrote :

I believe this is now Critical due to its impact on patching OpenStack.

I disagree with the RCA on this bug: the problem isn't with yum configuration, it's with the way we've packaged ruby-2.1. We should have called this package ruby21 (so that it's not an upgrade from ruby-1.8.x) and made it install ruby binary at /usr/bin/ruby21 (so that it doesn't conflict with ruby-1.8.x).

Either that, or give up on Ruby 1.8 backwards compatibility on target nodes as we already have on Fuel master.

Dmitry Borodaenko (angdraug) wrote :

P.S. Second part of the ruby21 requirement (/usr/bin/ruby21) is optional, instead we can declare that ruby21 conflicts with ruby and not allow to install both versions on the same system, which is closer to the current situation, but still resolves the updates problem.

Artem Silenkov (asilenkov) wrote :

I've renamed this one. Package is placed under centos-fuel-6.1-stable repo.
As follows:
---
Provides: ruby(abi) = 2.1
Provides: ruby-irb
Provides: ruby-rdoc
Provides: ruby-libs
Provides: ruby-devel
Provides: rubygems
Conflicts: ruby < 2.1
---
Well, speaking frankly, I feel this hack is not quite correct. But fastest indeed.
We should make "Provides: ruby21" and recompile all related stuff according to this. It could help to avoid possible problems when upgrading.

Artem Silenkov (asilenkov) wrote :

UPD: mispasted.
+Name: ruby21

Fix proposed to branch: master
Review: https://review.openstack.org/163866

Changed in fuel:
assignee: Matthew Mosesohn (raytrac3r) → Roman Vyalov (r0mikiam)
Artem Silenkov (asilenkov) wrote :

Still broken, we are working on fix.

Change abandoned by Roman Vyalov (<email address hidden>) on branch: master
Review: https://review.openstack.org/163866

Changed in fuel:
assignee: Bartlomiej Piotrowski (bpiotrowski) → Roman Vyalov (r0mikiam)

Roman, Artem, we are aware that it's still broken and we decided today to fix it on fuel-library side.

Artem Silenkov (asilenkov) wrote :

Refactored ruby21 will be added to our main repos during tomorrow OBS maintenance.
https://docs.google.com/a/mirantis.com/document/d/1Nthh7lXHhi0b-0kPU0LbPYKajAT-dGPu7n759EQjeOA

Artem Silenkov (asilenkov) wrote :

Still need to hack ISO build system to deal with all new stuff

Change abandoned by Matthew Mosesohn (<email address hidden>) on branch: master
Review: https://review.openstack.org/161323

Reviewed: https://review.openstack.org/168332
Committed: https://git.openstack.org/cgit/stackforge/fuel-main/commit/?id=242889cb2f5158450d467572c81463ad781f6605
Submitter: Jenkins
Branch: master

commit 242889cb2f5158450d467572c81463ad781f6605
Author: Roman Vyalov <email address hidden>
Date: Fri Mar 27 16:32:57 2015 +0300

    Rename ruby from ruby-2.1 to ruby21

    CentOS repository contains ruby conflicts - unable to run yum update plainly
    Closes-bug: #1403088

    Change-Id: I5d8578590dfbe55e410cfd70b328177fec80bf31

Changed in fuel:
status: In Progress → Fix Committed

Change abandoned by Matthew Mosesohn (<email address hidden>) on branch: master
Review: https://review.openstack.org/161286

Dmitry Tyzhnenko (dtyzhnenko) wrote :

Reproduced on ISO 6.1-342

{
    u'build_id': u'2015-04-24_03-57-45',
    u'build_number': u'342',
    u'auth_required': True,
    u'fuel-ostf_sha': u'848fbf2c9cb2bc7a97c106d5a7706668e5190301',
    u'fuel-library_sha': u'9e294ca127d510723436dfadc1020264831b52a4',
    u'nailgun_sha': u'4df0d77b30f673c334332315ecf97f3674faf3ab',
    u'openstack_version': u'2014.2.2-6.1',
    u'production': u'docker',
    u'api': u'1.0',
    u'python-fuelclient_sha': u'2b311b3b82a1e2df1dc3484a0f37e282273cd988',
    u'astute_sha': u'5be3506e6a4f8b7f0a858db2e162dabcc07347df',
    u'fuelmain_sha': u'd4b50b24087e114d615b36104aef20268da287b7',
    u'feature_groups': [u'mirantis'],
    u'release': u'6.1',
    u'release_versions': {u'2014.2.2-6.1': {u'VERSION': {
        u'build_id': u'2015-04-24_03-57-45',
        u'build_number': u'342',
        u'fuel-library_sha': u'9e294ca127d510723436dfadc1020264831b52a4',
        u'nailgun_sha': u'4df0d77b30f673c334332315ecf97f3674faf3ab',
        u'fuel-ostf_sha': u'848fbf2c9cb2bc7a97c106d5a7706668e5190301',
        u'production': u'docker',
        u'api': u'1.0',
        u'python-fuelclient_sha': u'2b311b3b82a1e2df1dc3484a0f37e282273cd988',
        u'astute_sha': u'5be3506e6a4f8b7f0a858db2e162dabcc07347df',
        u'fuelmain_sha': u'd4b50b24087e114d615b36104aef20268da287b7',
        u'feature_groups': [u'mirantis'],
        u'release': u'6.1',
        u'openstack_version': u'2014.2.2-6.1',
        }}},
    }

yum upgrade have not worked yet

http://paste.openstack.org/show/205682/

related bug - https://bugs.launchpad.net/fuel/+bug/1448114

Reviewed: https://review.openstack.org/177251
Committed: https://git.openstack.org/cgit/stackforge/fuel-qa/commit/?id=ed73184ddc29091eebc9313562e132179dbd0f3c
Submitter: Jenkins
Branch: master

commit ed73184ddc29091eebc9313562e132179dbd0f3c
Author: Dmitry Tyzhnenko <email address hidden>
Date: Fri Apr 24 16:14:30 2015 +0300

    Temtorary disable repo check on CentOS

    While bugs #1403088 and #1448114 not fix, repo check test fails after
        deploy cluster. This can affect other tests. We may disable repo
        checker while bugs not fix

    Change-Id: Ieefe3042dd33987c66f8e1ec91f611863cdf4ba4
    Related-bug: #1403088
    Related-bug: #1448114

Artem Silenkov (asilenkov) wrote :

We are trying to install all ruby versions onto one system at one time. This way iso-make-system works now.

1. We have to fix astute.spec to "Depends: ruby21" instead of "Depends: ruby = 2.1.1"
2. Astute tries to install new ruby21 over existing installed ruby-1.8.7.

Patches to make system in order to prevent this to happen are in testing stage.

Dmitry Borodaenko (angdraug) wrote :

Artem,

> Patches to make system in order to prevent this to happen are in testing stage.

If there's a patch in progress there must be a link in the bug comments, and the bug status must be In Progress, not Confirmed.

Reviewed: https://review.openstack.org/178579
Committed: https://git.openstack.org/cgit/stackforge/fuel-astute/commit/?id=6775341add9d693f197981ad96121125c4dbcc65
Submitter: Jenkins
Branch: master

commit 6775341add9d693f197981ad96121125c4dbcc65
Author: Andrey Nikitin <email address hidden>
Date: Wed Apr 29 12:45:58 2015 +0300

    Ruby %name must be changed to satisfy renamed pkg.

    Related-Bug: #1403088

    Change-Id: Ie79b5c9cd953b7ab520aeba532bbf9091971240d

Artem Silenkov (asilenkov) wrote :

Let me explain details
1. Ruby-1.8 and ruby-2.1 are totally incompatible with each other. Moreover, packages which are provided by every ruby are incompatible too. There is no way to cleanly install ruby-1.8 and ruby-2.1 together.
2. We have a bunch of gems total number 131 which have to be recompiled when ruby changes
3. ISO make build system is not aware of ruby problem and tries to install ruby-1.8 and ruby-2.1 together.
4. There is no convenient way to modify ruby package without touching the code.
5. There are a list of external products which are using different ruby versions. Astute=2.1, Nailgun=1.8 Eg.
6. In order to test overall picture one must built ISO and wait until all tests are passed. It's quite a long run.

We renamed ruby-2.1 to ruby21, repackaged all the dependencies stuff, fixed external products' specs. It builds locally but have some problems in mirrors we are fixing right now.

Fix proposed to branch: master
Review: https://review.openstack.org/178747

Changed in fuel:
assignee: Artem Silenkov (asilenkov) → Matthew Mosesohn (raytrac3r)

Fix proposed to branch: master
Review: https://review.openstack.org/178792

Changed in fuel:
assignee: Fuel OSCI Team (fuel-osci) → Artem Silenkov (asilenkov)
Artem Silenkov (asilenkov) wrote :

1. We need to #FIXME there after cleaning up our mirrors.
2. Also we have to remove ruby-2.1.1 from all our mirrors. This will make all related jobs green again

Artem Silenkov (asilenkov) wrote :

build_staging_mirror completed
iso with final fixes is on the way

Artem Silenkov (asilenkov) wrote :

I need some light on versions to choose for 6.1

1.
- rubygem-net-ssh-2.2.2 requires rubygems >= 1.3.7 - broken but on ISO
- rubygem-net-ssh-2.8.0 - ok but not in ISO

2.
- rubygem-net-ssh-gateway-1.1.0 requires rubygems >= 1.3.7 - broken but on ISO
- net-ssh-gateway-1.2.0 - ok but not on ISO.

All other parts are fixed.

Reviewed: https://review.openstack.org/178747
Committed: https://git.openstack.org/cgit/stackforge/fuel-main/commit/?id=f7c3d03569e6c7f699be733046e854383936efcc
Submitter: Jenkins
Branch: master

commit f7c3d03569e6c7f699be733046e854383936efcc
Author: Matthew Mosesohn <email address hidden>
Date: Wed Apr 29 18:53:12 2015 +0300

    Install ruby21 for sandbox packages

    Because of the shift of ruby-2.1 to ruby21
    package naming, the ruby21 package should be
    used as the default ruby env for RPM building

    Change-Id: Id2802bf1c3ab163efff905741c62beadf3d4b82d
    Partial-Bug: #1403088

Reviewed: https://review.openstack.org/178792
Committed: https://git.openstack.org/cgit/stackforge/fuel-main/commit/?id=4ec43b970861826a9397de10a3958b2473c1b343
Submitter: Jenkins
Branch: master

commit 4ec43b970861826a9397de10a3958b2473c1b343
Author: Artem Silenkov <email address hidden>
Date: Wed Apr 29 20:48:05 2015 +0300

    Skip ruby21, ruby-2.1.1 during bootstrap operation

    Because of the shift of ruby-2.1 to ruby21
    package naming, the ruby21 package should be
    excluded as for ruby-2.1.1 during bootstrap

    Change-Id: I86c8f7b07f3b94481a932a5456b112fc32adf27a
    Partial-Bug: #1403088

Artem Silenkov (asilenkov) wrote :

5.1.2 broken because of renaming, 5.1.2 mirrors reverted

Dmitry Borodaenko (angdraug) wrote :

5.1.2 is now resolved, 6.1 staging iso build is still broken, Artem is currently repackaging ruby gems with broken dependencies on the rubygems package.

Dmitry Borodaenko (angdraug) wrote :

5.1.2 builds are green, but several 6.1 staging iso builds later the iso build is still failing during ruby package dependency resolution.

Artem Silenkov (asilenkov) wrote :

Still need to fix 3 packages. We are still working on this.
This is OBS issue.

https://bugs.launchpad.net/fuel/+bug/1450709

Artem Silenkov (asilenkov) wrote :

BVT failed because of
https://bugs.launchpad.net/fuel/+bug/1451006

Fix in progress

Artem Silenkov (asilenkov) wrote :

BVT Ubuntu passed - master nide is ok
BVT Centos still failed
It looks like slaves don't have any ruby installed.

It seems
https://github.com/stackforge/fuel-main/blob/master/image/centos/centos.ks#L47 another version hardcode we didn't noticed.

Fix proposed to branch: master
Review: https://review.openstack.org/179585

Change abandoned by Artem Silenkov (<email address hidden>) on branch: master
Review: https://review.openstack.org/179584
Reason: Not needed

Reviewed: https://review.openstack.org/179585
Committed: https://git.openstack.org/cgit/stackforge/fuel-main/commit/?id=42297c8034836a33506e80d13bd6a898b6d7d71c
Submitter: Jenkins
Branch: master

commit 42297c8034836a33506e80d13bd6a898b6d7d71c
Author: Artem Silenkov <email address hidden>
Date: Sat May 2 17:27:53 2015 +0300

    Add new ruby21 for exclude for slaves

    We renamed ruby=2.1 to ruby21=2.1 so we must exclude it.

    Change-Id: I6a05be9920db4c15b6c4030b564f60a49e4d68a6
    Partial-Bug: #1403088

Artem Silenkov (asilenkov) wrote :

ok, we have finally passed BVTs.

Verified on fuel-6.1-379-2015-05-05_12-04-34.iso

[root@nailgun ~]# yum upgrade
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Setting up Upgrade Process
No Packages marked for Update

Artem Panchenko (apanchenko-8) wrote :

Guys, please correct me if I'm wrong, but in the bug description I see that issue is related to slave nodes not Fuel master. So on one of latest 6.1 iso images the bug is still reproduced:

http://paste.openstack.org/show/215056/

Artem Silenkov (asilenkov) wrote :

http://mc0n5-msk.msk.mirantis.net/fuelweb-iso/fuel-6.1-385-2015-05-06_15-48-58.iso

[root@node-3 ~]# yum list | grep ruby21.x
ruby21.x86_64 2.1.1-1.1 mos
[root@node-3 ~]# yum upgrade
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Setting up Upgrade Process
No Packages marked for Update

Artem Silenkov (asilenkov) wrote :

It seems fix was not included. Could you pls recheck on >385.
It seems that 384 still has issues.

fuel-6.1-393-2015-05-08_03-33-17.iso

[root@node-1 ~]# yum list | grep ruby21.x
ruby21.x86_64 2.1.1-1.1 mos

[root@node-1 ~]# yum upgrade
Loaded plugins: fastestmirror, priorities
Loading mirror speeds from cached hostfile
Setting up Upgrade Process
No Packages marked for Update

tags: added: release-notes-done

Change abandoned by Bartłomiej Piotrowski (<email address hidden>) on branch: master
Review: https://review.openstack.org/168823

Download full text (45.4 KiB)

Reviewed: https://review.openstack.org/194961
Committed: https://git.openstack.org/cgit/stackforge/fuel-docs/commit/?id=0e26e7d7cc153d179ec34985645dd23cdd239ddb
Submitter: Jenkins
Branch: stable/6.1

commit 5cc5f0c643aebecaf3bf4580535a3ea7c3334a6c
Author: Mike Scherbakov <email address hidden>
Date: Tue Jun 23 13:43:35 2015 -0700

    Removed streamlined patching backend pieces

    Change-Id: I955e76ccdbd12a9145f4e9b689f80bdf9fcaf929

commit 563c4b5c78ebfcb1f4f91047c2919f6270f9a1d4
Author: Mike Scherbakov <email address hidden>
Date: Tue Jun 23 13:30:30 2015 -0700

    Removed outdated patching guide

    Change-Id: I76180c277789ade9c5ebedd19fe2092847c0b7d9

commit 8d120c14bec1ab41d448683ad146a3053a57c4ee
Author: Irina Povolotskaya <email address hidden>
Date: Tue Jun 23 19:59:11 2015 +0300

    Add dual hypervisor ref arch into 6.1 docs

    Change-Id: I900c24c9de878eafadbfc995aa879b7f55737fac

commit feebd1592d3305b64bbdfd0bc5fe108190aef120
Author: OlgaGusarenko <email address hidden>
Date: Tue Jun 23 18:38:17 2015 +0300

    [OPs guide] Running Ceilometer section edits

    1. conf file extract is updated
    2. note is updated

    Closes-bug: 1467817
    Change-Id: I0217e164108e0ba6c1397045a5e57d13ff429223

commit 44a93f9dead7511a3461ec35248dbb689c81eafd
Author: OlgaGusarenko <email address hidden>
Date: Tue Jun 23 18:04:40 2015 +0300

    [RN6_1] Final changes

    1. capitalization
    2. 2014.2 to 2014.2.2
    3. general improvements

    Change-Id: I45057e90c90550559f66bc67ccdf97a559fd9000

commit bb41389cae58084285688853281516b659686422
Author: evkonstantinov <email address hidden>
Date: Tue Jun 23 16:45:35 2015 +0300

    Update patching decription

    Update patching description with
    the standard Linux commands.

    Change-Id: Ia1a8346639c468fdfce15a11d2430bf3a4731244

commit bf3018fae3f2e564413d33aba6cdebf8868f0b4e
Author: OlgaGusarenko <email address hidden>
Date: Tue Jun 23 15:55:49 2015 +0300

    [RN6_1] Clean up

    1. Rearranges sections
    2. Improves RST
    3. Changes titles order

    Change-Id: I6110bf515667d3d6ba08ad35ff5d593dbc96641e

commit 1c7e4457808e8f2d6c56fdf31252170972e444b9
Author: Maria Zlatkova <email address hidden>
Date: Tue Jun 23 15:26:28 2015 +0300

    Replaces VBOX screenshots

    This patch:
    - replaces VBOX screenshots
    - changes the link for Download Mirantis VirtualBox scripts
     to https://docs.mirantis.com/openstack/fuel/fuel-master/#downloads

    Change-Id: I58dede960c5c3355d39b07ff44b757403f6af02c
    Closes-Bug: #1467872

commit 0a568bf53fc0e25d1d692d5d74b4a7b4d983bbcc
Author: evkonstantinov <email address hidden>
Date: Tue Jun 23 14:01:55 2015 +0300

    6.1 --separate repos

    change wording and add links to the
    separate repos feature.

    Change-Id: Ib5d0778a0d8f1534f79ed2f553574cb69a3150b0

commit 95a188b21cbdd064d92696b7920e6a0105fe0c56
Author: Maria Zlatkova <email address hidden>
Date: Tue Jun 23 12:07:28 2015 +0300

    Corrects the output 'pcs status'

    Changes the example outputs to appropriate ones.

    Change-Id: Ib6d83...

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers