On Thu, Jul 17, 2014 at 9:38 PM, Eric Blake <eblake@xxxxxxxxxx> wrote: > On 07/17/2014 09:18 AM, Peter Krempa wrote: > >>>> A second issue that comes into my mind is compatibility with already >>>> existing files. Does this work when you already have a lease file? (I >>>> didn't try it, I'm just asking). >>> >>> If we use the --leasefile-ro option, then although this method will >>> work, but no, the lease file will *not* be read/written at all. So >>> even if an old one exists, its of no use. >>> But then again, the use of --leasefile-ro is mandatory, so that all >>> events are captured by our helper program. For example, renew of a >>> lease. >> >> My concerns are whether this will work in the case you already used the >> leases helper as the patch is adding a few fields to the stored format. > > In particular, this scenario MUST work: > > A user installs libvirt 1.2.6, and starts a guest (which creates a > leases file and longrunning helper app). Then the user upgrades to > libvirt 1.2.7 and restarts libvirtd. The new libvirt MUST be able to > interact with the running guest that is still using the older-style > leases file and helper app, with no loss of behavior to the guest. > > Also, this scenario MUST work: > > A user installs libvirt 1.2.6. Then they upgrade to libvirt 1.2.7, but > without restarting libvirtd. Then they start a guest. Note that the > upgrade means that the leaseshelper application that will be started is > the 1.2.7 build, but the command line to start it will be triggered by > the 1.2.6 libvirtd. The new helper must do everything that the old > helper did, so that the old libvirtd does not have any hiccups in operation. > > The easiest way to ensure that both directions of version mismatch are > well-behaved is to make sure that either side can be newer than the > other, that the changes are purely additive in nature, and that there > are sane defaults in place in the newer code when dealing with the older > data that lacks the additions. Also, while upgrade is a required > scenario, downgrade generally is not (going from 1.2.7 back to 1.2.6 > while a guest is still running, or expecting 1.2.7 libvirtd to be able > to use 1.2.6 leaseshelper, is nice if it works but not a showstopper if > it doesn't). This patch only adds functionality, and is backwards compatible with the version of leases file generated by older version of leaseshelper. Anyway, the older version wasn't much helpful after the lease expired. This patch rectifies it. I'll send a v2 shortly. Regards, Nehal J Wani -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list