These states are kept by the kernel in the freezer.state cgroup item, and are never set in handler->state with lxc_set_state(). If lxc transitions a container to/from the freezer after an lxc-wait for one of the above states has already started, the lxc-wait will never see the new state. This change has lxc send the new state to the lxc-monitor socket.
Signed-off-by: Dwight Engen <dwight.en...@oracle.com> --- src/lxc/freezer.c | 6 ++++++ src/lxc/lxc_wait.c | 2 +- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/lxc/freezer.c b/src/lxc/freezer.c index 2a6f0f5..3e4f55d 100644 --- a/src/lxc/freezer.c +++ b/src/lxc/freezer.c @@ -32,6 +32,8 @@ #include <sys/param.h> #include "error.h" +#include "state.h" +#include "monitor.h" #include <lxc/log.h> #include <lxc/cgroup.h> @@ -95,7 +97,10 @@ static int freeze_unfreeze(const char *name, int freeze) ret = strncmp(f, tmpf, strlen(f)); if (!ret) + { + lxc_monitor_send_state(name, freeze ? FROZEN : THAWED); break; /* Success */ + } sleep(1); @@ -119,6 +124,7 @@ out: int lxc_freeze(const char *name) { + lxc_monitor_send_state(name, FREEZING); return freeze_unfreeze(name, 1); } diff --git a/src/lxc/lxc_wait.c b/src/lxc/lxc_wait.c index de1163e..799225d 100644 --- a/src/lxc/lxc_wait.c +++ b/src/lxc/lxc_wait.c @@ -70,7 +70,7 @@ Options :\n\ -n, --name=NAME NAME for name of the container\n\ -s, --state=STATE ORed states to wait for\n\ STOPPED, STARTING, RUNNING, STOPPING,\n\ - ABORTING, FREEZING, FROZEN\n\ + ABORTING, FREEZING, FROZEN, THAWED\n\ -t, --timeout=TMO Seconds to wait for state changes\n", .options = my_longopts, .parser = my_parser, -- 1.7.12.3 ------------------------------------------------------------------------------ LogMeIn Rescue: Anywhere, Anytime Remote support for IT. Free Trial Remotely access PCs and mobile devices and provide instant support Improve your efficiency, and focus on delivering more value-add services Discover what IT Professionals Know. Rescue delivers http://p.sf.net/sfu/logmein_12329d2d _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel