
On 08/25/2016 05:04 AM, Nikolay Shirokovskiy wrote:
On 30.07.2016 16:04, John Ferlan wrote:
s/$subj/qemu: Filter cur_balloon ABI check for certain transactions
On 06/09/2016 10:32 AM, Nikolay Shirokovskiy wrote:
cur_balloon value can change in between preparing external config and using it in operations like save and migrate. As a resutl operation will fail for ABI inconsistency. cur_balloon changes can not be predicted generally and thus operations will fail from time to time.
Skip checking cur_balloon if domain lock can not be hold between preparing external config outside of libvirt and checking it against active config. Instead update cur_balloon value in external config from active config. This way it is protected from forges and is keeped up to date too.
s/$commit/
Since the domain lock is not held during preparation of an external XML config, it is possible that the value can change resulting in unexpected failures during ABI consistency checking for some save and migrate operations.
This patch adds a new flag to skip the checking of the cur_balloon value and then sets the destination value to the source value to ensure subsequent checks without the skip flag will succeed.
Signed-off-by: Nikolay Shirokovskiy <nshirokovskiy@virtuozzo.com> --- src/conf/domain_conf.c | 14 +++++++++++--- src/conf/domain_conf.h | 9 +++++++++ src/libvirt_private.syms | 1 + src/qemu/qemu_domain.c | 29 ++++++++++++++++++++--------- src/qemu/qemu_domain.h | 6 +++--- src/qemu/qemu_driver.c | 5 +++-- src/qemu/qemu_migration.c | 4 ++-- 7 files changed, 49 insertions(+), 19 deletions(-)
This change seems reasonable to me and it doesn't seem to negate the primary focus of commit id 'f2fc1eee' (which added the checks).
I do have a few suggestions and can make those locally before pushing after the current release is cut.
Thanx! I argee to all the suggestions, especially to keeping the name of the function that checks ABI. After all its name reflects 99% of its functionality and it is idiomatic for 'check' functions to have side effects in this project.
OK - so I'll make the adjustments including going back to the original name qemuDomainDefCheckABIStability as a bool and will push after the release is out. John