libvirtd: failed to connect to socket after installation
by Carlos Bilbao
Hello,
I am trying to test some changes made to libvirt. I tried compiling and
installing, following the available documentation, with:
ninja -C build clean
meson build --prefix=$HOME/usr
ninja -C build -Dsystem=true
sudo ninja -C build install
After doing this, I try to run virt-install and get the following error on
the active libvirtd daemon:
Failed to connect socket to '/var/local/run/libvirt/virtqemud-sock': No
such file or directory
Indeed, that file does not exist:
$ ls /var/local/run/libvirt/
common hostdevmgr lockd lxc network nwfilter nwfilter-binding
secrets storage
virt-install was working fine before started changing libvirt's source code.
I'm working with Ubuntu 22.04 LTS, virsh v8.7.0.
I would appreciate any directions on how to fix this/successfully install
libvirt.
Thanks in advance.
Carlos
2 years, 7 months
[PATCH 0/6] Fix double free in URI alias lookup and fix misleading error with libvirtd
by Peter Krempa
When libvirtd is built without a driver we report a terrible error
message which doesn't really point to what's happening.
Peter Krempa (6):
virConnectOpenInternal: Avoid double free() when alias is an invalid
URI
virConnectOpenInternal: Switch to automatic memory cleanup
virConnectOpenInternal: Remove 'failed' label
remote: remoteOpenConn: Use virConnectOpenAuth instead of
virConnectOpen(ReadOnly)
Introduce VIR_CONNECT_NO_REMOTE
remote: Don't attempt remote connection from libvirtd
include/libvirt/libvirt-host.h | 2 +
src/libvirt.c | 98 ++++++++++++++---------------
src/remote/remote_daemon_dispatch.c | 15 +++--
3 files changed, 62 insertions(+), 53 deletions(-)
--
2.37.1
2 years, 7 months
[PATCH 0/5] Various cleanups to decrease amount of stack allocated buffers
by Peter Krempa
The common theme is the attempt to decrease the use of stack allocated
buffers. In few cases it's coupled with outher cleanups too.
Most patches are standalone and can be individually applied. The last
patch is also optional but can be applied only if the fixes before that
are applied too.
Peter Krempa (5):
lxc: virLXCProcessReadLogOutput: Automatically close FD
lxc: process: Rework reading errors from the log file
util: netdev: Dynamically allocate 'struct nlattr' in
virNetDevSwitchdevFeature
remote: dispatch: Allocate 'virDomainDef' in ACL helpers dynamically
build: Decrease maximum stack frame size to 2048
meson.build | 2 +-
src/lxc/lxc_process.c | 100 ++++++++++++++++------------
src/remote/remote_daemon_dispatch.c | 17 +++--
src/util/virnetdev.c | 2 +-
4 files changed, 66 insertions(+), 55 deletions(-)
--
2.37.1
2 years, 7 months
[PATCH 0/8] qemu: Fix regression with non-shared storage migration and clean out more dead code
by Peter Krempa
Patch 1 fixes regression caused by improper refactor from the
pre-blockdev removal series. The rest are cleanups noticed while
investigating the code.
Peter Krempa (8):
qemu: migration: Fix setup of non-shared storage migration in
qemuMigrationSrcBeginPhase
NEWS: Mention that non-shared storage migration was broken in
libvirt-8.7
qemu: migration: Always assume support for QEMU_CAPS_NBD_SERVER
qemu: capabilities: Retire QEMU_CAPS_NBD_SERVER
qemu: migration: Don't attempt to fall back to old-style storage
migration
qemu: monitor: Drop support for old-style non-shared storage migration
qemu: migration: Remove QEMU_MONITOR_MIGRATE_BACKGROUND
qemu: monitor: Renumber QEMU_MONITOR_MIGRATE_RESUME
NEWS.rst | 6 ++
src/qemu/qemu_capabilities.c | 3 +-
src/qemu/qemu_capabilities.h | 2 +-
src/qemu/qemu_migration.c | 78 ++++++++-----------
src/qemu/qemu_monitor.h | 5 +-
src/qemu/qemu_monitor_json.c | 7 +-
.../caps_4.2.0.aarch64.xml | 1 -
.../qemucapabilitiesdata/caps_4.2.0.ppc64.xml | 1 -
.../qemucapabilitiesdata/caps_4.2.0.s390x.xml | 1 -
.../caps_4.2.0.x86_64.xml | 1 -
.../caps_5.0.0.aarch64.xml | 1 -
.../qemucapabilitiesdata/caps_5.0.0.ppc64.xml | 1 -
.../caps_5.0.0.riscv64.xml | 1 -
.../caps_5.0.0.x86_64.xml | 1 -
.../qemucapabilitiesdata/caps_5.1.0.sparc.xml | 1 -
.../caps_5.1.0.x86_64.xml | 1 -
.../caps_5.2.0.aarch64.xml | 1 -
.../qemucapabilitiesdata/caps_5.2.0.ppc64.xml | 1 -
.../caps_5.2.0.riscv64.xml | 1 -
.../qemucapabilitiesdata/caps_5.2.0.s390x.xml | 1 -
.../caps_5.2.0.x86_64.xml | 1 -
.../caps_6.0.0.aarch64.xml | 1 -
.../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 -
.../caps_6.0.0.x86_64.xml | 1 -
.../caps_6.1.0.x86_64.xml | 1 -
.../caps_6.2.0.aarch64.xml | 1 -
.../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 -
.../caps_6.2.0.x86_64.xml | 1 -
.../caps_7.0.0.aarch64.xml | 1 -
.../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 1 -
.../caps_7.0.0.x86_64.xml | 1 -
.../caps_7.1.0.x86_64.xml | 1 -
tests/qemumonitorjsontest.c | 4 +-
33 files changed, 42 insertions(+), 89 deletions(-)
--
2.37.1
2 years, 7 months
Internal disk-only snapshots in qemu domain
by Or Ozeri
Hi,
We are considering the following use-case of libvirt's domain snapshot (and revert) feature:
1. Domain is qemu
2. Snapshot type is disk-only (VIR_DOMAIN_SNAPSHOT_CREATE_DISK_ONLY)
3. Snapshot location is internal (VIR_DOMAIN_SNAPSHOT_LOCATION_INTERNAL)
4. All of the VM disks are:
* Network type (VIR_STORAGE_TYPE_NETWORK)
* RBD protocol (VIR_STORAGE_NET_PROTOCOL_RBD)
* Raw format (VIR_STORAGE_FILE_RAW)
5. VM can be either active or inactive
We want to extend libvirt to support this use-case.
Consider the following changes:
1. For the inactive VM case, libvirt currently calls "qemu-img snapshot" for taking a snapshot, as well as reverting (adding "-a" to qemu-img).
The same would also work for our-use case, as basically the same qemu-img command would work for RBD disks as well (using rbd:poolname/imagename as the filename).
So basically we need to reuse code from qemuDomainSnapshotForEachQcow2Raw.
2. For the active VM case, we can re-use code from qemuDomainSnapshotCreateActiveExternal, but call qemu's "snapshot_blkdev_internal" instead of the current "snapshot_blkdev".
This would work for RBD disks, but more generally for any qemu block driver which implements "bdrv_snapshot_create".
BTW it seems to me that if you try to take an internal snapshot of just the disks, you will actually get an external snapshot? Or is there some place in the code which validates and fails this case?
Anyhow, I would really appreciate any feedback or thoughts.
Thanks,
Or
2 years, 7 months
kvm ram in live migratiom
by Ignazio Cassano
Hello, I am using openstack rdo with kvm libvirt.
Live migration is very slow when the vm is using ram intensively. If I
migrate a vm that has been running on a host for a few days, it takes
several minutes to migrate the memory. After the first migration, I
immediately try another one on the same vm, it takes very little. I think
it's due to the fragmentation of the pages: is there any remedy?
Thanks
Ignazio
2 years, 7 months
[PATCH] Revert "conf: clean up memory containing secrets before freeing"
by Peter Krempa
Adding supposedly secure cleanup for secrets in anything related to the
XML parser is pointless because there are multiple other un-sanitized
copies of the full XML and the XML parser state at the very least.
Similarly in case RPC was used to transport the XML the RPC buffers are
not sanitized.
Additionally this patch was incomplete as it didn't sanitize the the
password in the cleanup function for virDomainGraphicsAuthDef.
This reverts commit 51f8130d78fde3201b49c02b7095ff918b6e658a.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/domain_conf.c | 2 --
1 file changed, 2 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 3d1bf18c6c..406c348a00 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -60,7 +60,6 @@
#include "virdomainsnapshotobjlist.h"
#include "virdomaincheckpointobjlist.h"
#include "virutil.h"
-#include "virsecureerase.h"
#include "virdomainjob.h"
#define VIR_FROM_THIS VIR_FROM_DOMAIN
@@ -10862,7 +10861,6 @@ virDomainGraphicsAuthDefParseXML(xmlNodePtr node,
virReportError(VIR_ERR_INTERNAL_ERROR,
_("cannot parse password validity time '%s', expect YYYY-MM-DDTHH:MM:SS"),
validTo);
- virSecureEraseString(def->passwd);
VIR_FREE(def->passwd);
return -1;
}
--
2.37.1
2 years, 7 months
[PATCH 0/3] Fix some coding issues
by Jiacheng Jiang
From: jiangjiacheng <jiangjiacheng(a)huawei.com>
*** BLURB HERE ***
jiangjiacheng (3):
conf: clean up memory containing secrets before freeing
remote: remove unnecessary return value and if branch
Fix some coding style issues
src/conf/domain_conf.c | 4 +++-
src/remote/remote_daemon.c | 6 +-----
src/remote/remote_daemon_config.c | 4 +---
src/remote/remote_daemon_config.h | 2 +-
src/rpc/virnetserverclient.c | 28 ++++++++++++++--------------
5 files changed, 20 insertions(+), 24 deletions(-)
--
2.33.0
2 years, 7 months
[PATCH v2] cpu_map: Introduce Fujitsu a64fx
by Liu Yiding
Add Fujitsu a64fx as a supported cpu model.
Signed-off-by: Liu Yiding <liuyd.fnst(a)fujitsu.com>
---
v2 of:
https://listman.redhat.com/archives/libvir-list/2022-August/234040.html
diff to v1:
- Change title.
- Unify model and vendor spelling.
---
src/cpu_map/arm_a64fx.xml | 6 ++++++
src/cpu_map/arm_vendors.xml | 1 +
src/cpu_map/index.xml | 3 +++
src/cpu_map/meson.build | 1 +
4 files changed, 11 insertions(+)
create mode 100644 src/cpu_map/arm_a64fx.xml
diff --git a/src/cpu_map/arm_a64fx.xml b/src/cpu_map/arm_a64fx.xml
new file mode 100644
index 0000000000..5b53580df4
--- /dev/null
+++ b/src/cpu_map/arm_a64fx.xml
@@ -0,0 +1,6 @@
+<cpus>
+ <model name='a64fx'>
+ <vendor name='Fujitsu'/>
+ <pvr value='0x001'/>
+ </model>
+</cpus>
diff --git a/src/cpu_map/arm_vendors.xml b/src/cpu_map/arm_vendors.xml
index 4465463b5b..92d10565f4 100644
--- a/src/cpu_map/arm_vendors.xml
+++ b/src/cpu_map/arm_vendors.xml
@@ -3,6 +3,7 @@
<vendor name='Broadcom' value='0x42'/>
<vendor name='Cavium' value='0x43'/>
<vendor name='DigitalEquipment' value='0x44'/>
+ <vendor name='Fujitsu' value='0x46'/>
<vendor name='HiSilicon' value='0x48'/>
<vendor name='Infineon' value='0x49'/>
<vendor name='Freescale' value='0x4D'/>
diff --git a/src/cpu_map/index.xml b/src/cpu_map/index.xml
index 351c2ae4fa..d533a28865 100644
--- a/src/cpu_map/index.xml
+++ b/src/cpu_map/index.xml
@@ -104,6 +104,9 @@
<!-- Cavium-based CPU models -->
<include filename='arm_ThunderX299xx.xml'/>
+ <!-- Fujitsu-based CPU models -->
+ <include filename='arm_a64fx.xml'/>
+
<!-- Hisilicon-based CPU models -->
<include filename='arm_Kunpeng-920.xml'/>
diff --git a/src/cpu_map/meson.build b/src/cpu_map/meson.build
index 99815981b5..99264289e2 100644
--- a/src/cpu_map/meson.build
+++ b/src/cpu_map/meson.build
@@ -1,4 +1,5 @@
cpumap_data = [
+ 'arm_a64fx.xml',
'arm_cortex-a53.xml',
'arm_cortex-a57.xml',
'arm_cortex-a72.xml',
--
2.34.1
2 years, 7 months
[PATCH] qemu_driver: Fix order of arguments in qemuDomainGetStatsCpuProc()
by Michal Privoznik
Just before pushing my earlier commit I've switch order of two
arguments of virProcessGetStatInfo() (as suggested in review).
However, I forgot to swap the arguments in
qemuDomainGetStatsCpuProc() which leads to userTime and sysTime
being swapped.
Fixes: 044b8744d65f8571038f85685b3c4b241162977b
Reported-by: Daniel P. Berrangé <berrange(a)redhat.com>
Signed-off-by: Michal Privoznik <mprivozn(a)redhat.com>
---
Pushed as trivial.
src/qemu/qemu_driver.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index c7cca64001..a3f8d8baf5 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -17771,10 +17771,10 @@ qemuDomainGetStatsCpuProc(virDomainObj *vm,
virTypedParamList *params)
{
unsigned long long cpuTime = 0;
- unsigned long long sysTime = 0;
unsigned long long userTime = 0;
+ unsigned long long sysTime = 0;
- if (virProcessGetStatInfo(&cpuTime, &sysTime, &userTime,
+ if (virProcessGetStatInfo(&cpuTime, &userTime, &sysTime,
NULL, NULL, vm->pid, 0) < 0) {
/* ignore error */
return 0;
--
2.35.1
2 years, 7 months