Bug 1340468

Summary: Regression: Can not complete docker push on NFS in Docker Distribution 2.4
Product: Red Hat Enterprise Linux 7 Reporter: Matthew Robson <mrobson>
Component: docker-distributionAssignee: Michal Minar <miminar>
Status: CLOSED ERRATA QA Contact: atomic-bugs <atomic-bugs>
Severity: urgent Docs Contact:
Priority: urgent    
Version: 7.2CC: lsu
Target Milestone: rcKeywords: Extras
Target Release: ---   
Hardware: All   
OS: All   
Whiteboard:
Fixed In Version: docker-distribution-2.5.0-1.el7 Doc Type: Bug Fix
Doc Text:
Cause: A regression was introduced in docker registry 2.4 where file descriptors weren't closed during blob uploads. Consequence: This has caused image push failures when the registry was running on top of NFS file system. Fix: A new version of upstream docker registry is available with a fix to the leaking file descriptors. Result: Image pushes now succeed on NFS file systems.
Story Points: ---
Clone Of: Environment:
Last Closed: 2016-12-06 17:42:55 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 Matthew Robson 2016-05-27 13:29:41 UTC
Description of problem:
A regression in Docker Distribution 2.4 causes a file descriptor leak rendering the docker registry unusable for pushes while using NFS.  It leads to an innocuous 'unexpected HTTP status: 500 Internal Server Error' on every push.

Version-Release number of selected component (if applicable):
2.4.0

How reproducible:
Always

Steps to Reproduce:
1.
2.
3.

Actual results:
Docker Pushes Fail 100%

Expected results:
Docker Push Should Succeed

Additional info:

Comment 2 Matthew Robson 2016-05-27 13:33:50 UTC
This is fixed in docker-distribution 2.4.1 through https://github.com/docker/distribution/pull/1666

Comment 4 Michal Minar 2016-10-06 12:30:31 UTC
Matthew,

the latest docker-registry we ship for rhel7 is 0.9.1. The same applies to Fedora.

Do you perhaps refer to Product/Component  "OpenShift Container Platform/Image Registry"?

The version of docker-registry in released OSE 3.2 is v2.2.1 though.

Comment 5 Michal Minar 2016-10-06 14:00:49 UTC
Oh, we have also docker-distribution component in brew. Please, disregard my previous comment. The latest released docker-distribution is 2.5.0. And as you mention in comment 2, it should resolve the issue.

Can you please confirm?

Comment 9 Luwen Su 2016-11-14 15:49:43 UTC
docker-distribution-2.5.1-1.el7.x86_64:

In nfs server host:
# cat /etc/exports
/nfs-test *(rw,sync,no_root_squash)

In docker-distribution server host:
# mount -t nfs 10.66.3.108:/nfs-test /var/lib/registry
# df -TH
10.66.3.108:/nfs-test nfs4       19G  3.3G   16G  18% /var/lib/registry

# cat /etc/docker-distribution/registry/config.yml
version: 0.1
log:
  fields:
    service: registry
storage:
    cache:
        layerinfo: inmemory
    filesystem:
        rootdirectory: /var/lib/registry
http:
    addr: :5000

# docker-latest push localhost:5000/busybox
The push refers to a repository [localhost:5000/busybox]
8ac8bfaff55a: Pushed 
latest: digest: sha256:1359608115b94599e5641638bac5aef1ddfaa79bb96057ebf41ebc8d33acf8a7 size: 527

Comment 11 errata-xmlrpc 2016-12-06 17:42:55 UTC
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-2016-2892.html