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 <vsement...@parallels.com> > 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 <vsement...@parallels.com> > CC: John Snow <js...@redhat.com> > CC: Fam Zheng <f...@redhat.com> > CC: Denis V. Lunev <d...@openvz.org> > CC: Stefan Hajnoczi <stefa...@redhat.com> > CC: Kevin Wolf <kw...@redhat.com> > Reviewed-by: John Snow <js...@redhat.com> > Reviewed-by: Fam Zheng <f...@redhat.com> > Message-id: 1417081246-3593-1-git-send-email-vsement...@parallels.com > Signed-off-by: Max Reitz <mre...@redhat.com>
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