aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com>2019-07-19 00:05:48 +0200
committerGitHub <noreply@github.com>2019-07-19 00:05:48 +0200
commit565e858832952493e4752feb60ef65409085e836 (patch)
treec3ac8779ce19e709da8b6c44f05d7c774ef62917
parentcc880776c61baa4273ee67f02a5ee92f1c0ebc12 (diff)
parent57869f377bb2da6a211c5baf22daa0de8dcf825e (diff)
downloadpodman-565e858832952493e4752feb60ef65409085e836.tar.gz
podman-565e858832952493e4752feb60ef65409085e836.tar.bz2
podman-565e858832952493e4752feb60ef65409085e836.zip
Merge pull request #3600 from mheon/backports
Backport Exec memory leak fix
-rw-r--r--libpod/container_api.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/libpod/container_api.go b/libpod/container_api.go
index 832801aeb..fe66abf7a 100644
--- a/libpod/container_api.go
+++ b/libpod/container_api.go
@@ -345,6 +345,11 @@ func (c *Container) Exec(tty, privileged bool, env, cmd []string, user, workDir
if err != nil {
if exited {
// If the runtime exited, propagate the error we got from the process.
+ // We need to remove PID files to ensure no memory leaks
+ if err2 := os.Remove(pidFile); err2 != nil {
+ logrus.Errorf("Error removing exit file for container %s exec session %s: %v", c.ID(), sessionID, err2)
+ }
+
return err
}
return errors.Wrapf(err, "timed out waiting for runtime to create pidfile for exec session in container %s", c.ID())
@@ -352,6 +357,10 @@ func (c *Container) Exec(tty, privileged bool, env, cmd []string, user, workDir
// Pidfile exists, read it
contents, err := ioutil.ReadFile(pidFile)
+ // We need to remove PID files to ensure no memory leaks
+ if err2 := os.Remove(pidFile); err2 != nil {
+ logrus.Errorf("Error removing exit file for container %s exec session %s: %v", c.ID(), sessionID, err2)
+ }
if err != nil {
// We don't know the PID of the exec session
// However, it may still be alive