From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:59318) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YpZr4-0003iu-8l for qemu-devel@nongnu.org; Tue, 05 May 2015 06:13:35 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1YpZr1-0005aF-1g for qemu-devel@nongnu.org; Tue, 05 May 2015 06:13:34 -0400 Received: from mx1.redhat.com ([209.132.183.28]:55715) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1YpZr0-0005Zv-Qy for qemu-devel@nongnu.org; Tue, 05 May 2015 06:13:30 -0400 Message-ID: <554897C4.20804@redhat.com> Date: Tue, 05 May 2015 12:13:24 +0200 From: Paolo Bonzini MIME-Version: 1.0 References: <55424F3C.1050209@redhat.com> <20150505073609.GA9322@ad.nay.redhat.com> In-Reply-To: <20150505073609.GA9322@ad.nay.redhat.com> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] Fwd: qemu drive mirror assert fault List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Fam Zheng Cc: John Snow , qemu-devel , wangxiaolong@ucloud.cn On 05/05/2015 09:36, Fam Zheng wrote: > Since the gdb output is suggesting 1.5.3, it's worth to trying 2.3 which has > this: > > commit c4237dfa635900e4d1cdc6038d5efe3507f45f0c > Author: Vladimir Sementsov-Ogievskiy > Date: Thu Nov 27 12:40:46 2014 +0300 > > block: fix spoiling all dirty bitmaps by mirror and migration > > Mirror and migration use dirty bitmaps for their purposes, and since > commit [block: per caller dirty bitmap] they use their own bitmaps, not > the global one. But they use old functions bdrv_set_dirty and > bdrv_reset_dirty, which change all dirty bitmaps. > > Named dirty bitmaps series by Fam and Snow are affected: mirroring and > migration will spoil all (not related to this mirroring or migration) > named dirty bitmaps. > > This patch fixes this by adding bdrv_set_dirty_bitmap and > bdrv_reset_dirty_bitmap, which change concrete bitmap. Also, to prevent > such mistakes in future, old functions bdrv_(set,reset)_dirty are made > static, for internal block usage. > > Signed-off-by: Vladimir Sementsov-Ogievskiy > CC: John Snow > CC: Fam Zheng > CC: Denis V. Lunev > CC: Stefan Hajnoczi > CC: Kevin Wolf > Reviewed-by: John Snow > Reviewed-by: Fam Zheng > Message-id: 1417081246-3593-1-git-send-email-vsementsov@parallels.com > Signed-off-by: Max Reitz I don't think this commit is relevant. The bug is caused by bdrv_co_discard clearing the bitmap (which is not supported during iteration, and is caught by the assertion). That bdrv_reset_dirty is not removed by the commit you pointed out. Paolo