It's fairly easy to reproduce the bug (see its description in 3/3). Just
put a sleep here:
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index b62dd1df52..eeae967420 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -1399,6 +1399,7 @@ virQEMUDriverGetDomainCapabilities(virQEMUDriverPtr driver,
key = g_strdup_printf("%d:%d:%s:%s", data.arch, data.virttype,
NULLSTR(data.machine), NULLSTR(data.path));
+ sleep(5);
if (virHashAddEntry(domCapsCache, key, domCaps) < 0)
return NULL;
}
And then try to get domcaps from two consoles at once:
virsh domcapabilities
One will succeed, the other will fail with an error.
Michal Prívozník (3):
cpu.c: Check properly for virCapabilitiesGetNodeInfo() retval
qemu_conf: Avoid dereferencing NULL in
virQEMUDriverGetHost{NUMACaps,CPU}
qemu_capabilities: Reword domain caps cache
src/cpu/cpu.c | 2 +-
src/qemu/qemu_capabilities.c | 118 +++++++++++++++++++++++++++++++++--
src/qemu/qemu_capabilities.h | 14 ++++-
src/qemu/qemu_conf.c | 86 +++++++++----------------
4 files changed, 155 insertions(+), 65 deletions(-)
--
2.24.1