summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Reber <areber@redhat.com>2019-08-06 15:28:10 +0000
committerAdrian Reber <areber@redhat.com>2019-08-09 19:26:56 +0200
commita891b845285105615c61d749fb61ca2650ba509b (patch)
treedc5a17ab917b1a52b3216ff7a2ec237a67efe527
parentdc3816819d24921dfe8204e79d383c9ecea46612 (diff)
downloadpodman-a891b845285105615c61d749fb61ca2650ba509b.tar.gz
podman-a891b845285105615c61d749fb61ca2650ba509b.tar.bz2
podman-a891b845285105615c61d749fb61ca2650ba509b.zip
Fix up ConmonPidFile after restore
After restoring a container with a different name (ID) the ConmonPidFile was still pointing to the path of the original container. This means that the last restored container will overwrite the ConmonPidFile of the original container. It was also not possible to restore a container with a new name (ID) if the original container was not running. The ConmonPidFile is only changed if the ConmonPidFile starts with the value of RunRoot. This assumes that if RunRoot is part of ConmonPidFile the user did not specify --conmon-pidfile' during run or create. Signed-off-by: Adrian Reber <areber@redhat.com>
-rw-r--r--libpod/runtime_ctr.go8
1 files changed, 8 insertions, 0 deletions
diff --git a/libpod/runtime_ctr.go b/libpod/runtime_ctr.go
index 61a871b28..92b2faefb 100644
--- a/libpod/runtime_ctr.go
+++ b/libpod/runtime_ctr.go
@@ -54,6 +54,14 @@ func (r *Runtime) RestoreContainer(ctx context.Context, rSpec *spec.Spec, config
}
// For an imported checkpoint no one has ever set the StartedTime. Set it now.
ctr.state.StartedTime = time.Now()
+
+ // If the path to ConmonPidFile starts with the default value (RunRoot), then
+ // the user has not specified '--conmon-pidfile' during run or create (probably).
+ // In that case reset ConmonPidFile to be set to the default value later.
+ if strings.HasPrefix(ctr.config.ConmonPidFile, r.config.StorageConfig.RunRoot) {
+ ctr.config.ConmonPidFile = ""
+ }
+
return r.setupContainer(ctx, ctr)
}