Bug 1207839
Summary: | docker-1.5.0-27.el7.x86_64 fails with older versions of device-mapper-libs | ||
---|---|---|---|
Product: | Red Hat Enterprise Linux 7 | Reporter: | Scott Dodson <sdodson> |
Component: | docker | Assignee: | Lokesh Mandvekar <lsm5> |
Status: | CLOSED ERRATA | QA Contact: | Luwen Su <lsu> |
Severity: | high | Docs Contact: | |
Priority: | high | ||
Version: | 7.1 | CC: | agk, ajia, chad, dwalsh, jeder, jstribny, miabbott, prajnoha, rterhaar, sghosh, vgoyal, zkabelac |
Target Milestone: | rc | Keywords: | Extras |
Target Release: | --- | ||
Hardware: | Unspecified | ||
OS: | Unspecified | ||
Whiteboard: | |||
Fixed In Version: | docker-1.6.0-11.el7 | Doc Type: | Bug Fix |
Doc Text: |
Cause:
The docker rpm package didn't correctly account for minimum required NVR for device-mapper-libs
Consequence:
When a user did a selective system upgrade (like 'yum update docker'), device-mapper-libs didn't get updated along with docker, thus causing problems in docker usage.
Fix:
The fix for this problem was to ensure a docker update also enforced an update of device-mapper-libs to 1.02.90-1 or higher.
Result:
Users can now use docker correctly after a 'yum update docker'
|
Story Points: | --- |
Clone Of: | Environment: | ||
Last Closed: | 2015-05-12 20:14:30 UTC | Type: | Bug |
Regression: | --- | Mount Type: | --- |
Documentation: | --- | CRM: | |
Verified Versions: | Category: | --- | |
oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
Cloudforms Team: | --- | Target Upstream Version: | |
Embargoed: |
Description
Scott Dodson
2015-03-31 19:56:45 UTC
Lokesh lets get this fixed in the docker-1.6 package. I think it actually something deeper then the epoch. Epoch and release should both be optional fields. I tried fully specifying the version as suggested and it didn't solve the problem. This seems to related to the device-mapper* packages. You can reproduce this with a simple spec file that does basically nothing but depend on a version of device-mapper-libs. It seems like device-mapper-libs simply will not be updated. (In reply to Chad Metcalf from comment #3) > I think it actually something deeper then the epoch. Epoch and release > should both be optional fields. I tried fully specifying the version as > suggested and it didn't solve the problem. > > This seems to related to the device-mapper* packages. You can reproduce this > with a simple spec file that does basically nothing but depend on a version > of device-mapper-libs. It seems like device-mapper-libs simply will not be > updated. Fast forward a day and yet another totally clean environment and the fully qualified version number does in fact seem to work. I just came across this today on a freshly installed system: 1, Install RHEL 7.0 2, Register and enable optional repositories # subscription-manager register ... # subscription-manager repos --enable=rhel-7-server-extras-rpms # subscription-manager repos --enable=rhel-7-server-optional-rpms 3, Install Docker # sudo yum -y install docker 4, Start Docker service $ sudo systemctl start docker.service Job for docker.service failed. See 'systemctl status docker.service' and 'journalctl -xn' for details. $ sudo systemctl status docker.service docker.service - Docker Application Container Engine Loaded: loaded (/usr/lib/systemd/system/docker.service; disabled) Active: failed (Result: exit-code) since Mon 2015-04-20 07:03:21 EDT; 5s ago Docs: http://docs.docker.com Process: 11768 ExecStart=/usr/bin/docker -d $OPTIONS $DOCKER_STORAGE_OPTIONS $DOCKER_NETWORK_OPTIONS $ADD_REGISTRY $BLOCK_REGISTRY $INSECURE_REGISTRY (code=exited, status=127) Main PID: 11768 (code=exited, status=127) Apr 20 07:03:21 localhost.localdomain systemd[1]: Starting Docker Application Container Engine... Apr 20 07:03:21 localhost.localdomain docker[11768]: time="2015-04-20T07:03:21-04:00" level="info" msg="+job serveapi(unix:///var/run/docker.sock)" Apr 20 07:03:21 localhost.localdomain docker[11768]: time="2015-04-20T07:03:21-04:00" level="info" msg="Listening for HTTP on unix (/var/run/docker.sock)" Apr 20 07:03:21 localhost.localdomain docker[11768]: /usr/bin/docker: relocation error: /usr/bin/docker: symbol dm_task_get_info_with_deferred_remove, version Base not defined in file libdevmappe...ime reference Apr 20 07:03:21 localhost.localdomain systemd[1]: docker.service: main process exited, code=exited, status=127/n/a Apr 20 07:03:21 localhost.localdomain systemd[1]: Failed to start Docker Application Container Engine. Apr 20 07:03:21 localhost.localdomain systemd[1]: Unit docker.service entered failed state. Hint: Some lines were ellipsized, use -l to show in full. Components versions: $ rpm -qa docker docker-1.5.0-28.el7.x86_64 $ rpm -qa device-mapper device-mapper-1.02.84-14.el7.x86_64 How to fix: # yum update device-mapper Components versions: $ rpm -qa device-mapper device-mapper-1.02.93-3.el7.x86_64 In docker-1.6.0-10.el7.x86_64, verified this from the line in docker.spec Requires: device-mapper-libs >= 1.02.90-1 Luwen, That's not a sufficient test, you need to install a RHEL7.0 system, install docker version 1.5 or later and start the service, it will fail even with docker-1.6.0-10.el7.x86_64. See comment #6. Lokesh, I did a scratch build with this change and it seems to fix the issue, I just don't know how you guys manage the specfile with regard to upstream and non rhel releases. -Requires: device-mapper-libs >= 1.02.90-1 +Requires: device-mapper-libs >= 7:1.02.90-1 (In reply to Scott Dodson from comment #8) > Lokesh, > > I did a scratch build with this change and it seems to fix the issue, I just > don't know how you guys manage the specfile with regard to upstream and non > rhel releases. umm, I guess dist-git is the answer. > > -Requires: device-mapper-libs >= 1.02.90-1 > +Requires: device-mapper-libs >= 7:1.02.90-1 Thanks, just that I don't think I ever hit this epoch issue before, will update. (In reply to Scott Dodson from comment #8) > Luwen, > > That's not a sufficient test, you need to install a RHEL7.0 system, install > docker version 1.5 or later and start the service, it will fail even with > docker-1.6.0-10.el7.x86_64. See comment #6. > Ah..so sorry about it, my bad. This should be enough: A note, the device-mapper package belongs to lvm2 in brew now, in case anyone need it. Downgrade device-mapper to a lower version, remove the docker installed.And try to install docker again. # ls atomic-0-0.22.git5b2fa8d.el7.x86_64.rpm docker-1.6.0-11.el7.x86_64.rpm docker-logrotate-1.6.0-11.el7.x86_64.rpm docker-python-1.0.0-35.el7.x86_64.rpm docker-selinux-1.6.0-11.el7.x86_64.rpm python-websocket-client-0.14.1-78.el7.noarch.rpm # rpm -qa | grep -i device-mapper device-mapper-multipath-libs-0.4.9-58.el7.x86_64 device-mapper-libs-1.02.82-6.el7.x86_64 device-mapper-persistent-data-0.2.8-2.el7.x86_64 device-mapper-multipath-0.4.9-58.el7.x86_64 device-mapper-event-1.02.82-6.el7.x86_64 device-mapper-event-libs-1.02.82-6.el7.x86_64 device-mapper-1.02.82-6.el7.x86_64 # rpm -ivh *.rpm error: Failed dependencies: device-mapper-libs >= 7:1.02.90-1 is needed by docker-1.6.0-11.el7.x86_64 Move to verified Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. https://rhn.redhat.com/errata/RHBA-2015-0993.html |