fsfreeze-hook script is misplaced in qemu-guest-agent
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
qemu (Ubuntu) |
Fix Released
|
Undecided
|
Unassigned | ||
Bionic |
Fix Released
|
Undecided
|
Unassigned | ||
Cosmic |
Fix Released
|
Undecided
|
Unassigned |
Bug Description
[Impact]
* The feature of qemu-guest agent to run freeze hooks is used rarely but
where used important to get data consistency right. Due to a path error
when packaging the script (from upstream) it is currently not working
at all (it calls a non existing path and even if you'd use the current
path it would fail to find the potential drop-ins in its .d directory).
* Without the fix users need to fix up things manually, but with it this
would finally "just work". So move it to the place qemu-guest-agent
expects the script.
[Test Case]
* 1. check the systemd service that no options are set (the default)
/
It will look like:
2. without options set at #1 it will look for the script at the path:
/
=> check that the executable script is at that path
Before fix: it is a directory of the same name with the file in it
After fix: location of the file is now as expected
Extended test (optional):
If you set up qemu guest agent [1] then you can drop executable snippets
in /etc/qemu/
Those have to be executed when you trigger them from the host e.g. via
$ virsh domfsfreeze <domainname>
[1]: https:/
[Regression Potential]
* If users have manually fixed this up in unexpected ways then placing it
at the correct place might affect their fixup. Chances are high that
they will then see at least a conffile prompt (chosen the new path) or
that the fixup code in the maintainer scripts will take an early exit
(old path not existing) - both cases are safe.
In general qemu-guest-agent is rarely used and even if it is, then
freeze hooks again only affect a sub-portion of these users. For those
it is important to work, but even if it would be broken it will not
affect a major share of our overall qemu users and use-cases.
[Other Info]
* The fact that the new and required path of the file is in the old
version a directory breaks some requirements of mv_conffile and makes
this slightly more complex than one would think at first.
---
The fsfreeze-hook in the package is installed on the path /etc/qemu/
This means that to make it work, I had to:
- add "-F/etc/
- create a symlink /etc/qemu/
To fix this I propose to either move the fsfreeze-hook to /etc/qemu/
Related branches
- Christian Ehrhardt : Approve
- Canonical Server: Pending requested
-
Diff: 221 lines (+183/-1)5 files modifieddebian/changelog (+5/-0)
debian/qemu-guest-agent.install (+1/-1)
debian/qemu-guest-agent.postinst (+59/-0)
debian/qemu-guest-agent.postrm (+56/-0)
debian/qemu-guest-agent.preinst (+62/-0)
- Christian Ehrhardt : Approve
- Canonical Server: Pending requested
-
Diff: 223 lines (+188/-1)5 files modifieddebian/changelog (+10/-0)
debian/qemu-guest-agent.install (+1/-1)
debian/qemu-guest-agent.postinst (+59/-0)
debian/qemu-guest-agent.postrm (+56/-0)
debian/qemu-guest-agent.preinst (+62/-0)
- Robie Basak (community): Approve
- Andreas Hasenack (community): Abstain
- Ubuntu Virtualisation team: Pending requested
-
Diff: 279 lines (+227/-1)7 files modifieddebian/changelog (+14/-0)
debian/patches/i2c-ddc-fix-oob-read-CVE-2019-3812.patch (+34/-0)
debian/patches/series (+1/-0)
debian/qemu-guest-agent.install (+1/-1)
debian/qemu-guest-agent.postinst (+59/-0)
debian/qemu-guest-agent.postrm (+56/-0)
debian/qemu-guest-agent.preinst (+62/-0)
description: | updated |
Thanks a lot for that bug report Pierre.
You are right and we want to solve that before Disco is released to not have to mess around too much with confile moving around between releases. (The rules are relaxed for not yet released Ubuntu releases and in this case it makes sense - usage will be very low and the file is usually unmodified).
Let me prep something ...