If the stats for a block device can't be acquired from qemu we've
fallen back to loading them from the file on the disk in libvirt.
If qemu is not cooperating due to being stuck on an inaccessible NFS
share we would then attempt to read the files and get stuck too with
the VM object locked. All other APIs would eventually get stuck waiting
on the VM lock.
Avoid this problem by skipping the block stats if the VM is online but
the monitor did not provide any stats.
Fixed upstream:
commit 71d2c172edb997b ae1e883b2e1bafa 97d9f953a1
Author: Peter Krempa <email address hidden>
Date: Wed May 18 14:58:25 2016 +0200
qemu: bulk stats: Don't access possibly blocked storage
If the stats for a block device can't be acquired from qemu we've
fallen back to loading them from the file on the disk in libvirt.
If qemu is not cooperating due to being stuck on an inaccessible NFS
share we would then attempt to read the files and get stuck too with
the VM object locked. All other APIs would eventually get stuck waiting
on the VM lock.
Avoid this problem by skipping the block stats if the VM is online but
the monitor did not provide any stats.
Resolves: https:/ /bugzilla. redhat. com/show_ bug.cgi? id=1337073
commit 3aa5d51a9530a87 37ca584b393c292 97dd9bbc37
Author: Peter Krempa <email address hidden>
Date: Wed May 18 14:40:10 2016 +0200
qemu: driver: Separate bulk stats worker for block devices
Extract the fallback path that reloads the stats from disk into a
separate function.
commit 5d2b0e6f12b4e57 d75ed1047ab1c36 443b7a54b3
Author: Peter Krempa <email address hidden>
Date: Wed May 18 14:17:07 2016 +0200
qemu: driver: Remove unnecessary flag in qemuDomainGetSt atsBlock
'abbreviated' was true if 'stats' were NULL