Added SRU Template in anticipation of the MP review
** Description changed:
+ [Impact]
+
+ * If one defines guest channels manually (xml) or via tools like virt-
+ manager (there it defaults to add channels for some distros), then
+ starting the guest fails.
+ There are two reason:
+ 1. by default the base dir for the channels doesn't exists so the
+ open fails
+ 2. further virt-aa-helper does not create a matchign rule to allow
+ access, so apparmor blocks
+
+ * In latter versions the paths are slightly different (better namespaced
+ by guest name), but still similar. So this still can be considered
+ backporting the virt-aa-helper change, and making sure the base dir
+ exists (only needed in this old release) is a postinst change.
+
+ [Test Case]
+
+ * Create a libvirt based KVM guest on Artful the way you prefer
+ * Add a guest channel to it by adding a snippet like:
+ <channel type='unix'>
+ <source mode='bind' />
+ <target type='virtio' name='org.qemu.guest_agent.0'/>
+ </channel>
+ * Start the guest via e.g. virsh
+ * Without the fix this fails, you'll see in strace a failed call to open
+ the channel, but even if e.g. dirs are created then apparmor will block
+ the access.
+ * With the fix installed the guest starts correctly
+
+ [Regression Potential]
+
+ * The patch is a backport and only a slight change to code that is used
+ quite some time (paths were different in Trusty). In any case it is
+ "adding" one more rule to open up apparmor. It should functionally not
+ regress by that, if anything one could consider it security risk, but
+ due to the guestname-namespacing in the rule now generated this shoudl
+ be safe - see the tail of comment #58 for some considerations on that.
+
+ * The postinst change only runs if the dir is not existing, which should
+ ensure that no former unexpected setup makes the postinst fail
+
+ [Other Info]
+
+ * Tests on the issue itself look good based on a ppa, see comment #59
+
+
+ ----
+
+
=======================================
1. Impact: cannot create a default RHEL7 vm in virt-manager
2. fix: allow use of qemu-guest-agent channel
3. test case: see in description below. Create a VM in virt-manager
specifying
- Linux os and RHEL7.
+ Linux os and RHEL7.
4. Regression potential: there should be none. We are only adding an
apparmor permission for unix sockets which libvirt creates when needed
for kvm vms.
=======================================
Create a new VM, choose Linux for OS type and Red Hat Enterprise Linux 7
(or later) for Version. Proceed through the wizard leaving all other
options unchanged. On clicking Finish, the following error is displayed:
Unable to complete install: 'internal error: process exited while connecting
to monitor: 2014-11-18T16:00:11.802430Z qemu-system-x86_64: -chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/rhel7.org.qemu.guest_agent.0,server,nowait:
Failed to bind socket: No such file or directory
2014-11-18T16:00:11.802483Z qemu-system-x86_64: -chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/rhel7.org.qemu.guest_agent.0,server,nowait:
chardev: opening backend "socket" failed
'
Traceback (most recent call last):
File "/usr/share/virt-manager/virtManager/asyncjob.py", line 91, in
cb_wrapper
callback(asyncjob, *args, **kwargs)
File "/usr/share/virt-manager/virtManager/create.py", line 1820, in
do_install
guest.start_install(meter=meter)
File "/usr/share/virt-manager/virtinst/guest.py", line 403, in start_install
noboot)
File "/usr/share/virt-manager/virtinst/guest.py", line 467, in _create_guest
dom = self.conn.createLinux(start_xml or final_xml, 0)
File "/usr/lib/python2.7/dist-packages/libvirt.py", line 3398, in
createLinux
if ret is None:raise libvirtError('virDomainCreateLinux() failed',
conn=self)
libvirtError: internal error: process exited while connecting to monitor:
2014-11-18T16:00:11.802430Z qemu-system-x86_64: -chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/rhel7.org.qemu.guest_agent.0,server,nowait:
Failed to bind socket: No such file or directory
2014-11-18T16:00:11.802483Z qemu-system-x86_64: -chardev
socket,id=charchannel0,path=/var/lib/libvirt/qemu/channel/target/rhel7.org.qemu.guest_agent.0,server,nowait:
chardev: opening backend "socket" failed
ProblemType: Bug
DistroRelease: Ubuntu 14.10
Package: virt-manager 1:1.0.1-0ubuntu2
ProcVersionSignature: Ubuntu 3.16.0-24.32-generic 3.16.4
Uname: Linux 3.16.0-24-generic x86_64
ApportVersion: 2.14.7-0ubuntu8
Architecture: amd64
CurrentDesktop: KDE
Date: Tue Nov 18 15:55:59 2014
EcryptfsInUse: Yes
InstallationDate: Installed on 2014-11-07 (11 days ago)
InstallationMedia: Kubuntu 14.10 "Utopic Unicorn" - Release amd64 (20141022.1)
PackageArchitecture: all
SourcePackage: virt-manager
UpgradeStatus: No upgrade log present (probably fresh install)
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1393842
Title:
libvirt does not grant qemu-guest-agent channel perms
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/libvirt/+bug/1393842/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs