Go to file
Daniel P. Berrange b4633113fc Fix race condition in abort of stream
If a stream gets a server initiated abort, the client may still
send an abort request before it receives the server side abort.
This causes the server to send back another abort for the
stream. Since the protocol defines that abort is the last thing
to be sent, the client gets confused by this second abort from
the server. If the stream is already shutdown, just drop any
client requested abort, rather than sending back another message.
This fixes the regression from previous versions.

Tested as follows

In one virsh session

  virsh # start foo
  virsh # console foo

In other virsh session

  virsh # destroy foo

The first virsh session should be able to continue issuing
commands without error. Prior to this patch it saw

  virsh # list
  error: Failed to list active domains
  error: An error occurred, but the cause is unknown

  virsh # list
  error: Failed to list active domains
  error: no call waiting for reply with prog 536903814 vers 1 serial 9

* src/rpc/virnetserverprogram.c: Drop abort requests
  for streams which no longer exist
2011-08-16 14:38:11 -07:00
.gnulib@4470580881 build: fix regression in large file support 2011-08-08 09:59:52 -06:00
daemon Ensure client streams are closed when marking a client for close 2011-08-16 14:38:11 -07:00
docs qemu: support event_idx parameter for virtio disk and net devices 2011-08-15 09:35:42 -04:00
examples maint: add missing copyright notices 2011-07-28 15:01:17 -06:00
gnulib freebsd: Fix build problem due to picking up the wrong libvirt.h 2011-07-29 07:35:54 -06:00
include storage: Directory shouldn't be listed as type 'file' 2011-08-11 13:34:26 -06:00
m4 tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
po Add some APIs which use locking for crashsafe pidfile handling 2011-08-12 20:37:00 +01:00
python python: avoid unlikely sign extension bug 2011-08-02 11:57:07 -06:00
src Fix race condition in abort of stream 2011-08-16 14:38:11 -07:00
tests qemu: support event_idx parameter for virtio disk and net devices 2011-08-15 09:35:42 -04:00
tools Ensure stream is aborted when exiting console 2011-08-16 14:38:11 -07:00
.dir-locals.el maint: let emacs avoid tabs in rng files 2011-08-13 08:56:26 -06:00
.gitignore maint: ignore generated file 2011-08-15 14:42:43 -06:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap virsh: Avoid using magic numbers for logging 2011-07-14 07:03:40 -06:00
AUTHORS libvirtd.init.in: stop/restart() - wrong return value in case of failure 2011-08-15 15:44:39 +08:00
COPYING.LIB remove all trailing blank lines 2009-07-16 15:06:42 +02:00
ChangeLog-old generate ChangeLog from git logs into distribution tarball 2009-07-08 16:17:51 +02:00
HACKING build: rename files.h to virfile.h 2011-07-21 10:34:51 -06:00
Makefile.am maint: add missing copyright notices 2011-07-28 15:01:17 -06:00
Makefile.nonreentrant Ban use of all inet_* functions 2010-10-22 11:59:23 +01:00
README Correct typos in the documentation (Atsushi SAKAI) 2008-01-24 10:15:13 +00:00
README-hacking maint: relax git minimum version 2010-02-24 14:29:27 -05:00
TODO Update todo list file to point at bugzilla/website 2010-10-13 16:45:26 +01:00
autobuild.sh Remove the Open Nebula driver 2011-03-28 14:09:11 +01:00
autogen.sh build: avoid problems with autogen.sh runs from tarball 2011-02-12 06:28:28 -07:00
bootstrap build: update to latest gnulib 2011-06-23 10:52:08 -06:00
bootstrap.conf Add API for duplicating a socket/client file descriptor 2011-08-15 15:21:26 +02:00
cfg.mk bandwidth: Add parsing and free functions 2011-07-25 13:49:33 +08:00
configure.ac Fix detection of GnuTLS 1.x.y 2011-08-03 19:22:29 +02:00
libvirt.pc.in * libvirt.pc.in: applied patch from Daniel Berrange to fix --cflags 2006-03-24 13:18:12 +00:00
libvirt.spec.in Release of libvirt-0.9.4 2011-08-03 11:02:42 +08:00
mingw32-libvirt.spec.in conf: put virtPortProfile struct / functions in a common location 2011-07-21 14:46:33 -04:00

README

         LibVirt : simple API for virtualization

  Libvirt is a C toolkit to interact with the virtualization capabilities
of recent versions of Linux (and other OSes). It is free software
available under the GNU Lesser General Public License. Virtualization of
the Linux Operating System means the ability to run multiple instances of
Operating Systems concurrently on a single hardware system where the basic
resources are driven by a Linux instance. The library aim at providing
long term stable C API initially for the Xen paravirtualization but
should be able to integrate other virtualization mechanisms if needed.

Daniel Veillard <veillard@redhat.com>