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.