* Yury Kotov (yury-ko...@yandex-team.ru) wrote: > Hi, > > This series adds an UUID validation at the start of the migration > on the target side. The idea is to identify the source of migration. > > Possible case of problem: > 1. There are 3 servers: A, B and C > 2. Server A has a VM 1, server B has a VM 2 > 3. VM 1 and VM 2 want to migrate to the server C > 4. Target of VM 1 starts on the server C and dies too quickly for some reason > 5. Target of VM 2 starts just after that and listen the same tcp port X, which > the target of VM 1 wanted to use > 6. Source of VM 1 connects to the tcp port X, and migrates to VM 2 source
That shouldn't be possible in practice; you specify the destination tcp port when you start the destination qemu; so unless the management code that starts the migration is very broken it should know which port it's migrating to. However, if it is very broken then this is a good check. Dave > 7. It's possible that migration might be successful (e.g., devices are the > same) > 8. So, the target of VM 2 is in undefined state > > The series adds a capability to prevent successful (by mistake) migration. > > The new capability x-validate-uuid only affects the source so that it sends > its UUID to the target. The target will validate the received UUID and stop > the migration if UUIDs are not equal. > > Regards, > Yury > > Yury Kotov (3): > migration: Add x-validate-uuid capability > tests/libqtest: Allow to set expected exit status > tests/migration: Add a test for x-validate-uuid capability > > migration/migration.c | 9 +++ > migration/migration.h | 1 + > migration/savevm.c | 45 +++++++++++++ > qapi/migration.json | 5 +- > tests/libqtest.c | 14 ++++- > tests/libqtest.h | 9 +++ > tests/migration-test.c | 140 ++++++++++++++++++++++++++++++++--------- > 7 files changed, 189 insertions(+), 34 deletions(-) > > -- > 2.22.0 > -- Dr. David Alan Gilbert / dgilb...@redhat.com / Manchester, UK