[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v5 0/5] migration: do not exit on incoming failure
From: |
Vladimir Sementsov-Ogievskiy |
Subject: |
[PATCH v5 0/5] migration: do not exit on incoming failure |
Date: |
Mon, 29 Apr 2024 22:14:21 +0300 |
Hi all!
The series brings an option to not immediately exit on incoming
migration failure, giving a possibility to orchestrator to get the error
through QAPI and shutdown QEMU by "quit".
v5:
- add "migration: process_incoming_migration_co(): fix reporting s->error"
v4:
- add r-b and a-b by Fabiano and Markus
- improve wording in 04 as Markus suggested
v3:
- don't refactor the whole code around setting migration error, it seems
too much and necessary for the new feature itself
- add constant
- change behavior for HMP command
- split some things to separate patches
- and more, by Peter's suggestions
New behavior can be demonstrated like this:
bash:
(
cat <<EOF
{'execute': 'qmp_capabilities'}
{'execute': 'migrate-set-capabilities', 'arguments': {'capabilities':
[{'capability': 'events', 'state': true}]}}
{'execute': 'migrate-incoming', 'arguments': {'uri': 'exec:echo x',
'exit-on-error': false}}
EOF
sleep 1
cat <<EOF
{'execute': 'query-migrate'}
{'execute': 'quit'}
EOF
) | ./build/qemu-system-x86_64 -incoming 'defer' -qmp stdio -nographic
-nodefaults
output:
{"QMP": {"version": {"qemu": {"micro": 50, "minor": 0, "major": 9}, "package":
"v9.0.0-149-gb6295ad58c"}, "capabilities": ["oob"]}}
{"return": {}}
{"return": {}}
{"timestamp": {"seconds": 1714068847, "microseconds": 263907}, "event":
"MIGRATION", "data": {"status": "setup"}}
{"return": {}}
{"timestamp": {"seconds": 1714068847, "microseconds": 266696}, "event":
"MIGRATION", "data": {"status": "active"}}
qemu-system-x86_64: Not a migration stream
{"timestamp": {"seconds": 1714068847, "microseconds": 266766}, "event":
"MIGRATION", "data": {"status": "failed"}}
{"return": {"status": "failed", "error-desc": "load of migration failed:
Invalid argument"}}
{"timestamp": {"seconds": 1714068848, "microseconds": 237187}, "event":
"SHUTDOWN", "data": {"guest": false, "reason": "host-qmp-quit"}}
{"return": {}}
Vladimir Sementsov-Ogievskiy (5):
migration: move trace-point from migrate_fd_error to migrate_set_error
migration: process_incoming_migration_co(): complete cleanup on
failure
migration: process_incoming_migration_co(): fix reporting s->error
migration: process_incoming_migration_co(): rework error reporting
qapi: introduce exit-on-error parameter for migrate-incoming
migration/migration-hmp-cmds.c | 2 +-
migration/migration.c | 76 +++++++++++++++++++++++-----------
migration/migration.h | 3 ++
migration/trace-events | 2 +-
qapi/migration.json | 7 +++-
system/vl.c | 3 +-
6 files changed, 64 insertions(+), 29 deletions(-)
--
2.34.1
- [PATCH v5 0/5] migration: do not exit on incoming failure,
Vladimir Sementsov-Ogievskiy <=
- [PATCH v5 5/5] qapi: introduce exit-on-error parameter for migrate-incoming, Vladimir Sementsov-Ogievskiy, 2024/04/29
- [PATCH v5 1/5] migration: move trace-point from migrate_fd_error to migrate_set_error, Vladimir Sementsov-Ogievskiy, 2024/04/29
- [PATCH v5 4/5] migration: process_incoming_migration_co(): rework error reporting, Vladimir Sementsov-Ogievskiy, 2024/04/29
- [PATCH v5 2/5] migration: process_incoming_migration_co(): complete cleanup on failure, Vladimir Sementsov-Ogievskiy, 2024/04/29
- [PATCH v5 3/5] migration: process_incoming_migration_co(): fix reporting s->error, Vladimir Sementsov-Ogievskiy, 2024/04/29