From f4bbfc34ce1785863dcdea44c981f6532c5e2860 Mon Sep 17 00:00:00 2001 From: Lei Jitang Date: Fri, 19 Aug 2016 05:12:01 -0400 Subject: [PATCH] Persist pause state to disk to support container live restore Signed-off-by: Lei Jitang --- container/state.go | 1 - daemon/monitor.go | 6 ++++++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/container/state.go b/container/state.go index d9a77052a5..4146947bcb 100644 --- a/container/state.go +++ b/container/state.go @@ -210,7 +210,6 @@ func (s *State) SetExitCode(ec int) { func (s *State) SetRunning(pid int, initial bool) { s.error = "" s.Running = true - s.Paused = false s.Restarting = false s.exitCode = 0 s.Pid = pid diff --git a/daemon/monitor.go b/daemon/monitor.go index 63e5e844e9..60cd11ec2c 100644 --- a/daemon/monitor.go +++ b/daemon/monitor.go @@ -99,11 +99,17 @@ func (daemon *Daemon) StateChanged(id string, e libcontainerd.StateInfo) error { case libcontainerd.StatePause: // Container is already locked in this case c.Paused = true + if err := c.ToDisk(); err != nil { + return err + } daemon.updateHealthMonitor(c) daemon.LogContainerEvent(c, "pause") case libcontainerd.StateResume: // Container is already locked in this case c.Paused = false + if err := c.ToDisk(); err != nil { + return err + } daemon.updateHealthMonitor(c) daemon.LogContainerEvent(c, "unpause") }