[libvirt] [PATCH] storage: Cleanup logical volume creation code
by Jiri Denemark
This patch plugs two memory leaks, removes some useless and confusing
constructs and renames renames "cleanup" label as "error" since it is
only used for error path rather then being common for both success and
error paths.
---
src/storage/storage_backend_logical.c | 23 ++++++++++++-----------
1 file changed, 12 insertions(+), 11 deletions(-)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index bb709df..4757fe7 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -700,7 +700,7 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
virStoragePoolObjPtr pool,
virStorageVolDefPtr vol)
{
- int fdret, fd = -1;
+ int fd = -1;
virCommandPtr cmd = NULL;
virErrorPtr err;
@@ -741,11 +741,12 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
virCommandAddArg(cmd, pool->def->source.name);
if (virCommandRun(cmd, NULL) < 0)
- goto cleanup;
+ goto error;
- if ((fdret = virStorageBackendVolOpen(vol->target.path)) < 0)
- goto cleanup;
- fd = fdret;
+ virCommandFree(cmd);
+
+ if ((fd = virStorageBackendVolOpen(vol->target.path)) < 0)
+ goto error;
/* We can only chown/grp if root */
if (getuid() == 0) {
@@ -753,40 +754,40 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
virReportSystemError(errno,
_("cannot set file owner '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
}
if (fchmod(fd, vol->target.perms.mode) < 0) {
virReportSystemError(errno,
_("cannot set file mode '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
if (VIR_CLOSE(fd) < 0) {
virReportSystemError(errno,
_("cannot close file '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
- fd = -1;
/* Fill in data about this new vol */
if (virStorageBackendLogicalFindLVs(pool, vol) < 0) {
virReportSystemError(errno,
_("cannot find newly created volume '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
return 0;
- cleanup:
+ error:
err = virSaveLastError();
VIR_FORCE_CLOSE(fd);
virStorageBackendLogicalDeleteVol(conn, pool, vol, 0);
virCommandFree(cmd);
virSetError(err);
+ virFreeError(err);
return -1;
}
--
1.8.1.5
11 years, 8 months
[libvirt] [PATCH] storage: Fix memory leak in error path
by Jiri Denemark
This also renames cleanup label as error since it is only used for error
path rather then being common for both success and error paths.
---
src/storage/storage_backend_logical.c | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
diff --git a/src/storage/storage_backend_logical.c b/src/storage/storage_backend_logical.c
index bb709df..e3b3de4 100644
--- a/src/storage/storage_backend_logical.c
+++ b/src/storage/storage_backend_logical.c
@@ -741,10 +741,10 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
virCommandAddArg(cmd, pool->def->source.name);
if (virCommandRun(cmd, NULL) < 0)
- goto cleanup;
+ goto error;
if ((fdret = virStorageBackendVolOpen(vol->target.path)) < 0)
- goto cleanup;
+ goto error;
fd = fdret;
/* We can only chown/grp if root */
@@ -753,21 +753,21 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
virReportSystemError(errno,
_("cannot set file owner '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
}
if (fchmod(fd, vol->target.perms.mode) < 0) {
virReportSystemError(errno,
_("cannot set file mode '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
if (VIR_CLOSE(fd) < 0) {
virReportSystemError(errno,
_("cannot close file '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
fd = -1;
@@ -776,17 +776,18 @@ virStorageBackendLogicalCreateVol(virConnectPtr conn,
virReportSystemError(errno,
_("cannot find newly created volume '%s'"),
vol->target.path);
- goto cleanup;
+ goto error;
}
return 0;
- cleanup:
+ error:
err = virSaveLastError();
VIR_FORCE_CLOSE(fd);
virStorageBackendLogicalDeleteVol(conn, pool, vol, 0);
virCommandFree(cmd);
virSetError(err);
+ virFreeError(err);
return -1;
}
--
1.8.1.5
11 years, 8 months
[libvirt] [PATCH 0/3] Resolve some recently uncovered Coverity warnings
by John Ferlan
Perhaps due to other related changes in the code paths, my daily Coverity
scan uncovered a few new issues last week. It didn't seem any of the issues
found were critical path, so I waited for the 1.0.3 before posting.
I am running Coverity on a daily basis and trying to fine tune the "blame"
algorithm. Unfortunately when changes are made in sometimes related code
paths it allows Coverity to scan further thus sometimes uncovering some
paths that hadn't been covered before or had been blocked by other issues
Coverity uncovered in the path. I have a dialogue going with someone at
Coverity regarding these types of discoveries.
John Ferlan (3):
libxl_conf: Resolve Coverity issue with call to regcomp()
libxl_driver: Resolve Coverity errors
sheepdog: Add Coverity filter
src/libxl/libxl_conf.c | 11 ++++++++++-
src/libxl/libxl_driver.c | 10 ++++++----
src/storage/storage_backend_sheepdog.c | 2 ++
3 files changed, 18 insertions(+), 5 deletions(-)
--
1.8.1.2
11 years, 8 months
[libvirt] question about ading spice and vnc hardware
by yue
i create VM through virt-manage.
add hardware--> graphic--(spice,vnc server)
i do not understand the word 'server' means,
In my opinion , spice or vnc server is on KVM-HOST side, vnc,spice client connect to KVM-HOST. there are nothing to do with guestOS.
why virt-manage need me to add "server"?
thanks
11 years, 8 months
[libvirt] [PATCH 00/16] Add ability fill driver specific defaults when parsing the XML
by Peter Krempa
This monster series cleans up a ton of stuff and then adds the ability
to fill driver specific defaults by means of a callback.
The usage is demonstrated on automaticaly filling default NIC type
with qemu.
The long term aim is to move all validations and default settings
out of the parser.
Peter Krempa (16):
conf: Improve core dump config error message
qemu: Refactor error paths in virQEMUDriverCreateCapabilities
conf: Ensure that new devices are added to conf copy function
conf: Fix label naming in virDomainDefFormatInternal
conf: Reformat many function headers in domain_conf.c
conf: Refactor cpumask handling
conf: whitespace cleanups and refactors with no semantic impact
conf: Refactor ABI stability checking and break long lines
conf: Make virDomainDeviceInfoIterate usable without os type
conf: Add separate defaults addition and validation for XML parsing
qemu: Implement the device parse callback and use it for interfaces
tests: add to the tests and fix fallout
qemu_command: Clean up default model passing
conf: Don't add default controllers in the XML parser
conf: Simplify cputune parameter retrieval
conf: Move validation of domain title
src/conf/capabilities.h | 6 +
src/conf/domain_conf.c | 1177 ++++++++++----------
src/conf/domain_conf.h | 4 +-
src/qemu/qemu_command.c | 14 +-
src/qemu/qemu_conf.c | 18 +-
src/qemu/qemu_domain.c | 23 +
src/qemu/qemu_domain.h | 1 +
.../qemuxml2argv-net-bandwidth.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-net-client.args | 6 +-
.../qemuxml2argv-net-eth-ifname.args | 6 +-
.../qemuxml2argv-net-eth-ifname.xml | 1 +
.../qemuxml2argv-net-eth-names.args | 8 +-
tests/qemuxml2argvdata/qemuxml2argv-net-eth.args | 6 +-
tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-net-hostdev.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-net-mcast.args | 6 +-
.../qemuxml2argv-net-openvswitch.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-net-server.args | 6 +-
tests/qemuxml2argvdata/qemuxml2argv-net-user.args | 5 +-
tests/qemuxml2argvdata/qemuxml2argv-net-user.xml | 1 +
.../qemuxml2argv-net-virtio-network-portgroup.xml | 2 +
.../qemuxml2xmlout-graphics-spice-timeout.xml | 1 +
tests/testutilsqemu.c | 1 +
23 files changed, 663 insertions(+), 633 deletions(-)
--
1.8.1.1
11 years, 8 months
[libvirt] [PATCH 0/2] virsh: Improve snapshot-list
by Peter Krempa
Peter Krempa (2):
virsh-snapshot: Add ability to print only snapshot names
virsh-snapshot: Refactor virsh snapshot-list
tools/virsh-snapshot.c | 143 ++++++++++++++++++++++++-------------------------
tools/virsh.pod | 11 ++--
2 files changed, 76 insertions(+), 78 deletions(-)
--
1.8.1.1
11 years, 8 months
[libvirt] [PATCHv4] virtio-rng: Add rate limiting options for virtio-RNG
by Peter Krempa
Qemu's implementation of virtio RNG supports rate limiting of the
entropy used. This patch exposes the option to tune this functionality.
This patch is based on qemu commit 904d6f588063fb5ad2b61998acdf1e73fb4
The rate limiting is exported in the XML as:
<devices>
...
<rng model='virtio'>
<rate period='1234'>4321</rate>
<backend model='random'/>
</rng>
...
---
Notes:
Version 4:
- Reword docs
- state it is available since 1.0.4 as the tree is frozen and this was actually never acked before
Version 3:
- State the time unit in docs
Version 2:
- Qemu uses bytes/period, adapt the value according to that
docs/formatdomain.html.in | 13 +++++++++++++
docs/schemas/domaincommon.rng | 18 +++++++++++++++++-
src/conf/domain_conf.c | 17 +++++++++++++++++
src/conf/domain_conf.h | 2 ++
src/qemu/qemu_command.c | 9 +++++++++
.../qemuxml2argv-virtio-rng-random.args | 2 +-
.../qemuxml2argv-virtio-rng-random.xml | 1 +
7 files changed, 60 insertions(+), 2 deletions(-)
diff --git a/docs/formatdomain.html.in b/docs/formatdomain.html.in
index 1835b39..1c6c73e 100644
--- a/docs/formatdomain.html.in
+++ b/docs/formatdomain.html.in
@@ -4280,6 +4280,7 @@ qemu-kvm -net nic,model=? /dev/null
...
<devices>
<rng model='virtio'>
+ <rate period="2000">1234</rate>
<backend model='random'>/dev/random</backend>
<!-- OR -->
<backend model='egd' type='udp'>
@@ -4302,6 +4303,18 @@ qemu-kvm -net nic,model=? /dev/null
<li>'virtio' — supported by qemu and virtio-rng kernel module</li>
</ul>
</dd>
+ <dt><code>rate</code></dt>
+ <dd>
+ <p>
+ The optional <code>rate</code> element allows limiting the rate at
+ which entropy can be consumed from the source. An optional
+ <code>period</code> attribute specifies the duration of a period in
+ milliseconds; if omitted, the period is taken as 1000 milliseconds
+ (1 second). The element contents specify how many bits are permitted
+ per period. Drivers may enforce a minimum rate, and may round the
+ rate down to a minimum granularity.
+ </p>
+ </dd>
<dt><code>backend</code></dt>
<dd>
<p>
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
index e7231cc..172926c 100644
--- a/docs/schemas/domaincommon.rng
+++ b/docs/schemas/domaincommon.rng
@@ -3500,7 +3500,12 @@
<value>virtio</value>
</choice>
</attribute>
- <ref name="rng-backend"/>
+ <interleave>
+ <ref name="rng-backend"/>
+ <optional>
+ <ref name="rng-rate"/>
+ </optional>
+ </interleave>
</element>
</define>
@@ -3524,6 +3529,17 @@
</element>
</define>
+ <define name="rng-rate">
+ <element name="rate">
+ <optional>
+ <attribute name="period">
+ <ref name="positiveInteger"/>
+ </attribute>
+ </optional>
+ <ref name="positiveInteger"/>
+ </element>
+ </define>
+
<define name="usbmaster">
<element name="master">
<attribute name="startport">
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 995cf0c..f556e4c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -7399,6 +7399,17 @@ virDomainRNGDefParseXML(const xmlNodePtr node,
ctxt->node = node;
+ if (virXPathUInt("string(./rate)", ctxt, &def->rate) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid RNG rate value"));
+ goto error;
+ }
+
+ if (def->rate > 0 &&
+ virXPathUInt("string(./rate/@period)", ctxt, &def->period) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s", _("invalid RNG period value"));
+ goto error;
+ }
+
if ((nbackends = virXPathNodeSet("./backend", ctxt, &backends)) < 0)
goto error;
@@ -13708,6 +13719,12 @@ virDomainRNGDefFormat(virBufferPtr buf,
const char *backend = virDomainRNGBackendTypeToString(def->backend);
virBufferAsprintf(buf, " <rng model='%s'>\n", model);
+ if (def->rate) {
+ virBufferAddLit(buf, " <rate");
+ if (def->period)
+ virBufferAsprintf(buf, " period='%u'", def->period);
+ virBufferAsprintf(buf, ">%u</rate>\n", def->rate);
+ }
virBufferAsprintf(buf, " <backend model='%s'", backend);
switch ((enum virDomainRNGBackend) def->backend) {
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 5828ae2..1546f21 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -1721,6 +1721,8 @@ enum virDomainRNGBackend {
struct _virDomainRNGDef {
int model;
int backend;
+ unsigned int rate; /* bits per period */
+ unsigned int period; /* milliseconds */
union {
char *file; /* file name for 'random' source */
diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 1c9bfc9..6fcc093 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -4255,6 +4255,15 @@ qemuBuildRNGDeviceArgs(virCommandPtr cmd,
virBufferAsprintf(&buf, "virtio-rng-pci,rng=%s", dev->info.alias);
+ if (dev->rate > 0) {
+ /* qemu uses bytes */
+ virBufferAsprintf(&buf, ",max-bytes=%u", dev->rate / 8);
+ if (dev->period)
+ virBufferAsprintf(&buf, ",period=%u", dev->period);
+ else
+ virBufferAddLit(&buf, ",period=1000");
+ }
+
if (qemuBuildDeviceAddressStr(&buf, &dev->info, qemuCaps) < 0)
goto cleanup;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args
index ad27132..4a0437b 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args
+++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.args
@@ -3,4 +3,4 @@ LC_ALL=C PATH=/bin HOME=/home/test USER=test LOGNAME=test /usr/bin/qemu \
-monitor unix:/tmp/test-monitor,server,nowait -no-acpi -boot c -usb \
-device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
-object 'rng-random,id=rng0,filename=/test/ph<ile' \
--device virtio-rng-pci,rng=rng0,bus=pci.0,addr=0x4
+-device virtio-rng-pci,rng=rng0,max-bytes=100,period=1234,bus=pci.0,addr=0x4
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.xml b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.xml
index 0658f4b..3899408 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-virtio-rng-random.xml
@@ -17,6 +17,7 @@
<controller type='usb' index='0'/>
<memballoon model='virtio'/>
<rng model='virtio'>
+ <rate period='1234'>800</rate>
<backend model='random'>/test/ph<ile</backend>
</rng>
</devices>
--
1.8.1.1
11 years, 8 months
[libvirt] [PATCHv2] conf: Report errors on cputune parameter parsing
by Peter Krempa
This patch adds proper error reporting if parsing of cputune parameters
fails due to incorrect values provided by the user. Previously no errors
were reported in such a case and the failure was silently ignored.
---
v2: report errors instead of ignoring them
src/conf/domain_conf.c | 38 ++++++++++++++++++++++++++------------
1 file changed, 26 insertions(+), 12 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index ca645c7..1422b47 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9471,29 +9471,43 @@ virDomainDefParseXML(virCapsPtr caps,
/* Extract cpu tunables. */
if (virXPathULong("string(./cputune/shares[1])", ctxt,
- &def->cputune.shares) < 0)
- def->cputune.shares = 0;
+ &def->cputune.shares) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("can't parse cputune shares value"));
+ goto error;
+ }
if (virXPathULongLong("string(./cputune/period[1])", ctxt,
- &def->cputune.period) < 0)
- def->cputune.period = 0;
+ &def->cputune.period) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("can't parse cputune period value"));
+ goto error;
+ }
if (virXPathLongLong("string(./cputune/quota[1])", ctxt,
- &def->cputune.quota) < 0)
- def->cputune.quota = 0;
+ &def->cputune.quota) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("can't parse cputune quota value"));
+ goto error;
+ }
if (virXPathULongLong("string(./cputune/emulator_period[1])", ctxt,
- &def->cputune.emulator_period) < 0)
- def->cputune.emulator_period = 0;
+ &def->cputune.emulator_period) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("can't parse cputune emulator period value"));
+ goto error;
+ }
if (virXPathLongLong("string(./cputune/emulator_quota[1])", ctxt,
- &def->cputune.emulator_quota) < 0)
- def->cputune.emulator_quota = 0;
-
- if ((n = virXPathNodeSet("./cputune/vcpupin", ctxt, &nodes)) < 0) {
+ &def->cputune.emulator_quota) < -1) {
+ virReportError(VIR_ERR_XML_ERROR, "%s",
+ _("can't parse cputune emualtor quota value"));
goto error;
}
+ if ((n = virXPathNodeSet("./cputune/vcpupin", ctxt, &nodes)) < 0)
+ goto error;
+
if (n && VIR_ALLOC_N(def->cputune.vcpupin, n) < 0)
goto no_memory;
--
1.8.1.1
11 years, 8 months
[libvirt] Release of libvirt-1.0.3
by Daniel Veillard
So that release took a bit longuer to stabilize, but as a result we
hopefully have a good release :-) . It is tagged in git now, so the
freeze is over, and the source tarball and F17 rpms are available at
the usual place at :
ftp://libvirt.org/libvirt/
Except for a few new API this release is more oriented toward
incremental improvements and bug fixes, with also a large amount of
documentation improvements and portability fixes:
Features:
- Introduce virDomainMigrate*CompressionCache APIs (Jiri Denemark)
- Introduce virDomainGetJobStats API (Jiri Denemark)
- Add basic support for VDI images (Martin Kletzander)
- Introduce API virNodeDeviceLookupSCSIHostByWWN (Osier Yang)
- Various locking improvements (Daniel P. Berrange)
Documentation:
- internals: Update to include RPC and Lock links and add new data (John Ferlan)
- Add references for phyp and parallels (John Ferlan)
- api: Add text and references for daemon (John Ferlan)
- api: Add text and references for drivers section (John Ferlan)
- api: Complete list of function and naming conventions (John Ferlan)
- api: Reword and clean lists for object description (John Ferlan)
- api: Reword objects exposed section (John Ferlan)
- hellolibvirt: Adjust code to use new APIs (John Ferlan)
- libvirt: Update headers for doc (John Ferlan)
- hook: log the exit status of the hook not 256 (Guido Günther)
- maint: fix typo in network docs (Eric Blake)
- util: Add docs for virXMLProp string (Peter Krempa)
- Fix attribute name for virtio-rng backend (Peter Krempa)
- document new storage volume/pool types (Philipp Hahn)
- schema: Add basic documentation for the virtual RNG device support (Peter Krempa)
- util: fix typo in comment (Laine Stump)
- Add missing 'vram' in QXL video device doc (Christophe Fergeau)
- Fix HTML errors (Jiri Denemark)
- fix 1.0.2 release date (Eric Blake)
- HACKING: Sync with docs/hacking.html.in (John Ferlan)
- hacking: Add some details to handle Valgrind output (John Ferlan)
- don't ignore virEvent API (Eric Blake)
- use div, not table, for notices on opaque types (Claudio Bley)
- abort when missing return or argument documentation (Claudio Bley)
- libvirt.h.in: document virConnectDomainEventCallback's return value (Claudio Bley)
- libvirt.h.in: add missing return doc for virEventRemoveHandleFunc (Claudio Bley)
- libvirt.h.in: fix documentation for virConnectDomainEventBlockJobCallback (Claudio Bley)
- libvirt.h.in: add missing documentation for virConnectCloseFunc (Claudio Bley)
- Sync HACKING and hacking.html.in (Martin Kletzander)
Portability:
- build: don't use gcrypt.h without gnutls support (Eric Blake)
- tests: skip virstoragetest on RHEL 5 (Eric Blake)
- Remove some C99 variable decls in parallels driver (Daniel P. Berrange)
- tests: old automake lacks abs_builddir (Eric Blake)
- tests: consistent skip messages (Eric Blake)
- tests: don't test json when not compiled in (Eric Blake)
- tests: avoid segfault if json monitor not present (Eric Blake)
- run: use portable shell (Eric Blake)
- s/arm/armv7l/ in caps-qemu-kvm.xml (Daniel P. Berrange)
- build: force correct gcc syntax for attribute_nonnull (Eric Blake)
- build: more mingw fixes (Eric Blake)
- build: fix mingw build (Eric Blake)
- build: fix vircommand build on mingw (Eric Blake)
- regex: gnulib guarantees that we have regex support (Eric Blake)
- build: fix compilation of selinux on RHEL 5 (Eric Blake)
- build: fix VPATH testsuite (Eric Blake)
- build: fix build of HAL node backend (Eric Blake)
- sanitytest.py: Do not rely on system libvirt (Jiri Denemark)
- tests: reserve more fds for commandtest (Eric Blake)
- build: Add libcurl dependency to libvirt_driver.la (Jiri Denemark)
- tests: Don't build securityselinuxlabeltest without qemu (Jiri Denemark)
Bug Fixes:
- Fix TLS tests with gnutls 3 (Daniel P. Berrange)
- qemu: fix wrong evaluation in qemuDomainSetMemoryParameters (Satoru Moriya)
- libvirt does not logout of iscsi targets, causing system hang on shutdown (Fritz Elfert)
- qemu: Remove managed save flag from VM when starting with --force-boot (Peter Krempa)
- qemu: Use -1 as unpriviledged uid/gid (Christophe Fergeau)
- virnetdevmacvlan.c: Introduce mutex for macvlan creation (Michal Privoznik)
- Fix deadlock in QEMU close callback APIs (Daniel P. Berrange)
- Fix crash in QEMU auto-destroy with transient guests (Daniel P. Berrange)
- python: fix fd leak in generator.py (Guannan Ren)
- qemu: Make sure qemuProcessStart is run within a job (Jiri Denemark)
- Fix starting qemu instances when apparmor driver is enabled (Jim Fehlig)
- qemu: Don't fail to shutdown domains with unresponsive agent (Michal Privoznik)
- qemu: virConnectGetVersion returns bogus value (Viktor Mihajlovski)
- qemu: fix use-after-free when parsing NBD disk (Paolo Bonzini)
- Don't try to add non-existant devices to ACL (Daniel P. Berrange)
- Fix typo in internal VIR_QEMU_PROCESS_START_AUTODESROY constant (Daniel P. Berrange)
- Fix autodestroy of QEMU guests (Daniel P. Berrange)
- qemu: -numa doesn't (yet) support disjoint range (Eric Blake)
- interface: udev backend coverity NULL deref (Doug Goldstein)
- Fix crash changing CDROM media (Daniel P. Berrange)
- qemu: do not set unpriv_sgio if neither supported nor requested (Paolo Bonzini)
- conf: Avoid leaking of RNG device definition (Peter Krempa)
- interface: Fix udev backend bridge device display (Doug Goldstein)
- storage: use f_frsize, not f_bsize, for calculating available space (Sage Weil)
- conf: Don't leak 'ram' video property on error (Christophe Fergeau)
- conf: Don't leak 'primary' video property on error (Christophe Fergeau)
- qemu: check backing chains even when cgroup is omitted (Eric Blake)
- qemu: Avoid deadlock in autodestroy (Jiri Denemark)
- qemu: fix an off-by-one error in qemuDomainGetPercpuStats (Guannan Ren)
- qemu: Fix the memory leak (Osier Yang)
- keepalive: Guard against integer overflow (John Ferlan)
- libxl: Fix setting of disk backend (Jim Fehlig)
- Remove a couple of misplaced VIR_FREE (John Ferlan)
- Fix memory leak in virNetClientIOWriteMessage (Sergey Fionov)
- qemu: Do not ignore mandatory features in migration cookie (Jiri Denemark)
- rpc: Avoid deadlock when closing client connection (Jiri Denemark)
- Avoid resetting errors in virTypedParamsFree (Jiri Denemark)
- interface: fix udev backend use after free (Doug Goldstein)
- virsh: Resolve possible NULL dereference (John Ferlan)
- commandtest: Resolve some coverity resource leaks (John Ferlan)
- Fix libvirt upgrade path when nwfilter is used (Stefan Berger)
- util: maintain caps when running command with uid != 0 (Laine Stump)
- virCommand: Don't misuse the eventloop for async IO (Michal Privoznik)
- Release VM lock before acquiring virDomainObjListPtr lock (Daniel P. Berrange)
- Fix potential deadlock across fork() in QEMU driver (Daniel P. Berrange)
- hypervisor: Restore pm initialization (John Ferlan)
- Remove re-entrant API call in SELinux/AppArmor security managers (Daniel P. Berrange)
- xend: Fix a memory leak found by Coverity (John Ferlan)
- network_conf.c: Free xmlDoc after use (Michal Privoznik)
- virsh-snapshot: Fix XPath query to determine snapshot state (Peter Krempa)
- virnetttlcontext: Resolve issues found by Valgrind (John Ferlan)
- qemumonitortestutils: Resolve resource leaks found by Valgrind (John Ferlan)
- qemumonitorjsontest: Resolve resource leaks found by Valgrind (John Ferlan)
- qemu_command: Resolve resource leaks found by Valgrind (John Ferlan)
- domain_conf: Resolve resource leaks found by Valgrind (John Ferlan)
- vport_profile_conf: Resolve memory leak found by Valgrind (John Ferlan)
- netdev_vlan_conf: Resolve memory leak found by Valgrind. (John Ferlan)
- qemuxml2argvtest: Resolve resource leaks found by Valgrind (John Ferlan)
- virnettlscontexttest: Resolve memory leak found by Valgrind (John Ferlan)
- qemu_hotplug: Need to call virUSBDeviceFree() (John Ferlan)
- rpc: Need to virCommandFree on error path (John Ferlan)
- uml: Resolve leak if need to requery in umlIdentifyOneChrPTY() (John Ferlan)
- openvz: Need to error check openvzDomainSetVcpusFlagsInternal() (John Ferlan)
- parallels: Need to free memory on error path (John Ferlan)
- network: Remove conditional settings to resolve resource leak (John Ferlan)
- storage: Resolve resource leaks with cmd processing (John Ferlan)
- keepalive: Resolve Coverity complaint (John Ferlan)
- tlscontext: Make sure to get proper pointer to 'dname' (John Ferlan)
- Fix leak of usbDevice struct when initializing cgroups (Daniel P. Berrange)
- Fix typo in configure.ac causing $LIBS to gain a copy of $CFLAGS (Daniel P. Berrange)
- util: Fix mask for 172.16.0.0 private address range (Jiri Denemark)
Improvements:
- rng: restrict passthrough names to known-good files (Eric Blake)
- util: use string libvirt to prefix error message instead of libvir (Guannan Ren)
- python: fix typoes and repeated global vars references (Guannan Ren)
- Fix a message typo (Serge Hallyn)
- Avoid spamming logs with cgroups warnings (Daniel P. Berrange)
- tests: Test XML entities in source path for RNG device (Peter Krempa)
- tests: fix leaks in storagevolxml2argvtest (Ján Tomko)
- libvirt.c: Make VIR_MIGRATE_NON_SHARED_{INC,DISK} mutually exclusive (Michal Privoznik)
- schema: Restrict mode to octal (Philipp Hahn)
- libvirt: fix error message when connection can't be opened (Ján Tomko)
- tests: uniformly report test failures (Eric Blake)
- qemu: minor monitor lock cleanups (Eric Blake)
- qemu: don't override earlier json error (Eric Blake)
- qemu: Refactor qemuDomainSetMemoryParameters (Peter Krempa)
- storage: cast -1 for uid_t|gid_t (Philipp Hahn)
- storage: Cast uid_t|gid_t to unsigned int (Philipp Hahn)
- util: Fix printf format for uid_t|gid_t (Philipp Hahn)
- tests: Add tests for virtio-rng device handling (Peter Krempa)
- qemu: Implement support for EGD backend for virtio-rng (Peter Krempa)
- qemu: Implement support for default 'random' backend for virtio-rng (Peter Krempa)
- conf: Add RNG device ABI compatibility check (Peter Krempa)
- conf: Add support for RNG device configuration in XML (Peter Krempa)
- conf: Add fake switch statement to warn for new device types (Peter Krempa)
- use client id for IPv6 DHCP host definition (Gene Czarcinski)
- Trivial fix: in dhcp-host the name is optional (Gene Czarcinski)
- storage: qemu-img: change INFO to DEBUG (Ján Tomko)
- storage: move qemu-img options before positional arguments (Ján Tomko)
- storage: add test for qemu-img command line generation (Ján Tomko)
- storage: separate qemu-img command generation and execution (Ján Tomko)
- storage: move flag setting after declarations (Ján Tomko)
- run: license as LGPL (Eric Blake)
- qemu_migration: Cancel running jobs on failed migration (Michal Privoznik)
- qemu_migration: Stop NBD server at Finish phase (Michal Privoznik)
- qemu_migration: Introduce qemuMigrationDriveMirror (Michal Privoznik)
- qemu_migration: Introduce qemuMigrationStartNBDServer() (Michal Privoznik)
- qemu: Introduce nbd-server-stop command (Michal Privoznik)
- qemu: Introduce nbd-server-add command (Michal Privoznik)
- qemu: Introduce nbd-server-start command (Michal Privoznik)
- Introduce NBD migration cookie (Michal Privoznik)
- qemu: Introduce NBD_SERVER capability (Michal Privoznik)
- Add support for <option> tag in network config (Pieter Hollants)
- maint: check all symfiles for sorting (Eric Blake)
- qemu: Implement virDomainMigrate*CompressionCache (Jiri Denemark)
- virsh: Add migrate-compcache command (Jiri Denemark)
- remote: Implement virDomainMigrate*CompressionCache (Jiri Denemark)
- python: Implement virDomainMigrateGetCompressionCache wrapper (Jiri Denemark)
- qemu: Implement virDomainGetJobStats (Jiri Denemark)
- qemu: Parse more fields from query-migrate QMP command (Jiri Denemark)
- virsh: Use virDomainGetJobStats in domjobinfo if available (Jiri Denemark)
- remote: Implement virDomainGetJobStats (Jiri Denemark)
- remote: Auto-allocate params in remoteDeserializeTypedParameters (Jiri Denemark)
- python: Implement virDomainGetJobStats wrapper (Jiri Denemark)
- qemu: Add support for compressed migration (Jiri Denemark)
- Introduce VIR_MIGRATE_COMPRESSED flag (Jiri Denemark)
- Update arch names in RNG schema to match virarch.c (Daniel P. Berrange)
- interface: dev type support for bond interfaces (Doug Goldstein)
- interface: add bond support to udev backend (Doug Goldstein)
- interface: Improve udev backend device type id (Doug Goldstein)
- interface: Refactor interface vlan to helper func (Doug Goldstein)
- interface: udev bridge code error handling updates (Doug Goldstein)
- interface: Refactor udev bridge to helper func (Doug Goldstein)
- conf: Refactor ABI stability checking and break long lines (Peter Krempa)
- conf: Refactor cpumask handling (Peter Krempa)
- conf: Reformat many function headers in domain_conf.c (Peter Krempa)
- conf: Fix label naming in virDomainDefFormatInternal (Peter Krempa)
- conf: Ensure that new devices are added to conf copy function (Peter Krempa)
- qemu: Refactor error paths in virQEMUDriverCreateCapabilities (Peter Krempa)
- conf: Improve core dump config error message (Peter Krempa)
- qemu: Turn closeCallbacks into virObjectLockable (Jiri Denemark)
- qemu: Run lzop with '--ignore-warn' (Michal Privoznik)
- qemu: Remove the shared disk entry if the operation is ejecting or updating (Osier Yang)
- qemu: Move the shared disk adding and sgio setting prior to attaching (Osier Yang)
- qemu: Update shared disk table when reconnecting qemu process (Osier Yang)
- qemu: Record names of domain which uses the shared disk in hash table (Osier Yang)
- qemu: Merge qemuCheckSharedDisk into qemuAddSharedDisk (Osier Yang)
- qemu: Add checking in helpers for sgio setting (Osier Yang)
- maint: enforce private symbol section sorting (Eric Blake)
- qemu: switch PCI address alocation to use virDevicePCIAddress (Ján Tomko)
- virsh: distinguish errors between missing argument and wrong option (Guannan Ren)
- maint: sort private syms to reflect recent header renames (Eric Blake)
- maint: fix header file owners of private symbols (Eric Blake)
- net: use structs for address and port ranges (Natanael Copa)
- net: add support for specifying port range for forward mode nat (Natanael Copa)
- net: support set public ip range for forward mode nat (Natanael Copa)
- qemu: Use atomic ops for driver->nactive (Jiri Denemark)
- virsh: Always print capacity unit (Jiri Denemark)
- qemu: pass "-1" as uid/gid for unprivileged qemu (Guido Günther)
- Add capabilities bit for -no-kvm-pit-reinjection (Doug Goldstein)
- Add autogenerated lxc_protocol.[ch] to gitignore (Doug Goldstein)
- drivermodule: Ignore coverity warning about leaked_storage (John Ferlan)
- storage: test backing chain traversal (Eric Blake)
- storage: don't follow backing chain symlinks too eagerly (Eric Blake)
- storage: refactor metadata lookup (Eric Blake)
- storage: prepare for refactoring (Eric Blake)
- storage: rearrange functions (Eric Blake)
- vbox: Don't overwrite errors returned by virDomainDeviceDefParse (Jiri Denemark)
- util: virSetUIDGIDWithCaps - change uid while keeping caps (Laine Stump)
- util: drop capabilities immediately after changing uid/gid of child (Laine Stump)
- qemu: let virCommand set child process security labels/uid/gid (Laine Stump)
- security: add new virSecurityManagerSetChildProcessLabel API (Laine Stump)
- util: add security label setting to virCommand (Laine Stump)
- build: define SECDRIVER_LIBS in Makefile.am (Laine Stump)
- qemu: replace exec hook with virCommandSetUID/GID in storage_backend (Laine Stump)
- qemu: replace exec hook with virCommandSetUID/GID in qemuCaps* (Laine Stump)
- util: make virSetUIDGID a NOP only when uid or gid is -1 (Laine Stump)
- util: add virCommandSetUID and virCommandSetGID (Laine Stump)
- util: refactor virCommandHook into virExec and virCommandHandshakeChild (Laine Stump)
- util: eliminate extra args from virExec (Laine Stump)
- util: eliminate generic hook from virExecWithHook (Laine Stump)
- Remove qemuDriverLock from almost everywhere (Daniel P. Berrange)
- virsh-volume.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-snapshot.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-secret.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-pool.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-nwfilter.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-nodedev.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-network.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-interface.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-host.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-domain.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh-domain-monitor.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh.c: Switch to c99 initialization of vshCmdInfo (Michal Privoznik)
- virsh: Switch to c99 initialization of vshCmdDef (Michal Privoznik)
- xen: clean up the mess with cpumap (Eric Blake)
- util: use new virendian.h macros (Eric Blake)
- util: add virendian.h macros (Eric Blake)
- Check if classes are derived from object (Guido Günther)
- virsh: Use virNodeDeviceLookupSCSIHostByWWN (Osier Yang)
- nodedev: Implement virNodeDeviceLookupSCSIHostByWWN (Osier Yang)
- remote: Wire up the remote protocol (Osier Yang)
- hypervisor: Revisit Coverity issues regarding cpumap (John Ferlan)
- hypervisor: Remove redundant validity checks, clean up function headers (John Ferlan)
- xend: Remove redundant validity checks, clean up function headers (John Ferlan)
- xm: Remove redundant validity checks, clean up function headers (John Ferlan)
- inotify: Clean up some function headers (John Ferlan)
- xs: Remove redundant validity checks, clean up function headers (John Ferlan)
- virsh-snapshot: Reject --no-metadata together with --print-xml (Peter Krempa)
- virsh-snapshot: Refactor some details in virsh snapshot-create-as (Peter Krempa)
- Pass virQEMUDriverPtr into APIs managed shared disk list (Daniel P. Berrange)
- Serialize execution of security manager APIs (Daniel P. Berrange)
- Turn virSecurityManager into a virObjectLockable (Daniel P. Berrange)
- sheepdog: skip refresh on creation failure (Harry Wei)
- util: refactor iptables command construction into multiple steps (Natanael Copa)
- qemu: support vhost-net for generic ethernet devices (Laine Stump)
- Stop accessing driver->caps directly in QEMU driver (Daniel P. Berrange)
- Rename 'qemuCapsXXX' to 'virQEMUCapsXXX' (Daniel P. Berrange)
- Turn virCapabilities into a virObject (Daniel P. Berrange)
- Fix comment about virCgroupPtr locking rules in QEMU driver (Daniel P. Berrange)
- Fix PKI directory used for QEMU test suite (Daniel P. Berrange)
- virCondDestroy: Lose attribute RETURN_CHECK (Michal Privoznik)
- Drop useless virFileWrapperFdCatchError (Michal Privoznik)
- valgrind: Adjust the suppression file (John Ferlan)
- Add syntax-check to make sure Python files don't contain trailing semicolon (Guido Günther)
- Remove more trailing semicolons in Python files (Guido Günther)
- syntax-check: Don't check non-reentrant functions in docs (Peter Krempa)
- Cosmetics: Remove semicolons (Guido Günther)
- bitmap: add way to find next clear bit (Eric Blake)
- Initialize qemuImageBinary path at startup (Daniel P. Berrange)
- Introduce annotations for virQEMUDriverPtr fields (Daniel P. Berrange)
- Protect USB/PCI device list access in QEMU with dedicated locks (Daniel P. Berrange)
- Convert virPCIDeviceList and virUSBDeviceList into virObjectLockable (Daniel P. Berrange)
- Rename all USB device functions to have a standard name prefix (Daniel P. Berrange)
- Rename all PCI device functions to have a standard name prefix (Daniel P. Berrange)
- Remove pointless 'qemuVersion' field from virQEMUDriverPtr (Daniel P. Berrange)
- Use atomic ops to increment nextvmid (Daniel P. Berrange)
- Make virDomainObjList self-locking via virObjectLockable (Daniel P. Berrange)
- Merge virDomainObjListIsDuplicate into virDomainObjListAdd (Daniel P. Berrange)
- qemu: don't log failure during QMP add-fd probe (Eric Blake)
- Turn virDomainObjList into an opaque virObject (Daniel P. Berrange)
- Rename all domain list APIs to have virDomainObjList prefix (Daniel P. Berrange)
- Introduce a virQEMUDriverConfigPtr object (Daniel P. Berrange)
- Fix missing error constants in libvirt python module (Daniel P. Berrange)
- qemu: Catch stderr of image compression binary (Michal Privoznik)
- qemu: Catch stderr of image decompression binary (Michal Privoznik)
- virFileWrapperFd: Switch to new virCommandDoAsyncIO (Michal Privoznik)
- tests: Create test for virCommandDoAsyncIO (Michal Privoznik)
- Introduce event loop to commandtest (Michal Privoznik)
- virCommand: Introduce virCommandDoAsyncIO (Michal Privoznik)
- conf: Use correct type for device type enum in virDomainDeviceDefFree (Peter Krempa)
- Support shifted magic in storage files (Martin Kletzander)
- virsh-secret: Refactor error paths (Peter Krempa)
- virsh-nwfilter: Update nwfilter commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-snapshot: Update snapshot commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-snapshot: Refactor cmdSnapshotDumpXML (Peter Krempa)
- virsh-nodedev: Refactor error paths, error messages and whitespace (Peter Krempa)
- virsh-nodedev: Update node device commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-interface: Update interface commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-network: Update network commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-host: Update host commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-domain: Update domain commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-domain-monitor: Update domain commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-volume: Update volume commands to use vshCommandOptStringReq (Peter Krempa)
- virsh-pool: Update pool commands to use vshCommandOptStringReq (Peter Krempa)
- virsh: Add helper to request string arguments with error reporting (Peter Krempa)
- virsh-pool: Rename helper function buildPoolXML to vshBuildPoolXML (Peter Krempa)
- virsh-volume: Rename helper function makeCloneXML to vshMakeCloneXML (Peter Krempa)
- virsh-snapshot: Fix coding style and remove dead code (Peter Krempa)
- hyperv: Simplify hypervPrivate pointer handling in hypervOpen (Matthias Bolte)
- esx: Simplify esxPrivate pointer handling in esxOpen (Matthias Bolte)
- maint: update to latest gnulib (Eric Blake)
- Add support for QEMU -add-fd support detection (Stefan Berger)
- qemu: expose qemu 1.3 add-fd monitor command (Eric Blake)
- tests: add a comment about our fake qmp (Eric Blake)
- spec: Avoid using makeinstall relic (Jiri Denemark)
- complete virterror->virerror name change (Serge Hallyn)
- apibuild.py: fix TypeError raised in except clause (Claudio Bley)
- Enforce return check on virAsprintf() calls (John Ferlan)
- snapshot: Mention disk-only snapshots in error message (Peter Krempa)
Cleanups:
- Revert hack for autodestroy in qemuProcessStop (Daniel P. Berrange)
- Revert "Add support for <option> tag in network config" (Laine Stump)
- security: Remove unnecessary checks for mgr == NULL (John Ferlan)
- vircommand: Remove unnecessary sa_assert (John Ferlan)
- build: fix make check of remote_protocol-structs (Laine Stump)
- spec: Fix minor changelog issues (Jiri Denemark)
Thanks everybody for your contributions !
Daniel
--
Daniel Veillard | Open Source and Standards, Red Hat
veillard(a)redhat.com | libxml Gnome XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | virtualization library http://libvirt.org/
11 years, 8 months