On 03/09/2011 08:45 PM, Eric Blake wrote:
Needs more testing - especially on root-squash NFS
Starting up a domain with backing store on root-squash NFS works fine.
When I try to save the domain to a directory on a root-squash NFS,
though, the save hangs forever with a zombified child process with a
WCHAN of "exit", and the parent process is sitting on recvmsg():
Thread 4 (Thread 0x7f6045f55700 (LWP 3754)):
#0 0x000000332840e9cd in recvmsg () from /lib64/libpthread.so.0
#1 0x00007f604ea7ddc9 in virFileOpenAs (
path=0x7f6038009e90 "/remote/vhost-libvirt/qemu/RHEL6.save",
openflags=577, mode=432, uid=107, gid=107, flags=1) at util/util.c:1513
#2 0x00000000004416b0 in qemudDomainSaveFlag (driver=0xbb96f0,
dom=0x7f60380095a0, vm=0xd219c0,
path=0x7f6038009e90 "/remote/vhost-libvirt/qemu/RHEL6.save",
compressed=<value optimized out>) at qemu/qemu_driver.c:1924
#3 0x0000000000441a12 in qemudDomainSave (dom=0x7f60380095a0,
path=0x7f6038009e90 "/remote/vhost-libvirt/qemu/RHEL6.save")
at qemu/qemu_driver.c:2143
#4 0x00007f604eadeae6 in virDomainSave (domain=0x7f60380095a0,
to=0x7f6038009e90 "/remote/vhost-libvirt/qemu/RHEL6.save")
at libvirt.c:2280
I get a similar hang when I try to restore from an image saved on
root-squash NFS.
(if it makes any difference, this is on F13, with qemu-kvm-0.13.0-1)
Do you want me to try bisecting it? Access to the machine?
Eric Blake (15):
qemu: use lighter-weight fd:n on incoming tunneled migration
qemu: consolidate duplicated monitor migration code
qemu: improve efficiency of dd during snapshots
qemu: support migration to fd
util: use SCM_RIGHTS in virFileOperation when needed
qemu: allow simple domain save to use fd: protocol
qemu: simplify domain save fd handling
storage: simplify fd handling
util: rename virFileOperation to virFileOpenAs
util: adjust indentation in previous patch
qemu, storage: improve type safety
qemu: use common API for reading difficult files
qemu: consolidate migration to file code
qemu: skip granting access during fd migration
qemu: support fd: migration with compression
src/libvirt_private.syms | 2 +-
src/qemu/qemu_driver.c | 626 ++++++++++++++++-------------------------
src/qemu/qemu_migration.c | 45 +--
src/qemu/qemu_monitor.c | 124 ++++++++-
src/qemu/qemu_monitor.h | 4 +
src/qemu/qemu_monitor_json.c | 125 +--------
src/qemu/qemu_monitor_json.h | 23 +--
src/qemu/qemu_monitor_text.c | 123 +--------
src/qemu/qemu_monitor_text.h | 23 +--
src/storage/storage_backend.c | 80 +++---
src/util/util.c | 161 ++++++++----
src/util/util.h | 15 +-
12 files changed, 544 insertions(+), 807 deletions(-)