[PATCH 03/24] qemu: Move creation and opening of chardev backend FDs to host prepare step

Michal Prívozník mprivozn at redhat.com
Mon Dec 13 10:05:37 UTC 2021


On 12/9/21 13:30, Peter Krempa wrote:
> The opening of files for FD passing for a chardev backend was
> historically done in the function which is formatting the commandline.
> 
> This has multiple problems. Firstly the function takes a lot of
> parameters which need to be passed through the commandline formatters.
> This made the 'qemuBuildChrChardevStr' extremely unappealing to the
> extent that we have multiple other custom formatters in places which
> didn't really want to use the function.
> 
> Additionally the function is also creating files in the host in certain
> configurations which is wrong for a commandline formatter to do. This
> meant that e.g. not all chardev test cases can be converted to use
> DO_TEST_CAPS_LATEST as we attempt to use such code path and attempt to
> create files outside of the test directory.
> 
> This patch moves the opening of the filedescriptors from
> 'qemuBuildChrChardevFileStr' into a new helper
> 'qemuProcessPrepareHostBackendChardevOne' which is called using
> 'qemuDomainDeviceBackendChardevForeach'.
> 
> To preserve test behaviour we also have another instance
> 'testPrepareHostBackendChardevOne' which is populating mock
> filedescriptors.
> 
> Signed-off-by: Peter Krempa <pkrempa at redhat.com>
> ---
>  src/qemu/qemu_command.c  | 160 +++++++++------------------
>  src/qemu/qemu_domain.c   |   6 +
>  src/qemu/qemu_domain.h   |   3 +
>  src/qemu/qemu_process.c  | 229 ++++++++++++++++++++++++++++++++++-----
>  tests/qemuxml2argvtest.c |  79 ++++++++++++++
>  5 files changed, 338 insertions(+), 139 deletions(-)


libvirt.git $ git bisect bad
ff024b60cc39d5d41b1e68728a00a47e103ec4dd is the first bad commit


virsh # start fedora
error: Failed to start domain 'fedora'
error: Unable to bind to UNIX socket path '/var/lib/libvirt/qemu/channel/target/domain-2-fedora/org.qemu.guest_agent.0': No such file or directory


I don't have capacity to debug right now, but maybe I'll have later
today.

Michal




More information about the libvir-list mailing list