diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-02-18 19:27:30 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-18 19:27:30 -0500 |
commit | 7e286bc430ea50b72e972e48626298ac2e1f258a (patch) | |
tree | 18520dac08ce1401bd183b976f5b01141810e3ae /libpod/container_internal.go | |
parent | 797f1ea8cd0b7f4f85df4cf069bcd64c37a8ed1d (diff) | |
parent | 24cc53cb5fa756a27a24b063b9372b8f8fd4348b (diff) | |
download | podman-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.go | 15 |
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 |