Bug 1647343

Summary: Possible race condition between `docker run` and `docker exec`
Product: [Fedora] Fedora Reporter: Frantisek Sumsal <fsumsal>
Component: dockerAssignee: Daniel Walsh <dwalsh>
Status: CLOSED WONTFIX QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: medium Docs Contact:
Priority: unspecified    
Version: 31CC: adimania, admiller, amurdaca, dwalsh, ichavero, jcajka, lsm5, nalin, santiago, vbatts
Target Milestone: ---   
Target Release: ---   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: 2019-09-22 11:30:13 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 Frantisek Sumsal 2018-11-07 09:12:33 UTC
Description of problem:
There seems to be a race condition when running `docker exec` right after `docker run`. This can
be particularly seen with `dnf`. Interestingly enough I can reproduce it only with Fedora's Docker
version, the Community Edition works as expected.

Version-Release number of selected component (if applicable):
# rpm -q docker
docker-1.13.1-62.git9cb56fd.fc29.x86_64
# cat /etc/redhat-release 
Fedora release 30 (Rawhide)

How reproducible:
always

Steps to Reproduce:
## Docker from Fedora repositories
# dnf -y install docker
# systemctl start docker
# docker pull fedora:rawhide
# docker run -dit --privileged=true --name test fedora:rawhide /sbin/init && docker exec -it test dnf makecache
499be2fbf553335829adb6eb1041dc0951f3275c9d72e84af7e7da0ab69e711d
Fedora - Modular Rawhide - Developmental packages for the next Fedora release                         617 kB/s | 1.7 MB     00:02    
Fedora - Rawhide - Developmental packages for the next Fedora release                                 4.0 MB/s |  63 MB     00:15    
Last metadata expiration check: 0:00:01 ago on Wed Nov  7 09:05:50 2018.
[Errno 2] No such file or directory: '/var/cache/dnf/metadata_lock.pid'

## However, adding a slight delay between `docker run` and `docker exec` (here `sleep 1`) fixes this issue
# docker run -dit --privileged=true --name test fedora:rawhide /sbin/init && sleep 1 &&  docker exec -it test dnf makecache
9e73b1c3ccaa4d72a9eb109d1647f67005dada8b7789a0035eca9b8d8d736e7f
Fedora - Modular Rawhide - Developmental packages for the next Fedora release                         932 kB/s | 1.7 MB     00:01    
Fedora - Rawhide - Developmental packages for the next Fedora release                                  13 MB/s |  63 MB     00:04    
Last metadata expiration check: 0:00:01 ago on Wed Nov  7 09:07:39 2018.
Metadata cache created.

## The Community Edition works without any additional delay
# dnf config-manager --add-repo  https://download.docker.com/linux/fedora/docker-ce.repo
# dnf -y install --releasever 28 docker-ce
# rpm -q docker-ce
docker-ce-18.06.1.ce-3.fc28.x86_64
# systemctl start docker
# docker pull fedora:rawhide
# docker run -dit --privileged=true --name test fedora:rawhide /sbin/init && docker exec -it test dnf makecache
1697dd93d032047abf950556b0f5191b600f43c46ae4a37e9b6644ee8217fabf
Fedora - Modular Rawhide - Developmental packages for the next Fedora release                         942 kB/s | 1.7 MB     00:01    
Fedora - Rawhide - Developmental packages for the next Fedora release                                 5.4 MB/s |  63 MB     00:11    
Last metadata expiration check: 0:00:01 ago on Wed Nov  7 09:00:23 2018.
Metadata cache created.

Am I missing something fundamental here or is this really an unexpected behavior?

Comment 1 Ben Cotton 2019-08-13 16:57:46 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to '31'.

Comment 2 Ben Cotton 2019-08-13 19:25:01 UTC
This bug appears to have been reported against 'rawhide' during the Fedora 31 development cycle.
Changing version to 31.

Comment 3 Miro HronĨok 2019-09-22 11:30:13 UTC
Automation has figured out the package is retired in Fedora 31.

If you like it to be unretired, please open a ticket at https://pagure.io/releng/new_issue?template=package_unretirement