When sanlock is used as a locking driver and sanlock deamon loses access to its lockspace, it automatically kills off the domains that had their locks stored there. Apparently some management apps would like to change this behavior by configuring what should happen when locks are lost. Everything except the sanlock_helper code from patch 7/7 should be stable. The helper code may need some additional work (perhaps even touching other parts of libvirtd internals) because some lock failure action does not work as expected. For example, when automatic disk locks are enabled, the "pause" action will result in libvirtd calling back to sanlock and since it doesn't have access to the lockspace, the call would just hang. However, since currently the only requestor for this feature is VDSM and it doesn't use automatic disk locks, the sanlock_helper could work for them without any modifications. And since current sanlock_helper implementation is supposed to be changed when libvirtd gains administrative interface (see patch 7/7 for more details) we may even just live with its limitations for the time being. Jiri Denemark (7): conf: Generalize life cycle actions to event actions conf: Add on_lockfailure event configuration qemu: Use macro instead of "qemu" in the context of URI scheme locking: Add const char * parameter to avoid ugly typecasts locking: Pass hypervisor driver name when acquiring locks locking: Add support for lock failure action locking: Implement lock failure action in sanlock driver docs/formatdomain.html.in | 37 +++++-- docs/internals/locking.html.in | 8 ++ docs/schemas/domaincommon.rng | 30 +++++- libvirt.spec.in | 1 + src/Makefile.am | 13 ++- src/conf/domain_conf.c | 85 +++++++++------ src/conf/domain_conf.h | 18 +++- src/libvirt_private.syms | 2 + src/locking/domain_lock.c | 36 ++++--- src/locking/domain_lock.h | 4 + src/locking/lock_driver.h | 8 +- src/locking/lock_driver_nop.c | 1 + src/locking/lock_driver_sanlock.c | 114 +++++++++++++++++--- src/locking/lock_manager.c | 10 +- src/locking/lock_manager.h | 1 + src/locking/sanlock_helper.c | 214 ++++++++++++++++++++++++++++++++++++++ src/qemu/qemu_conf.h | 2 + src/qemu/qemu_driver.c | 21 ++-- src/qemu/qemu_hotplug.c | 15 ++- src/qemu/qemu_process.c | 4 +- 20 files changed, 537 insertions(+), 87 deletions(-) create mode 100644 src/locking/sanlock_helper.c -- 1.7.12 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list