• D
    qemu: fixing auto-detecting binary in domain capabilities · 6d786f95
    Daniel P. Berrangé 提交于
    The virConnectGetDomainCapabilities API accepts either a binary path
    to the emulator, or desired guest arch. If guest arch is not given,
    then the host arch is assumed.
    
    In the case where the binary is not given, the code tried to find the
    emulator binary in the existing list of cached emulator capabilities.
    This is not valid since we switched to lazy population of the cache in:
    
      commit 3dd91af0
      Author: Daniel P. Berrangé <berrange@redhat.com>
      Date:   Mon Dec 2 13:04:26 2019 +0000
    
        qemu: stop creating capabilities at driver startup
    
    As a result of this change, if there are no persistent guests defined
    using the requested guest architecture, virConnectGetDomainCapabilities
    will fail to find an emulator binary.
    
    The solution is to stop relying on the cached capabilities to find the
    binary and instead use the same logic we use to pick default a binary
    per arch when populating capabilities.
    Tested-by: NBoris Fiuczynski <fiuczy@linux.ibm.com>
    Tested-by: NRichard W.M. Jones <rjones@redhat.com>
    Reviewed-by: NMichal Privoznik <mprivozn@redhat.com>
    Signed-off-by: NDaniel P. Berrangé <berrange@redhat.com>
    6d786f95
qemu_capabilities.c 180.9 KB