Skip to content

Latest qemu-guest-agent 9.1 RPM does not work due to change in expected paremeters #15843

@Travisivart

Description

@Travisivart

Describe the bug
The latest qemu-guest-agent RPM includes an invalid systemd config

in particular, this RPM: https://packages.microsoft.com/azurelinux/3.0/prod/base/x86_64/Packages/q/qemu-guest-agent-9.1.0-1.azl3.x86_64.rpm

The previous 8.2 versions all work as expected because the --blacklist parameter is valid.

To Reproduce
Steps to reproduce the behavior:
Install the latest qemu-guest-agent and attempt to start the service. It fails due to the --blacklist parameter no longer being valid for qemu 9.1. It was a deprecated value and has now been entirely removed and replaced by --block-rpcs

Expected behavior
qemu-guest-agent should run as expected

Screenshots

root@cluster-test100a-control-plane-rjgd8 [ /usr/lib/systemd ]# cat /usr/lib/systemd/system/qemu-guest-agent.service
[Unit]
Description=QEMU Guest Agent
BindsTo=dev-virtio\x2dports-org.qemu.guest_agent.0.device
After=dev-virtio\x2dports-org.qemu.guest_agent.0.device
IgnoreOnIsolate=True

[Service]
UMask=0077
EnvironmentFile=/etc/sysconfig/qemu-ga
ExecStart=/usr/bin/qemu-ga \
  --method=virtio-serial \
  --path=/dev/virtio-ports/org.qemu.guest_agent.0 \
  --blacklist=${BLACKLIST_RPC} \
  -F${FSFREEZE_HOOK_PATHNAME}
Restart=always
RestartSec=0

[Install]
WantedBy=dev-virtio\x2dports-org.qemu.guest_agent.0.device


root@cluster-test100a-control-plane-rjgd8 [ /usr/lib/systemd ]# qemu-ga --help
Usage: qemu-ga [-m <method> -p <path>] [<options>]
QEMU Guest Agent 9.1.0 (qemu-9.1.0-1.azl3)
Copyright (c) 2003-2024 Fabrice Bellard and the QEMU Project developers

  -c, --config=PATH configuration file path (default is
                    /etc/qemu/qemu-ga.conf/qemu-ga.conf
                    unless overridden by the QGA_CONF environment variable)
  -m, --method      transport method: one of unix-listen, virtio-serial,
                    isa-serial, or vsock-listen (virtio-serial is the default)
  -p, --path        device/socket path (the default for virtio-serial is:
                    /dev/virtio-ports/org.qemu.guest_agent.0,
                    the default for isa-serial is:
                    /dev/ttyS0).
                    Socket addresses for vsock-listen are written as
                    <cid>:<port>.
  -l, --logfile     set logfile path, logs to stderr by default
  -f, --pidfile     specify pidfile (default is /var/run/qemu-ga.pid)
  -F, --fsfreeze-hook
                    enable fsfreeze hook. Accepts an optional argument that
                    specifies script to run on freeze/thaw. Script will be
                    called with 'freeze'/'thaw' arguments accordingly.
                    (default is /etc/qemu/fsfreeze-hook)
                    If using -F with an argument, do not follow -F with a
                    space.
                    (for example: -F/var/run/fsfreezehook.sh)
  -t, --statedir    specify dir to store state information (absolute paths
                    only, default is /var/run)
  -v, --verbose     log extra debugging information
  -V, --version     print version information and exit
  -d, --daemonize   become a daemon
  -b, --block-rpcs  comma-separated list of RPCs to disable (no spaces,
                    use "--block-rpcs=help" to list available RPCs)
  -a, --allow-rpcs  comma-separated list of RPCs to enable (no spaces,
                    use "--allow-rpcs=help" to list available RPCs)
  -D, --dump-conf   dump a qemu-ga config file based on current config
                    options / command-line parameters to stdout
  -r, --retry-path  attempt re-opening path if it's unavailable or closed
                    due to an error which may be recoverable in the future
                    (virtio-serial driver re-install, serial device hot
                    plug/unplug, etc.)
  -h, --help        display this help and exit

See <https://qemu.org/contribute/report-a-bug> for how to report bugs.
More information on the QEMU project at <https://qemu.org>.


root@cluster-test100a-control-plane-rjgd8 [ /usr/lib/systemd ]# qemu-ga --blacklist
qemu-ga: unrecognized option '--blacklist'
qemu-ga: unrecognized option '--blacklist'
Unknown option, try 'qemu-ga --help' for more information.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions