summaryrefslogtreecommitdiff
path: root/libpod/container_internal.go
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2021-02-18 19:27:30 -0500
committerGitHub <noreply@github.com>2021-02-18 19:27:30 -0500
commit7e286bc430ea50b72e972e48626298ac2e1f258a (patch)
tree18520dac08ce1401bd183b976f5b01141810e3ae /libpod/container_internal.go
parent797f1ea8cd0b7f4f85df4cf069bcd64c37a8ed1d (diff)
parent24cc53cb5fa756a27a24b063b9372b8f8fd4348b (diff)
downloadpodman-7e286bc430ea50b72e972e48626298ac2e1f258a.tar.gz
podman-7e286bc430ea50b72e972e48626298ac2e1f258a.tar.bz2
podman-7e286bc430ea50b72e972e48626298ac2e1f258a.zip
Merge pull request #9427 from mheon/bump_301
Bump to v3.0.1
Diffstat (limited to 'libpod/container_internal.go')
-rw-r--r--libpod/container_internal.go15
1 files changed, 13 insertions, 2 deletions
diff --git a/libpod/container_internal.go b/libpod/container_internal.go
index 15958471f..e02cb201e 100644
--- a/libpod/container_internal.go
+++ b/libpod/container_internal.go
@@ -264,7 +264,7 @@ func (c *Container) handleRestartPolicy(ctx context.Context) (_ bool, retErr err
c.newContainerEvent(events.Restart)
// Increment restart count
- c.state.RestartCount += 1
+ c.state.RestartCount++
logrus.Debugf("Container %s now on retry %d", c.ID(), c.state.RestartCount)
if err := c.save(); err != nil {
return false, err
@@ -1615,6 +1615,17 @@ func (c *Container) mountNamedVolume(v *ContainerNamedVolume, mountpoint string)
if !srcStat.IsDir() {
return vol, nil
}
+ // Read contents, do not bother continuing if it's empty. Fixes
+ // a bizarre issue where something copier.Get will ENOENT on
+ // empty directories and sometimes it will not.
+ // RHBZ#1928643
+ srcContents, err := ioutil.ReadDir(srcDir)
+ if err != nil {
+ return nil, errors.Wrapf(err, "error reading contents of source directory for copy up into volume %s", vol.Name())
+ }
+ if len(srcContents) == 0 {
+ return vol, nil
+ }
// Buildah Copier accepts a reader, so we'll need a pipe.
reader, writer := io.Pipe()
@@ -1631,7 +1642,7 @@ func (c *Container) mountNamedVolume(v *ContainerNamedVolume, mountpoint string)
getOptions := copier.GetOptions{
KeepDirectoryNames: false,
}
- errChan <- copier.Get(mountpoint, "", getOptions, []string{v.Dest + "/."}, writer)
+ errChan <- copier.Get(srcDir, "", getOptions, []string{"/."}, writer)
}()
// Copy, volume side: stream what we've written to the pipe, into