On 7/10/23 17:00, Jim Fehlig wrote:
On 7/7/23 14:17, Jim Fehlig wrote:
Currently the libxl driver calls virDomainObjBeginJob in the begin
phase of migration on the source host, expecting to call virDomainObjEndJob
in the confirm phase. But the confirm phase is never executed if the
prepare or perform phases fail. The job was already being terminated
in the perform phase in case of failure, but there is no way to do that
if the prepare phase fails since it runs on the destination host.
Move the call to virDomainObjBeginJob to the perform phase. It can be
terminated there in the event of failure. On success, the confirm phase
will be executed, ensuring the job is terminated.
After taking another look at the job handling code in libxl_migration.c, and
reviewing the documentation for VIR_MIGRATE_CHANGE_PROTECTION, I realize the
libxl driver is making a weak attempt at implementing CHANGE_PROTECTION without
advertising it. I need to do a bit more thinking/testing if the current attempt
is strong enough, and if so drop this patch in favor of simply advertising
support for CHANGE_PROTECTION.
FTR, self-NACK this patch in favor of
https://listman.redhat.com/archives/libvir-list/2023-July/240681.html
Regards,
Jim