[libvirt] [PATCH 5/5] qemu: Disable errors in qemudShutdownVMDaemon
Cole Robinson
crobinso at redhat.com
Tue Jan 12 14:33:16 UTC 2010
On 01/12/2010 04:16 AM, Jim Meyering wrote:
> Cole Robinson wrote:
>> Signed-off-by: Cole Robinson <crobinso at redhat.com>
>> ---
>> src/qemu/qemu_driver.c | 10 ++++++++++
>> 1 files changed, 10 insertions(+), 0 deletions(-)
>>
>> diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
>> index fc6b9fa..38be88f 100644
>> --- a/src/qemu/qemu_driver.c
>> +++ b/src/qemu/qemu_driver.c
>> @@ -2616,12 +2616,17 @@ static void qemudShutdownVMDaemon(virConnectPtr conn,
>> int ret;
>> int retries = 0;
>> qemuDomainObjPrivatePtr priv = vm->privateData;
>> + virErrorPtr origerr = NULL;
>
> That assignment is technically what they call a dead store,
> since the very next use is to overwrite that just-stored value.
> So, to avoid warnings from the likes of the clang static checker,
> do this instead:
>
> virErrorPtr origerr;
>
Will do.
>> if (!virDomainObjIsActive(vm))
>> return;
>>
>> VIR_DEBUG("Shutting down VM '%s'", vm->def->name);
>>
>> + /* This method is routinely used in clean up paths. Disable error
>> + * reporting so we don't squash a legit error. */
>> + origerr = virSaveLastError();
>> +
>> if (driver->macFilter) {
>> int i;
>> virDomainDefPtr def = vm->def;
>> @@ -2701,6 +2706,11 @@ retry:
>> vm->def->id = -1;
>> vm->newDef = NULL;
>> }
>> +
>> + if (origerr) {
>> + virSetError(origerr);
>> + virFreeError(origerr);
>> + }
>> }
>
> Hi Cole,
> This looks like a fine series.
> Is there an easy way to demonstrate the fix?
> Thinking it'd be nice to have a test that exercises at least one piece
> of the new code.
>
Not that I can think of. Doing qemu migration to a host with a firewall
blocked migration port would previously return 'Unknown Error', where as
now it will return 'migration did not complete successfully'. Not easily
automated unfortunately.
> One tiny comment: people tend not to comprehend
> "wordsthatareattachedlikethis".
> So if you rename your "origerr" to e.g., "orig_err",
> it will be more readable.
>
> If you decide to make the change, you can do it quickly by doing
> something like this (assuming the top 5 changes are the ones in this
> series, and they've been rebased to the latest master):
>
> git format-patch --stdout -5 | sed s/origerr/orig_err/ > patch
> git co master
> git co -b var-rename
> git am patch
Sounds good, I'll make the adjustments and push.
Thanks,
Cole
More information about the libvir-list
mailing list