diff options
author | smh22@firebug.cl.cam.ac.uk <smh22@firebug.cl.cam.ac.uk> | 2005-12-01 12:27:29 +0100 |
---|---|---|
committer | smh22@firebug.cl.cam.ac.uk <smh22@firebug.cl.cam.ac.uk> | 2005-12-01 12:27:29 +0100 |
commit | f96418ce1837f0c8eb453e321320988f05b76aef (patch) | |
tree | 2f34d93609602ce0c6a32521fa9ace6368d0ef44 /tools | |
parent | b242b20898bd7966b4121ebef258ed8e42c80072 (diff) | |
download | xen-f96418ce1837f0c8eb453e321320988f05b76aef.tar.gz xen-f96418ce1837f0c8eb453e321320988f05b76aef.tar.bz2 xen-f96418ce1837f0c8eb453e321320988f05b76aef.zip |
Fix migrate.
Signed-off-by: Steven Hand <steven@xensource.com>
Diffstat (limited to 'tools')
-rw-r--r-- | tools/python/xen/xend/XendCheckpoint.py | 14 | ||||
-rw-r--r-- | tools/python/xen/xend/XendDomain.py | 1 |
2 files changed, 12 insertions, 3 deletions
diff --git a/tools/python/xen/xend/XendCheckpoint.py b/tools/python/xen/xend/XendCheckpoint.py index 8d80bbc45b..63d5821a00 100644 --- a/tools/python/xen/xend/XendCheckpoint.py +++ b/tools/python/xen/xend/XendCheckpoint.py @@ -40,11 +40,19 @@ def write_exact(fd, buf, errmsg): raise XendError(errmsg) def read_exact(fd, size, errmsg): - buf = os.read(fd, size) - if len(buf) != size: - raise XendError(errmsg) + buf = '' + while size != 0: + str = os.read(fd, size) + if not len(str): + log.error("read_exact: EOF trying to read %d (buf='%s')" % \ + (size, buf)) + raise XendError(errmsg) + size = size - len(str) + buf = buf + str return buf + + def save(fd, dominfo, live): write_exact(fd, SIGNATURE, "could not write guest state file: signature") diff --git a/tools/python/xen/xend/XendDomain.py b/tools/python/xen/xend/XendDomain.py index 650a500e8f..c6fcddef4f 100644 --- a/tools/python/xen/xend/XendDomain.py +++ b/tools/python/xen/xend/XendDomain.py @@ -397,6 +397,7 @@ class XendDomain: raise XendError("can't connect: %s" % err[1]) sock.send("receive\n") + sock.recv(80) XendCheckpoint.save(sock.fileno(), dominfo, live) |