Thanks for telling me that. I didn't notice this patch. I just caught this error when I used it and read the source code, it should be fixed.
Thanks Li On Wed, Dec 9, 2020 at 5:23 PM David Edmondson <d...@dme.org> wrote: > On Wednesday, 2020-12-09 at 07:20:29 GMT, Li Zhang wrote: > > > This patch is to avoid executing migrations twice, which causes > > coredump. After the migration has been completed, guest is in > postmigrated > > status on source host and the block device is inactive. If executing > > migration again, it will cause coredump and a block error. For exmaple, > > executing #migrate "exec:cat>file" twice on source host, block error: > > bdrv_inactivate_recurse: Assertion `!(bs->open_flags & BDRV_O_INACTIVE)' > failed > > > > Signed-off-by: Li Zhang <li.zh...@cloud.ionos.com> > > There is an existing proposal for this (the same approach) in > https://lore.kernel.org/r/6b704294ad2e405781c38fb38d68c...@h3c.com. > > > --- > > migration/migration.c | 5 +++++ > > 1 file changed, 5 insertions(+) > > > > diff --git a/migration/migration.c b/migration/migration.c > > index 87a9b59f83..113f7e1e41 100644 > > --- a/migration/migration.c > > +++ b/migration/migration.c > > @@ -2115,6 +2115,11 @@ static bool migrate_prepare(MigrationState *s, > bool blk, bool blk_inc, > > return false; > > } > > > > + if (runstate_check(RUN_STATE_POSTMIGRATE)) { > > + error_setg(errp, "Unable to migrate, guest has been migrated"); > > + return false; > > + } > > + > > if (migration_is_blocked(errp)) { > > return false; > > } > > -- > > 2.18.4 > > dme. > -- > Ah, oh your hair is beautiful. >