On 02/04/2014 05:23 PM, Jiri Denemark wrote:
On Tue, Feb 04, 2014 at 17:02:41 +0100, Franky Van Liedekerke wrote:
> Hi,
>
> using libvirt 1.2.0 on a up-to-date Centos6.5 machine leads to
> occasional segmentation faults (see below).
> Sometimes it runs for 5 minutes, sometimes for an hour, but after that
> the result is always the same: segfault after some weird qom-list, that
> apparently the qemu version on centos doesn't know. Has 1.2.1 a known
> fix for this?
I believe the following patch should fix the crash. I'll do some testing
tomorrow and send it as a proper patch afterwards:
I just wanted to add to this thread, that I also ran into this issue.
While investigating a solution, I came across this patch. I then tried
it, and this also corrected the crash issue I was getting. The
environment causing the problem for me was:
CentOS 6 machine; 3 QEMU/KVM instances. 1 was using standard "stock"
CentOS qemu package, the other two QEMU 1.6.2. Libvirt version: 1.2.1.
After applying this patch, the crash issue is solved.
Hopefully this is a somewhat useful data point to add. Thanks for your
work Jiri! I'll be following this thread for the "final" solution and
will be sure to update to 1.2.2 if that version includes the final
agreed upon solution. But this patch does solve the crash issue I was
running into.
diff --git i/src/qemu/qemu_monitor.c w/src/qemu/qemu_monitor.c
index a968901..cdd817f 100644
--- i/src/qemu/qemu_monitor.c
+++ w/src/qemu/qemu_monitor.c
@@ -1019,7 +1019,9 @@ qemuMonitorFindBalloonObjectPath(qemuMonitorPtr mon,
virDomainObjPtr vm,
const char *curpath)
{
- size_t i, j, npaths = 0, nprops = 0;
+ size_t i, j;
+ int npaths = 0;
+ int nprops = 0;
int ret = 0;
char *nextpath = NULL;
qemuMonitorJSONListPathPtr *paths = NULL;
@@ -1045,6 +1047,8 @@ qemuMonitorFindBalloonObjectPath(qemuMonitorPtr mon,
VIR_DEBUG("Searching for Balloon Object Path starting at %s", curpath);
npaths = qemuMonitorJSONGetObjectListPaths(mon, curpath, &paths);
+ if (npaths < 0)
+ return -1;
for (i = 0; i < npaths && ret == 0; i++) {
@@ -1061,6 +1065,11 @@ qemuMonitorFindBalloonObjectPath(qemuMonitorPtr mon,
* then this version of qemu/kvm does not support the feature.
*/
nprops = qemuMonitorJSONGetObjectListPaths(mon, nextpath, &bprops);
+ if (nprops < 0) {
+ ret = -1;
+ goto cleanup;
+ }
+
for (j = 0; j < nprops; j++) {
if (STREQ(bprops[j]->name,
"guest-stats-polling-interval")) {
VIR_DEBUG("Found Balloon Object Path %s", nextpath);
--
libvir-list mailing list
libvir-list(a)redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list