Go to file
Daniel P. Berrange 5e31df9335 Fix preservation of errors across migration steps
When doing migration, if an error occurs in Perform, it must not
be overwritten during Finish/Confirm steps. If an error occurs
in Finish, it must not be overwritten in Confirm.

Previous commit a9d12c2444 added
code to qemudDomainMigrateFinish2 to preserve the error. This
is not the right place, because it is not applicable in non-p2p
migration. The src/libvirt.c virDomainMigrateV2/3 methods need
code to preserve errors for non-p2p migration, while the
doPeer2PeerMigrate2 and doPeer2PeerMigrate3 methods contain
code to preverse errors for p2p migration.

Remove the bogus error preservation from qemudDomainMigrateFinish2
and qemudDomainMigrateFinish3.

Fix virDomainMigrateV3 and doPeer2PeerMigrate3 so that they
preserve any error hit during the Finish3 step, before invoking
Confirm3.

Finally if qemuMigrationFinish fails to resume the CPUs, it must
preserve the error before tearing down the VM, so that VM cleanup
doesn't overwrite it.

* src/libvirt.c: Preserve error before invoking Confirm3
* src/qemu/qemu_driver.c: Remove bogus error preservation
  code in qemudDomainMigrateFinish2/qemudDomainMigrateFinish3
* src/qemu/qemu_migration.c: Preserve error before invoking Confirm3
  and after resume fails in qemuMigrationFinish.
2011-05-25 11:47:48 -04:00
.gnulib@2c25c9ebe8 Fix accidental revert of .gnulib update 2011-05-24 11:38:53 -04:00
daemon Add a second URI parameter to virDomainMigratePerform3 method 2011-05-25 11:47:48 -04:00
docs Fix QEMU -vnc arg generation with raw IPv6 addresses 2011-05-24 10:33:53 -04:00
examples nwfilter: enable filtering of gratuitous ARP packets 2011-05-23 19:41:18 -04:00
include Introduce two method migration APIs 2011-05-25 11:47:48 -04:00
m4 tests: Lower stack usage below 4096 bytes 2011-04-30 19:59:52 +02:00
po maint: omit translation for all VIR_INFO 2011-05-11 15:20:33 -06:00
python python: Don't free must-not-free variables 2011-05-24 10:33:36 +02:00
src Fix preservation of errors across migration steps 2011-05-25 11:47:48 -04:00
tests qemu: fix typo in name - should be VHOST_NET, not VNET_HOST 2011-05-24 10:45:55 -04:00
tools virsh: Use Env variables for debug level and logfile 2011-05-19 17:53:46 -06:00
.dir-locals.el maint: make spacing in .sh files easier 2011-03-14 21:57:42 -06:00
.gitignore maint: ignore generated file 2011-05-16 09:36:59 -06:00
.gitmodules make .gnulib a submodule 2009-07-08 16:17:51 +02:00
.mailmap Use per-user TLS certificates when possible 2011-05-23 13:18:14 -06:00
AUTHORS Use per-user TLS certificates when possible 2011-05-23 13:18:14 -06: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 maint: rename virBufferVSprintf to virBufferAsprintf 2011-05-05 13:47:40 -06:00
Makefile.am Re-add libvirt.spec to tarball to allwo "make rpm" 2011-05-09 14:23:19 +08: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-05-18 08:31:33 -06:00
bootstrap.conf build: require newer gettext 2011-05-19 17:54:47 -06:00
cfg.mk Pass graphics setup from dst back to src via migration cookies 2011-05-16 15:18:21 +01:00
configure.ac build: require newer gettext 2011-05-19 17:54:47 -06: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 libvirt.spec: /var/cache/libvirt should be 0711. 2011-05-20 16:18:11 +01:00
mingw32-libvirt.spec.in Remove iohelper on Win32 since it is not required 2011-03-31 17:41:51 +01: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>