[libvirt] Release of libvirt-0.6.4

Daniel P. Berrange berrange at redhat.com
Wed Jun 3 11:04:09 UTC 2009


On Wed, Jun 03, 2009 at 12:00:05PM +0100, Daniel P. Berrange wrote:
> On Mon, Jun 01, 2009 at 10:26:38AM +0000, Frederik Himpe wrote:
> > On Mon, 01 Jun 2009 10:36:36 +0100, Daniel P. Berrange wrote:
> > 
> > > On Sat, May 30, 2009 at 12:45:21PM +0000, Frederik Himpe wrote:
> > >> On Fri, 29 May 2009 19:18:05 +0200, Daniel Veillard wrote:
> > >> 
> > >> >  - test case for exercising the event loop (Daniel Berrange)
> > >> 
> > >> I think this test is failing for me on Mandriva Cooker (both i586 and
> > >> x86_64):
> > 
> > >> What could be wrong?
> > > 
> > > Strange, this test case works fine for me on both archs with Fedora
> > > 9/10/11 and RHEL 5.
> > > 
> > > Could you run the test manually with debugging turned on, eg
> > > 
> > >    LIBVIRT_DEBUG=1  ./eventtest
> > > 
> > > And also try and capture an strace log with timings
> > > 
> > >    strace -ttt ./eventtest
> > 
> > Actually I found out the test failure is not 100% reproducible. I have
> > seen it failing in steps 6, 9 and IIRC also step 10 of eventtest.
> 
> What I think is happening is that poll() is returning much sooner than
> we anticipate. When you give it a timeout, it'll return upto 1 timeslice
> before the timeout is due. I suspect that this is what is tripping up
> the test case on Mandriva. Could you apply the following patch, and
> re-build & run  LIBVIRT_DEBUG=1 ./eventtest  again, and also re-run with
> the 'strace -ttt -f ./eventtest' (i forgot to ask for -f last time).

The patch in question being this one :-)

Index: qemud/event.c
===================================================================
RCS file: /data/cvs/libvirt/qemud/event.c,v
retrieving revision 1.23
diff -u -p -r1.23 event.c
--- qemud/event.c	12 May 2009 16:43:05 -0000	1.23
+++ qemud/event.c	3 Jun 2009 10:57:04 -0000
@@ -401,7 +401,8 @@ static int virEventDispatchTimeouts(void
     for (i = 0 ; i < ntimeouts ; i++) {
         if (eventLoop.timeouts[i].deleted || eventLoop.timeouts[i].frequency < 0)
             continue;
-
+        VIR_INFO("Check timeout %lld against current %lld",
+                 eventLoop.timeouts[i].expiresAt, now);
         if (eventLoop.timeouts[i].expiresAt <= now) {
             virEventTimeoutCallback cb = eventLoop.timeouts[i].cb;
             int timer = eventLoop.timeouts[i].timer;


Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list