Bug 1647343 - Possible race condition between `docker run` and `docker exec`
Summary: Possible race condition between `docker run` and `docker exec`
Keywords:
Status: CLOSED WONTFIX
Alias: None
Product: Fedora
Classification: Fedora
Component: docker
Version: 31
Hardware: Unspecified
OS: Unspecified
unspecified
medium
Target Milestone: ---
Assignee: Daniel Walsh
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks:
TreeView+ depends on / blocked
 
Reported: 2018-11-07 09:12 UTC by Frantisek Sumsal
Modified: 2019-09-22 11:30 UTC (History)
10 users (show)

Fixed In Version:
Doc Type: If docs needed, set a value
Doc Text:
Clone Of:
Environment:
Last Closed: 2019-09-22 11:30:13 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

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


Note You need to log in before you can comment on or make changes to this bug.