aboutsummaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorsmh22@firebug.cl.cam.ac.uk <smh22@firebug.cl.cam.ac.uk>2005-12-01 12:27:29 +0100
committersmh22@firebug.cl.cam.ac.uk <smh22@firebug.cl.cam.ac.uk>2005-12-01 12:27:29 +0100
commitf96418ce1837f0c8eb453e321320988f05b76aef (patch)
tree2f34d93609602ce0c6a32521fa9ace6368d0ef44 /tools
parentb242b20898bd7966b4121ebef258ed8e42c80072 (diff)
downloadxen-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.py14
-rw-r--r--tools/python/xen/xend/XendDomain.py1
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)