When running the libvirt test suite on a machine under heavy load, the test could end up in a deadlock. Since the test suite was run during RPM build, the build never finished if the deadlock happened. This update fixes the handling of an event loop used in the test suite, and the test suite no longer hangs in the described scenario.
Description of problem:
In my efforts to build a scratch image for testing other BZ in preparation for 6.4.z, I hit a deadlock that prevented the RPM from completing 'make check'. To date, we've been lucky that brew has not hit this same deadlock, but since we know the fix, and since the fix is non-invasive (it touches _only_ the testsuite, for the 'make check' portion of making the rpm, and does not affect installed binaries), having it backported to 6.4.z would ensure that we don't hit the race in a future brew build.
Version-Release number of selected component (if applicable):
Steps to Reproduce:
1. rpmbuild --rebuild libvirt-0.10.2-18.el6_4.3.srpm
Rarely, the build will hang during 'make check', with output resembling:
I had to ctrl-c to kill the hung test, which in turn killed the build.
Testsuite shouldn't hang.
Author: Peter Krempa <email@example.com>
Date: Mon Nov 12 11:34:41 2012 +0100
tests: Fix qemumonitorjsontest deadlock when the machine is under load
When doing the qemumonitorjsontest on a machine under heavy load the
test tends to deadlock from time to time. This patch adds the hack to
break the event loop that is used in virsh.
Upstream is fixed, so 6.5 is in POST awaiting next rebase.
Verify this bug with libvirt-0.10.2-19.el6.x86_64
do rpmbuild --rebuild > 20 times
# rpmbuild --rebuild libvirt-0.10.2-19.el6.src.rpm
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.