From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:39641) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1aVHDG-0004nV-RX for qemu-devel@nongnu.org; Mon, 15 Feb 2016 06:21:07 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1aVHDC-0002Nt-Sx for qemu-devel@nongnu.org; Mon, 15 Feb 2016 06:21:06 -0500 Date: Mon, 15 Feb 2016 12:20:54 +0100 From: Kashyap Chamarthy Message-ID: <20160215112054.GC15761@tesla.redhat.com> References: <56C0A2B2.8070202@redhat.com> <56C0A75E.4020807@redhat.com> <20160215091259.GB5244@noname.str.redhat.com> <56C199B9.5000400@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <56C199B9.5000400@redhat.com> Subject: Re: [Qemu-devel] crash with -incoming and -snapshot List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Paolo Bonzini Cc: Kevin Wolf , qemu-devel , qemu block On Mon, Feb 15, 2016 at 10:26:17AM +0100, Paolo Bonzini wrote: > > > On 15/02/2016 10:12, Kevin Wolf wrote: > > Am 14.02.2016 um 17:12 hat Paolo Bonzini geschrieben: > >> On 14/02/2016 16:52, Paolo Bonzini wrote: > >>> Reproducer: > >>> > >>> x86_64-softmmu/qemu-system-x86_64 \ > >>> -incoming tcp:localhost:12345 -snapshot \ > >>> /vm/virt_test/images/jeos-21-64-base.qcow2 > >>> > >>> > >>> Weird as it may seem, this actually makes some sense for testing > >>> migration with non-shared storage... > >> > >> In fact, migration with non-shared storage (migrate -b) is broken in > >> general, even without -snapshot. > > > > Oh cool, does this mean that we can finally remove it? :-) > > I wouldn't object, but people are using it. :) One case I know for sure: Upstream libvirt (consequently, OpenStack Nova) falls back to 'migrate -b'/("inc:" true) approach when there's no NBD support on the destination during live block migration: # From qemuMigrationRun() function in libvirt source $ less libvirt/src/qemu/qemu_migration.c [...] if (migrate_flags & (QEMU_MONITOR_MIGRATE_NON_SHARED_DISK | QEMU_MONITOR_MIGRATE_NON_SHARED_INC)) { if (mig->nbd) { /* This will update migrate_flags on success */ if (qemuMigrationDriveMirror(driver, vm, mig, spec->dest.host.name, migrate_speed, &migrate_flags, nmigrate_disks, migrate_disks, dconn) < 0) { goto cleanup; } } else { /* Destination doesn't support NBD server. * Fall back to previous implementation. */ VIR_DEBUG("Destination doesn't support NBD server " "Falling back to previous implementation."); } } [...] This fallback also kicks in when people enable TUNNELLED migration (as NBD does not have support for it in libvirt, due to valid technical reasons documented else where). -- /kashyap