[libvirt] [PATCH v2 00/24] scripts: convert most perl scripts to python
by Daniel P. Berrangé
This series is an effort to reduce the number of different
languages we use by eliminating most use of perl in favour
of python.
This aligns with fact that the likely future build system
we'll use (meson) is written in python, and that python
is much more commonly used/understood by developers these
days than perl.
With this applied we use perl in a handful of places only:
- src/rpc/gendispatch.pl - this is a horrendously large
script and very hard to understand/follow. A straight
syntax conversion to Python would still leave a hgue
and hard to understand/follow script. It really needs
a clean room rewrite from scratch, with better structure.
- src/rpc/genprotocol.pl - fairly easy to convert, but
might be obsolete depending on approach for rewriting
gendispatch.pl, so ignored for now
- tests/oomtrace.pl - will be purge by the patches that
drop OOM handling anyway
- tools/wireshark/util/genxdrstub.pl - a very large
script, which I haven't got the courage to tackle
yet.
- cfg.mk/maint.mk - many syntax rules involve regexes
which are fed to perl. Decision on what to do
with syntax-check rules punted to another time.
- build-aux/gitlog-to-changelog
- build-aux/useless-if-before-free - Both pulled in
from gnulib. Could be rewritten quite easily if
desired, but given that we aren't maintainers of
them right now, they're ignored as they don't
really impact our developers.
In v2:
- Pulled in patch to hacking file
- Converted many more scripts
- Forced UTF-8 character set to avoid ascii codec
on py3 < 3.7
Daniel P. Berrangé (24):
docs: document that C & Python are the preferred languages
cfg.mk: fix comment detection for python semicolon check
build: force a UTF-8 locale for python
build-aux: rewrite augest test generator in Python
build-aux: rewrite po file minimizer in Python
build-aux: rewrite duplicate header checker in Python
build-aux: rewrite whitespace checker in Python
build-aux: rewrite mock inline checker in Python
build-aux: rewrite header ifdef checker in Python
src: rewrite ACL permissions checker in Python
src: rewrite symfile sorting checker in Python
src: rewrite symfile library checker in Python
src: rewrite systemtap probe generator in Python
src: rewrite systemtap function generator in Python
src: rewrite driver name checker in Python
src: rewrite driver impl checker in Python
src: rewrite ACL rule checker in Python
src: rewrite polkit ACL generator in Python
src: rewrite remote protocol checker in Python
tests: rewrite test argv line wrapper in Python
tests: rewrite qemu capability grouper in Python
tests: rewrite file access checker in Python
docs: rewrite hvsupport.html page generator in python
docs: rewrite polkit docs generator in Python
Makefile.am | 14 +-
build-aux/augeas-gentest.pl | 60 ----
build-aux/augeas-gentest.py | 72 ++++
build-aux/check-spacing.pl | 198 ----------
build-aux/check-spacing.py | 204 +++++++++++
build-aux/header-ifdef.pl | 182 ----------
build-aux/header-ifdef.py | 206 +++++++++++
build-aux/minimize-po.pl | 37 --
build-aux/minimize-po.py | 60 ++++
build-aux/mock-noinline.pl | 75 ----
build-aux/mock-noinline.py | 88 +++++
build-aux/prohibit-duplicate-header.pl | 26 --
build-aux/prohibit-duplicate-header.py | 54 +++
cfg.mk | 32 +-
configure.ac | 8 +
docs/Makefile.am | 17 +-
docs/genaclperms.pl | 125 -------
docs/genaclperms.py | 122 +++++++
docs/hacking.html.in | 30 ++
docs/hvsupport.pl | 458 -----------------------
docs/hvsupport.py | 479 +++++++++++++++++++++++++
po/Makefile.am | 2 +-
src/Makefile.am | 156 +++-----
src/access/Makefile.inc.am | 6 +-
src/access/genpolkit.pl | 119 ------
src/access/genpolkit.py | 119 ++++++
src/bhyve/Makefile.inc.am | 4 +-
src/check-aclperms.pl | 73 ----
src/check-aclperms.py | 77 ++++
src/check-aclrules.pl | 252 -------------
src/check-aclrules.py | 244 +++++++++++++
src/check-driverimpls.pl | 80 -----
src/check-driverimpls.py | 96 +++++
src/check-drivername.pl | 83 -----
src/check-drivername.py | 112 ++++++
src/check-remote-protocol.py | 131 +++++++
src/check-symfile.pl | 70 ----
src/check-symfile.py | 80 +++++
src/check-symsorting.pl | 106 ------
src/check-symsorting.py | 112 ++++++
src/dtrace2systemtap.pl | 130 -------
src/dtrace2systemtap.py | 140 ++++++++
src/esx/Makefile.inc.am | 2 +-
src/hyperv/Makefile.inc.am | 2 +-
src/interface/Makefile.inc.am | 2 +-
src/libxl/Makefile.inc.am | 4 +-
src/locking/Makefile.inc.am | 6 +-
src/logging/Makefile.inc.am | 2 +-
src/lxc/Makefile.inc.am | 4 +-
src/network/Makefile.inc.am | 2 +-
src/node_device/Makefile.inc.am | 2 +-
src/nwfilter/Makefile.inc.am | 2 +-
src/qemu/Makefile.inc.am | 4 +-
src/remote/Makefile.inc.am | 4 +-
src/rpc/Makefile.inc.am | 2 +-
src/rpc/gensystemtap.pl | 193 ----------
src/rpc/gensystemtap.py | 174 +++++++++
src/secret/Makefile.inc.am | 2 +-
src/storage/Makefile.inc.am | 2 +-
src/util/Makefile.inc.am | 8 +-
src/vbox/Makefile.inc.am | 2 +-
src/vz/Makefile.inc.am | 2 +-
tests/Makefile.am | 4 +-
tests/check-file-access.pl | 126 -------
tests/check-file-access.py | 121 +++++++
tests/file_access_whitelist.txt | 2 +-
tests/group-qemu-caps.pl | 124 -------
tests/group-qemu-caps.py | 115 ++++++
tests/test-wrap-argv.pl | 174 ---------
tests/test-wrap-argv.py | 162 +++++++++
tests/testutils.c | 16 +-
71 files changed, 3132 insertions(+), 2872 deletions(-)
delete mode 100755 build-aux/augeas-gentest.pl
create mode 100755 build-aux/augeas-gentest.py
delete mode 100755 build-aux/check-spacing.pl
create mode 100755 build-aux/check-spacing.py
delete mode 100644 build-aux/header-ifdef.pl
create mode 100644 build-aux/header-ifdef.py
delete mode 100755 build-aux/minimize-po.pl
create mode 100755 build-aux/minimize-po.py
delete mode 100644 build-aux/mock-noinline.pl
create mode 100644 build-aux/mock-noinline.py
delete mode 100644 build-aux/prohibit-duplicate-header.pl
create mode 100644 build-aux/prohibit-duplicate-header.py
delete mode 100755 docs/genaclperms.pl
create mode 100755 docs/genaclperms.py
delete mode 100755 docs/hvsupport.pl
create mode 100755 docs/hvsupport.py
delete mode 100755 src/access/genpolkit.pl
create mode 100755 src/access/genpolkit.py
delete mode 100755 src/check-aclperms.pl
create mode 100755 src/check-aclperms.py
delete mode 100755 src/check-aclrules.pl
create mode 100755 src/check-aclrules.py
delete mode 100755 src/check-driverimpls.pl
create mode 100755 src/check-driverimpls.py
delete mode 100755 src/check-drivername.pl
create mode 100644 src/check-drivername.py
create mode 100644 src/check-remote-protocol.py
delete mode 100755 src/check-symfile.pl
create mode 100755 src/check-symfile.py
delete mode 100755 src/check-symsorting.pl
create mode 100755 src/check-symsorting.py
delete mode 100755 src/dtrace2systemtap.pl
create mode 100755 src/dtrace2systemtap.py
delete mode 100755 src/rpc/gensystemtap.pl
create mode 100755 src/rpc/gensystemtap.py
delete mode 100755 tests/check-file-access.pl
create mode 100755 tests/check-file-access.py
delete mode 100755 tests/group-qemu-caps.pl
create mode 100755 tests/group-qemu-caps.py
delete mode 100755 tests/test-wrap-argv.pl
create mode 100755 tests/test-wrap-argv.py
--
2.21.0
5 years
[libvirt] [PATCH v2 00/39] Introduce NVMe support
by Michal Privoznik
v2 of:
https://www.redhat.com/archives/libvir-list/2019-July/msg00675.html
As usual, you can find my patches on my github:
https://github.com/zippy2/libvirt/tree/nvme_v3
https://travis-ci.org/zippy2/libvirt/builds/590033775
(Yeah, my branch is really called _v3 because reasons)
diff to v1:
- A lot. Hopefully all Peter's comments are worked in
Michal Prívozník (39):
virhostdev: Fix const correctness of
virHostdevIs{PCINet,SCSI,Mdev}Device()
virhostdev: Introduce and use virHostdevIsVFIODevice
conf: Introduce virDomainDefHasMdevHostdev
qemu_hostdev: Introduce qemuHostdevNeedsVFIO()
qemu: Introduce qemuDomainNeedsVFIO
qemu_cgroup: Teardown Cgroup for more host device types
qemu: Explicitly add/remove /dev/vfio/vfio to/from NS/CGroups
qemu_domain: Drop few useless checks in qemuDomainGetHostdevPath
qemuDomainGetHostdevPath: Drop @freeTmpPath
qemuDomainGetHostdevPath: Use more VIR_AUTOFREE/VIR_AUTOPTR
qemuDomainGetHostdevPath: Don't include /dev/vfio/vfio in returned
paths
qemu: Drop some 'cleanup' labels
virpci: Introduce and use virPCIDeviceAddressGetIOMMUGroupDev
virHostdevPreparePCIDevices: Separate out function body
virHostdevReAttachPCIDevices: Separate out function body
virpci: Introduce virPCIDeviceAddressCopy
qemuMigrationSrcIsSafe: Rework slightly
schemas: Introduce disk type NVMe
conf: Format and parse NVMe type disk
virstoragefile: Introduce virStorageSourceChainHasNVMe
domain_conf: Introduce virDomainDefHasNVMeDisk
util: Introduce virNVMeDevice module
virhostdev: Include virNVMeDevice module
virpcimock: Introduce NVMe driver and devices
virhostdevtest: Test virNVMeDevice assignment
qemu: prepare NVMe devices too
qemu: Take NVMe disks into account when calculating memlock limit
qemu: Create NVMe disk in domain namespace
qemu: Mark NVMe disks as 'need VFIO'
qemu: Allow NVMe disk in CGroups
security_selinux: Simplify virSecuritySELinuxSetImageLabelInternal
virSecuritySELinuxRestoreImageLabelInt: Don't skip non-local storage
qemu_capabilities: Introduce QEMU_CAPS_DRIVE_NVME
qemu: Generate command line of NVMe disks
qemu_monitor_text: Catch IOMMU/VFIO related errors in
qemuMonitorTextAddDrive
qemu: Don't leak storage perms on failure in
qemuDomainAttachDiskGeneric
qemu: Allow forcing VFIO when computing memlock limit
qemu_hotplug: Prepare NVMe disks on hotplug
virsh: Introduce nvme disk to domblklist
docs/formatdomain.html.in | 57 ++-
docs/schemas/domaincommon.rng | 32 ++
src/conf/domain_conf.c | 129 ++++-
src/conf/domain_conf.h | 6 +
src/libvirt_private.syms | 30 ++
src/libxl/xen_xl.c | 1 +
src/qemu/qemu_block.c | 25 +
src/qemu/qemu_capabilities.c | 4 +
src/qemu/qemu_capabilities.h | 3 +
src/qemu/qemu_cgroup.c | 216 ++++++---
src/qemu/qemu_command.c | 6 +-
src/qemu/qemu_domain.c | 409 +++++++++-------
src/qemu/qemu_domain.h | 17 +-
src/qemu/qemu_driver.c | 4 +
src/qemu/qemu_hostdev.c | 80 ++-
src/qemu/qemu_hostdev.h | 18 +
src/qemu/qemu_hotplug.c | 39 +-
src/qemu/qemu_migration.c | 30 +-
src/qemu/qemu_monitor_text.c | 7 +
src/qemu/qemu_process.c | 7 +
src/security/security_apparmor.c | 33 +-
src/security/security_dac.c | 30 ++
src/security/security_selinux.c | 82 ++--
src/util/Makefile.inc.am | 2 +
src/util/virhostdev.c | 455 ++++++++++++++++--
src/util/virhostdev.h | 44 +-
src/util/virnvme.c | 454 +++++++++++++++++
src/util/virnvme.h | 95 ++++
src/util/virpci.c | 29 ++
src/util/virpci.h | 5 +
src/util/virstoragefile.c | 73 +++
src/util/virstoragefile.h | 19 +
.../caps_2.12.0.aarch64.xml | 1 +
.../caps_2.12.0.ppc64.xml | 1 +
.../caps_2.12.0.s390x.xml | 1 +
.../caps_2.12.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_3.0.0.ppc64.xml | 1 +
.../caps_3.0.0.riscv32.xml | 1 +
.../caps_3.0.0.riscv64.xml | 1 +
.../qemucapabilitiesdata/caps_3.0.0.s390x.xml | 1 +
.../caps_3.0.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_3.1.0.ppc64.xml | 1 +
.../caps_3.1.0.x86_64.xml | 1 +
.../caps_4.0.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.ppc64.xml | 1 +
.../caps_4.0.0.riscv32.xml | 1 +
.../caps_4.0.0.riscv64.xml | 1 +
.../qemucapabilitiesdata/caps_4.0.0.s390x.xml | 1 +
.../caps_4.0.0.x86_64.xml | 1 +
.../caps_4.1.0.x86_64.xml | 1 +
tests/qemumemlocktest.c | 2 +-
.../disk-nvme.x86_64-latest.args | 53 ++
tests/qemuxml2argvdata/disk-nvme.xml | 63 +++
tests/qemuxml2argvtest.c | 1 +
tests/qemuxml2xmloutdata/disk-nvme.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
tests/virhostdevtest.c | 97 ++++
tests/virpcimock.c | 3 +
tests/virpcitestdata/0000-01-00.0.config | Bin 0 -> 4096 bytes
tests/virpcitestdata/0000-02-00.0.config | Bin 0 -> 4096 bytes
tools/virsh-domain-monitor.c | 31 +-
61 files changed, 2330 insertions(+), 381 deletions(-)
create mode 100644 src/util/virnvme.c
create mode 100644 src/util/virnvme.h
create mode 100644 tests/qemuxml2argvdata/disk-nvme.x86_64-latest.args
create mode 100644 tests/qemuxml2argvdata/disk-nvme.xml
create mode 120000 tests/qemuxml2xmloutdata/disk-nvme.xml
create mode 100644 tests/virpcitestdata/0000-01-00.0.config
create mode 100644 tests/virpcitestdata/0000-02-00.0.config
--
2.21.0
5 years
[libvirt] [PATCH RFC 00/11] qemu: Introduce support for ARM CPU features
by Andrea Bolognani
This series is RFC because the corresponding QEMU patches[1] have
not been merged yet, and since QEMU is currently in the middle of
the 4.1.0 freeze we can't really expect to merge them until 5.7.0
anyway.
With that in mind, a few patches are somewhat independent of the
rest and could, after some minor tweaking, could go in even right
now: 1/11 is really a no brainer, and 3/11 - 5/11 are also fairly
reasonable candidates for that treatment.
[1] https://lists.nongnu.org/archive/html/qemu-devel/2019-06/msg04945.html
Andrea Bolognani (11):
tests: Update replies for QEMU 2.12.0 on aarch64
tests: Add replies for QEMU 4.1.0 on aarch64
qemu: Rename virQEMUCapsObjectPropsMaxX86CPU
qemu: Introduce QEMU_CAPS_ARM_MAX_CPU
qemu: Query max-arm-cpu properties
qemu: Update query-cpu-model-expansion check
qemu: Perform full expansion on ARM
cpu_map: Introduce ARM CPU features
cpu: Validate ARM CPU features
tests: Introduce tests for ARM CPU features
news: Update for ARM CPU features
docs/news.xml | 9 +
src/cpu/cpu_arm.c | 171 ++
src/cpu_map/arm_features.xml | 21 +
src/cpu_map/index.xml | 4 +
src/qemu/qemu_capabilities.c | 18 +-
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_command.c | 3 +-
.../caps_2.12.0.aarch64.replies | 324 ++-
.../caps_2.12.0.aarch64.xml | 5 +-
.../caps_4.0.0.aarch64.replies | 159 +-
.../caps_4.0.0.aarch64.xml | 1 +
...h64.replies => caps_4.1.0.aarch64.replies} | 2205 ++++++++++-------
...0.0.aarch64.xml => caps_4.1.0.aarch64.xml} | 53 +-
.../aarch64-features-sve.aarch64-latest.args | 32 +
.../qemuxml2argvdata/aarch64-features-sve.xml | 20 +
.../aarch64-features-wrong.xml | 17 +
tests/qemuxml2argvtest.c | 7 +
17 files changed, 2085 insertions(+), 965 deletions(-)
create mode 100644 src/cpu_map/arm_features.xml
copy tests/qemucapabilitiesdata/{caps_4.0.0.aarch64.replies => caps_4.1.0.aarch64.replies} (96%)
copy tests/qemucapabilitiesdata/{caps_4.0.0.aarch64.xml => caps_4.1.0.aarch64.xml} (80%)
create mode 100644 tests/qemuxml2argvdata/aarch64-features-sve.aarch64-latest.args
create mode 100644 tests/qemuxml2argvdata/aarch64-features-sve.xml
create mode 100644 tests/qemuxml2argvdata/aarch64-features-wrong.xml
--
2.21.0
5 years
[libvirt] [PATCH 0/9] support use of precreated tap devices from unprivileged libvirtd
by Laine Stump
This resolves https://bugzilla.redhat.com/1723367
It has become more popular to run libvirtd in an unprivileged
environment (e.g. inside a container), but until now the only possible
types of network connection for a qemu started by an unprivileged
libvirtd were:
1) a usermode slirp connection
2) a tap device connection to a bridge handled by running
qemu-bridge-helper (a suid-root utility distributed with qemu)
3) a host network card assigned to the guest using VFIO (this requires
special setup by a privileged process though)
This patch series remedies that by making it possible for libvirtd to
use a tap device that has been pre-created (*and* properly setup) by
some other process beforehand.
In order to use this, you must have a standard tap, or macvtap device
that has been set to be owned by the uid that will be running
libvirtd, has its MAC address already set, and has been set online
(IFF_UP). For example, here are the commands to create a standard tap
device named "mytap0", attach it to the host bridge device "br0" and
prepare it for use by a libvirtd that is running as user "laine":
ip tuntap add mode tap user laine group laine name mytap0
ip link set mytap0 up
ip link set mytap0 master br0
(You may want to set a specific MAC address for the tap device, but as
long as it *doesn't* match the MAC address used by the guest emulated
device, it really doesn't matter)
You can now add the following <interface> to a domain definition:
<interface type='ethernet'>
<model type='virtio'/>
<mac address='52:54:00:11:11:11'/>
<target dev='mytap0' managed='no'/>
</interface>
and start up the guest.
A similar set of commands to create a macvtap device named
"mymacvtap0" with MAC addres 52:54:00:11:11:11 connected to the host
device "en2" would be something like this:
ip link add link en2 name mymacvtap0 address 52:54:00:11:11:11 \
type macvtap mode bridge
ip link set mymacvtap0 up
The XML would be identical, except the name of the device
<interface type='ethernet'>
<model type='virtio'/>
<mac address='52:54:00:11:11:11'/>
<target dev='mymacvtap0' managed='no'/>
</interface>
(Note that in the case of macvtap, the precreated device must *match*
the MAC address of the emulated guest device).
If libvirtd is given a precreated device, that device will *not* be
explicitly deleted when qemu is finished with it - the caller must
take care of that.
Laine Stump (9):
util: new function virNetDevMacVLanIsMacvtap()
util: make a couple virNetDevMacVlan*() functions public
qemu: reorganize qemuInterfaceEthernetConnect()
conf: use virXMLFormatElement for interface <target>
conf: new "managed" attribute for target dev of <interface
type='ethernet'>
qemu: support unmanaged target tap dev for <interface type='ethernet'>
qemu: support unmanaged macvtap devices with <interface
type='ethernet'>
qemu: explicitly delete standard tap devices only on platforms that
require it
docs: update news file
docs/formatdomain.html.in | 48 +++++++---
docs/news.xml | 13 +++
docs/schemas/domaincommon.rng | 5 ++
src/conf/domain_conf.c | 55 +++++++++---
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 3 +
src/qemu/qemu_interface.c | 89 ++++++++++++-------
src/qemu/qemu_process.c | 6 +-
src/util/virnetdev.h | 2 +-
src/util/virnetdevmacvlan.c | 35 ++++++--
src/util/virnetdevmacvlan.h | 12 +++
.../net-eth-unmanaged-tap.args | 32 +++++++
.../net-eth-unmanaged-tap.xml | 35 ++++++++
tests/qemuxml2argvmock.c | 16 +++-
tests/qemuxml2argvtest.c | 1 +
.../net-eth-unmanaged-tap.xml | 40 +++++++++
tests/qemuxml2xmltest.c | 1 +
17 files changed, 329 insertions(+), 65 deletions(-)
create mode 100644 tests/qemuxml2argvdata/net-eth-unmanaged-tap.args
create mode 100644 tests/qemuxml2argvdata/net-eth-unmanaged-tap.xml
create mode 100644 tests/qemuxml2xmloutdata/net-eth-unmanaged-tap.xml
--
2.21.0
5 years
[libvirt] [PATCH 0/1] dirty-bitmaps: remove deprecated autoload parameter
by John Snow
I'm going to be honest, here. There's actually no real reason to remove
this now, but we could, so I'm going to.
Also, in terms of the API serving as documentation, it's nicer to not
pretend this is an option that does anything, so out it goes.
This will serve as a little smoke test to see what happens if we
actually stop dropping features we claimed were deprecated.
John Snow (1):
dirty-bitmaps: remove deprecated autoload parameter
qemu-deprecated.texi | 20 +++++++++++++++-----
qapi/block-core.json | 6 +-----
blockdev.c | 6 ------
3 files changed, 16 insertions(+), 16 deletions(-)
--
2.21.0
5 years
[libvirt] [PATCH 2/2] libvirt-rust Fix Stream::send
by Linus Färnstrand
* Handle the -2 error case
* Allow sending arbitrary byte array, not just UTF-8 strings
* Fix FFI declaration, takes size_t, not c_uint
* Return usize to be more idiomatic (type used for slice indexing)
Signed-off-by: Linus Färnstrand <faern(a)faern.net>
---
src/stream.rs | 21 ++++++++++-----------
1 file changed, 10 insertions(+), 11 deletions(-)
diff --git a/src/stream.rs b/src/stream.rs
index af6c8ec..2ca5d0b 100644
--- a/src/stream.rs
+++ b/src/stream.rs
@@ -34,7 +34,7 @@ pub mod sys {
extern "C" {
fn virStreamSend(c: sys::virStreamPtr,
data: *const libc::c_char,
- nbytes: libc::c_uint)
+ nbytes: libc::size_t)
-> libc::c_int;
fn virStreamRecv(c: sys::virStreamPtr,
data: *mut libc::c_char,
@@ -105,16 +105,15 @@ impl Stream {
}
}
- pub fn send(&self, data: &str) -> Result<u32, Error> {
- unsafe {
- let ret = virStreamSend(self.as_ptr(),
- string_to_c_chars!(data),
- data.len() as libc::c_uint);
- if ret == -1 {
- return Err(Error::new());
- }
- return Ok(ret as u32);
- }
+ pub fn send(&self, data: &[u8]) -> Result<usize, Error> {
+ let ret = unsafe {
+ virStreamSend(
+ self.as_ptr(),
+ data.as_ptr() as *mut libc::c_char,
+ data.len()
+ )
+ };
+ usize::try_from(ret).map_err(|_| Error::new())
}
pub fn recv(&self, buf: &mut [u8]) -> Result<usize, Error> {
--
2.21.0
5 years, 1 month
[libvirt] [PATCH 1/1] qemu_hotplug: use VIR_AUTOUNREF() with virConnectPtr
by Daniel Henrique Barboza
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
Checked other pointer types that can be autounref as well,
just found these instances.
src/qemu/qemu_hotplug.c | 22 ++++++++--------------
1 file changed, 8 insertions(+), 14 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index e9285f0964..4cab132901 100644
--- a/src/qemu/qemu_hotplug.c
+++ b/src/qemu/qemu_hotplug.c
@@ -1154,7 +1154,7 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
bool charDevPlugged = false;
bool netdevPlugged = false;
VIR_AUTOFREE(char *) netdev_name = NULL;
- virConnectPtr conn = NULL;
+ VIR_AUTOUNREF(virConnectPtr) conn = NULL;
virErrorPtr save_err = NULL;
/* preallocate new slot for device */
@@ -1497,7 +1497,6 @@ qemuDomainAttachNetDevice(virQEMUDriverPtr driver,
}
VIR_FREE(vhostfd);
VIR_FREE(vhostfdName);
- virObjectUnref(conn);
virDomainCCWAddressSetFree(ccwaddrs);
VIR_FORCE_CLOSE(slirpfd);
@@ -3475,7 +3474,7 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
bool needVlanUpdate = false;
int ret = -1;
int changeidx = -1;
- virConnectPtr conn = NULL;
+ VIR_AUTOUNREF(virConnectPtr) conn = NULL;
virErrorPtr save_err = NULL;
if ((changeidx = virDomainNetFindIdx(vm->def, newdev)) < 0)
@@ -3919,7 +3918,6 @@ qemuDomainChangeNet(virQEMUDriverPtr driver,
*/
if (newdev && newdev->type == VIR_DOMAIN_NET_TYPE_NETWORK && conn)
virDomainNetReleaseActualDevice(conn, vm->def, newdev);
- virObjectUnref(conn);
virErrorRestore(&save_err);
return ret;
@@ -4535,13 +4533,11 @@ qemuDomainRemoveHostDevice(virQEMUDriverPtr driver,
if (net) {
if (net->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
- virConnectPtr conn = virGetConnectNetwork();
- if (conn) {
+ VIR_AUTOUNREF(virConnectPtr) conn = virGetConnectNetwork();
+ if (conn)
virDomainNetReleaseActualDevice(conn, vm->def, net);
- virObjectUnref(conn);
- } else {
+ else
VIR_WARN("Unable to release network device '%s'", NULLSTR(net->ifname));
- }
}
virDomainNetDefFree(net);
}
@@ -4641,13 +4637,11 @@ qemuDomainRemoveNetDevice(virQEMUDriverPtr driver,
qemuDomainNetDeviceVportRemove(net);
if (net->type == VIR_DOMAIN_NET_TYPE_NETWORK) {
- virConnectPtr conn = virGetConnectNetwork();
- if (conn) {
+ VIR_AUTOUNREF(virConnectPtr) conn = virGetConnectNetwork();
+ if (conn)
virDomainNetReleaseActualDevice(conn, vm->def, net);
- virObjectUnref(conn);
- } else {
+ else
VIR_WARN("Unable to release network device '%s'", NULLSTR(net->ifname));
- }
}
virDomainNetDefFree(net);
return 0;
--
2.21.0
5 years, 1 month
[libvirt] [libvirt-rust PATCH 1/1] Make creating safe wrapper from raw pointer unsafe
by Linus Färnstrand
Giving an invalid pointer to the safe wrapper types causes
undefined behavior when methods are later called on said wrapper
Properly document safety contract of using unsafe constructor
---
src/connect.rs | 10 ++++++++--
src/domain.rs | 10 ++++++++--
src/domain_snapshot.rs | 10 ++++++++--
src/interface.rs | 10 ++++++++--
src/network.rs | 10 ++++++++--
src/nodedev.rs | 10 ++++++++--
src/nwfilter.rs | 10 ++++++++--
src/secret.rs | 10 ++++++++--
src/storage_pool.rs | 10 ++++++++--
src/storage_vol.rs | 10 ++++++++--
src/stream.rs | 8 +++++++-
11 files changed, 87 insertions(+), 21 deletions(-)
diff --git a/src/connect.rs b/src/connect.rs
index 108224d..7f02619 100644
--- a/src/connect.rs
+++ b/src/connect.rs
@@ -462,8 +462,14 @@ impl Connect {
self.ptr.unwrap()
}
- pub fn new(ptr: sys::virConnectPtr) -> Connect {
- return Connect { ptr: Some(ptr) };
+ /// Creates a new [Connect] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt connection object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virConnectPtr) -> Connect {
+ Connect { ptr: Some(ptr) }
}
pub fn get_version() -> Result<u32, Error> {
diff --git a/src/domain.rs b/src/domain.rs
index acb9e6e..0df95ee 100644
--- a/src/domain.rs
+++ b/src/domain.rs
@@ -628,8 +628,14 @@ impl Drop for Domain {
}
impl Domain {
- pub fn new(ptr: sys::virDomainPtr) -> Domain {
- return Domain { ptr: Some(ptr) };
+ /// Creates a new [Domain] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt domain object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virDomainPtr) -> Domain {
+ Domain { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virDomainPtr {
diff --git a/src/domain_snapshot.rs b/src/domain_snapshot.rs
index 86599ef..8b6c873 100644
--- a/src/domain_snapshot.rs
+++ b/src/domain_snapshot.rs
@@ -94,8 +94,14 @@ impl Drop for DomainSnapshot {
}
impl DomainSnapshot {
- pub fn new(ptr: sys::virDomainSnapshotPtr) -> DomainSnapshot {
- return DomainSnapshot { ptr: Some(ptr) };
+ /// Creates a new [DomainSnapshot] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt domain snapshot object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virDomainSnapshotPtr) -> DomainSnapshot {
+ DomainSnapshot { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virDomainSnapshotPtr {
diff --git a/src/interface.rs b/src/interface.rs
index 6fe8742..b06b641 100644
--- a/src/interface.rs
+++ b/src/interface.rs
@@ -81,8 +81,14 @@ impl Drop for Interface {
}
impl Interface {
- pub fn new(ptr: sys::virInterfacePtr) -> Interface {
- return Interface { ptr: Some(ptr) };
+ /// Creates a new [Interface] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt interface object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virInterfacePtr) -> Interface {
+ Interface { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virInterfacePtr {
diff --git a/src/network.rs b/src/network.rs
index ac8c042..bbe5539 100644
--- a/src/network.rs
+++ b/src/network.rs
@@ -117,8 +117,14 @@ impl Drop for Network {
}
impl Network {
- pub fn new(ptr: sys::virNetworkPtr) -> Network {
- return Network { ptr: Some(ptr) };
+ /// Creates a new [Network] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt network object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virNetworkPtr) -> Network {
+ Network { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virNetworkPtr {
diff --git a/src/nodedev.rs b/src/nodedev.rs
index c38c49e..2f36ea6 100644
--- a/src/nodedev.rs
+++ b/src/nodedev.rs
@@ -99,8 +99,14 @@ impl Drop for NodeDevice {
}
impl NodeDevice {
- pub fn new(ptr: sys::virNodeDevicePtr) -> NodeDevice {
- return NodeDevice { ptr: Some(ptr) };
+ /// Creates a new [NodeDevice] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt node device object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virNodeDevicePtr) -> NodeDevice {
+ NodeDevice { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virNodeDevicePtr {
diff --git a/src/nwfilter.rs b/src/nwfilter.rs
index bd9455d..84f440e 100644
--- a/src/nwfilter.rs
+++ b/src/nwfilter.rs
@@ -68,8 +68,14 @@ impl Drop for NWFilter {
}
impl NWFilter {
- pub fn new(ptr: sys::virNWFilterPtr) -> NWFilter {
- return NWFilter { ptr: Some(ptr) };
+ /// Creates a new [NWFilter] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt NWFilter object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virNWFilterPtr) -> NWFilter {
+ NWFilter { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virNWFilterPtr {
diff --git a/src/secret.rs b/src/secret.rs
index ba96b02..59a3f19 100644
--- a/src/secret.rs
+++ b/src/secret.rs
@@ -100,8 +100,14 @@ impl Drop for Secret {
}
impl Secret {
- pub fn new(ptr: sys::virSecretPtr) -> Secret {
- return Secret { ptr: Some(ptr) };
+ /// Creates a new [Secret] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt secret object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virSecretPtr) -> Secret {
+ Secret { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virSecretPtr {
diff --git a/src/storage_pool.rs b/src/storage_pool.rs
index 38676c2..b8d9feb 100644
--- a/src/storage_pool.rs
+++ b/src/storage_pool.rs
@@ -156,8 +156,14 @@ impl Drop for StoragePool {
}
impl StoragePool {
- pub fn new(ptr: sys::virStoragePoolPtr) -> StoragePool {
- return StoragePool { ptr: Some(ptr) };
+ /// Creates a new [StoragePool] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt storage pool object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virStoragePoolPtr) -> StoragePool {
+ StoragePool { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virStoragePoolPtr {
diff --git a/src/storage_vol.rs b/src/storage_vol.rs
index afc9b17..762c615 100644
--- a/src/storage_vol.rs
+++ b/src/storage_vol.rs
@@ -181,8 +181,14 @@ impl Drop for StorageVol {
}
impl StorageVol {
- pub fn new(ptr: sys::virStorageVolPtr) -> StorageVol {
- return StorageVol { ptr: Some(ptr) };
+ /// Creates a new [StorageVol] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt storage volume object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virStorageVolPtr) -> StorageVol {
+ StorageVol { ptr: Some(ptr) }
}
pub fn as_ptr(&self) -> sys::virStorageVolPtr {
diff --git a/src/stream.rs b/src/stream.rs
index 8333ee5..ff85bea 100644
--- a/src/stream.rs
+++ b/src/stream.rs
@@ -68,7 +68,13 @@ impl Drop for Stream {
}
impl Stream {
- pub fn new(ptr: sys::virStreamPtr) -> Stream {
+ /// Creates a new [Stream] from the given raw pointer.
+ ///
+ /// # Safety
+ ///
+ /// The pointer must point to a valid libvirt stream object.
+ /// The underlying object must be valid for the entire lifetime of the returned instance.
+ pub unsafe fn from_ptr(ptr: sys::virStreamPtr) -> Stream {
Stream { ptr: Some(ptr) }
}
--
2.21.0
5 years, 1 month
[libvirt] Fwd: libvirtd failing on MacOS in setgroups
by Marcus Furlong
Resend to libvir-list in case that is more appropriate:
Hi,
I get the following error when running libvirtd on MacOS as root:
2019-07-11 00:12:33.673+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-x86_64 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
As a result `virsh capabilities` as root returns nothing:
$ sudo virsh capabilities | grep qemu
<baselabel type='qemu'>+0:+0</baselabel>
whereas running as a regular user works fine:
$ virsh capabilites | grep qemu
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
<domain type='qemu'/>
and by extension, running VMs as regular user works fine via
qemu:///session , but qemu:///system does not work.
It seems like setgroups is failing:
https://github.com/libvirt/libvirt/blob/v5.5.0/src/util/virutil.c#L1045-L...
Is this the expected behaviour?
Full output below:
$ sudo libvirtd
2019-07-11 00:12:33.379+0000: 123145573953536: info : libvirt version: 5.5.0
2019-07-11 00:12:33.379+0000: 123145573953536: warning :
virProcessGetStartTime:1070 : Process start time of pid 49746 not
available on this platform
2019-07-11 00:12:33.379+0000: 123145573953536: error :
virSysinfoReadDMI:1172 : internal error: Failed to find path for
dmidecode binary
2019-07-11 00:12:33.380+0000: 123145573953536: error :
virFileFindHugeTLBFS:3734 : this function is not supported by the
connection driver: virFileFindHugeTLBFS
2019-07-11 00:12:33.382+0000: 123145573953536: warning :
virQEMUCapsInit:919 : Failed to get host CPU cache info
2019-07-11 00:12:33.401+0000: 123145573953536: error :
virHostCPUGetTscInfo:1405 : Probing TSC is not supported on this
platform: Function not implemented
2019-07-11 00:12:33.401+0000: 123145573953536: error : virExec:521 :
Cannot find 'pm-is-supported' in path: No such file or directory
2019-07-11 00:12:33.401+0000: 123145573953536: warning :
virQEMUCapsInit:926 : Failed to get host power management capabilities
2019-07-11 00:12:33.401+0000: 123145573953536: error :
virNumaGetPages:988 : Operation not supported: page info is not
supported on this platform
2019-07-11 00:12:33.401+0000: 123145573953536: warning :
virQEMUCapsInit:933 : Failed to get pages info
2019-07-11 00:12:33.407+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-alpha for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.407+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-alpha: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-alpha for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.413+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-arm for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.413+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-arm: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-arm for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.419+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-arm for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.419+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-arm: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-arm for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.424+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-aarch64 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.424+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-aarch64: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-aarch64 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.431+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-cris for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.431+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-cris: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-cris for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.437+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-i386 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.437+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-i386: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-i386 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.443+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-lm32 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.443+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-lm32: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-lm32 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.449+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-m68k for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.449+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-m68k: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-m68k for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.497+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-microblaze for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.497+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-microblaze: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-microblaze for probing:
libvirt: error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.503+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-microblazeel for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.503+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-microblazeel: internal error: Failed to
start QEMU binary /usr/local/bin/qemu-system-microblazeel for probing:
libvirt: error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.509+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-mips for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.509+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-mips: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-mips for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.515+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-mipsel for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.515+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-mipsel: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-mipsel for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.521+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-mips64 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.521+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-mips64: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-mips64 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.527+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-mips64el for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.527+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-mips64el: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-mips64el for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.533+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-ppc for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.533+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-ppc: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-ppc for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.571+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-ppc64 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.571+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-ppc64: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-ppc64 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.576+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-ppc64 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.576+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-ppc64: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-ppc64 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.582+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-riscv32 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.582+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-riscv32: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-riscv32 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.588+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-riscv64 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.588+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-riscv64: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-riscv64 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.594+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-s390x for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.594+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-s390x: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-s390x for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.600+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sh4 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.600+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-sh4: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sh4 for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.605+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sh4eb for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.605+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-sh4eb: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sh4eb for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.612+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sparc for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.612+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-sparc: internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sparc for probing: libvirt: error :
cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.619+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-sparc64 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.619+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-sparc64: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-sparc64 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.667+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-unicore32 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.667+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-unicore32: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-unicore32 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.673+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-x86_64 for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.673+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-x86_64: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-x86_64 for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.679+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-xtensa for probing: libvirt: error
: cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.679+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-xtensa: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-xtensa for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.685+0000: 123145573953536: error :
qemuProcessQMPLaunch:8501 : internal error: Failed to start QEMU
binary /usr/local/bin/qemu-system-xtensaeb for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
2019-07-11 00:12:33.685+0000: 123145573953536: warning :
virQEMUCapsLogProbeFailure:4578 : Failed to probe capabilities for
/usr/local/bin/qemu-system-xtensaeb: internal error: Failed to start
QEMU binary /usr/local/bin/qemu-system-xtensaeb for probing: libvirt:
error : cannot set supplemental groups: Invalid argument
--
Marcus Furlong
5 years, 1 month