qemu-e2k/tests
Stefan Hajnoczi 21794244d4 qemu-iotests: fix 203 migration completion race
There is a race between the test's 'query-migrate' QMP command after the
QMP 'STOP' event and completing the migration:

The test case invokes 'query-migrate' upon receiving 'STOP'.  At this
point the migration thread may still be in the process of completing.
Therefore 'query-migrate' can return 'status': 'active' for a brief
window of time instead of 'status': 'completed'.  This results in
qemu-iotests 203 hanging.

Solve the race by enabling the 'events' migration capability, which
causes QEMU to emit migration-specific QMP events that do not suffer
from this race condition.  Wait for the QMP 'MIGRATION' event with
'status': 'completed'.

Reported-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Message-id: 20180305155926.25858-1-stefanha@redhat.com
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
2018-03-09 15:40:07 +01:00
..
acpi-test-data acpi-test: update FADT 2018-02-13 18:25:48 +02:00
data
decode scripts: Add decodetree.py 2018-02-22 15:44:07 -08:00
docker docker: change Fedora base image to fedora:27 2018-02-08 09:21:34 +08:00
guest-debug
image-fuzzer
keys
libqos tests/libqos: Check for valid dev pointer when looking for PCI devices 2018-03-05 09:03:17 +00:00
migration tests/migration: Add source to PC boot block 2018-02-14 10:26:21 +00:00
multiboot
qapi-schema qapi: Record 'include' directives in intermediate representation 2018-03-02 13:14:10 -06:00
qemu-iotests qemu-iotests: fix 203 migration completion race 2018-03-09 15:40:07 +01:00
rocker
tcg maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
vm docs: Add docs/devel/testing.rst 2018-02-08 09:23:07 +08:00
vmstate-static-checker-data
.gitignore qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-02 13:45:57 -06:00
ac97-test.c
acpi-utils.c
acpi-utils.h maint: Fix macros with broken 'do/while(0); ' usage 2018-01-16 14:54:52 +01:00
ahci-test.c ahci-test: fix opts leak of skip tests 2018-03-06 14:01:27 +01:00
atomic_add-bench.c
benchmark-crypto-cipher.c
benchmark-crypto-hash.c
benchmark-crypto-hmac.c
bios-tables-test.c tests/boot-sector: Drop dependence on global_qtest 2018-02-14 11:43:41 +01:00
boot-order-test.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
boot-sector.c tests/boot-sector: Drop dependence on global_qtest 2018-02-14 11:43:41 +01:00
boot-sector.h tests/boot-sector: Drop dependence on global_qtest 2018-02-14 11:43:41 +01:00
boot-serial-test.c tests/boot-serial-test: Fix problem with timeout due to dropped characters 2018-02-16 10:15:48 +00:00
check-block.sh
check-qdict.c qdict: Introduce qdict_rename_keys() 2018-03-09 15:17:47 +01:00
check-qjson.c Include qapi/qmp/qstring.h exactly where needed 2018-02-09 13:52:15 +01:00
check-qlist.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
check-qlit.c Include qapi/qmp/qnum.h exactly where needed 2018-02-09 13:52:15 +01:00
check-qnull.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
check-qnum.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
check-qobject.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
check-qom-interface.c
check-qom-proplist.c
check-qstring.c
cpu-plug-test.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
crypto-tls-x509-helpers.c
crypto-tls-x509-helpers.h
device-introspect-test.c Include qapi/qmp/qbool.h exactly where needed 2018-02-09 13:52:15 +01:00
display-vga-test.c
drive_del-test.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
ds1338-test.c libqos: Use explicit QTestState for i2c operations 2018-02-14 11:43:41 +01:00
e1000-test.c
e1000e-test.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
eepro100-test.c
endianness-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
es1370-test.c
fdc-test.c
fw_cfg-test.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
hd-geo-test.c
i440fx-test.c libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
i82801b11-test.c
ide-test.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
intel-hda-test.c
io-channel-helpers.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
io-channel-helpers.h
ioh3420-test.c
iothread.c
iothread.h
ipmi-bt-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
ipmi-kcs-test.c
ipoctal232-test.c
ivshmem-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
libqtest.c libqtest: Use qemu_strtoul() 2018-02-14 10:08:41 +01:00
libqtest.h Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
m25p80-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
m48t59-test.c tests/m48t59: Use the m48t59 test on ppc, too 2018-02-14 11:43:42 +01:00
Makefile.include Block layer patches 2018-03-06 11:20:44 +00:00
megasas-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
migration-test.c tests/migration: Add test for migration to bad destination 2018-02-14 10:31:04 +00:00
ne2000-test.c
numa-test.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
nvme-test.c
pcnet-test.c
pkix_asn1_tab.c
pnv-xscom-test.c ppc/pnv: fix XSCOM core addressing on POWER9 2018-01-17 09:35:24 +11:00
prom-env-test.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
ptimer-test-stubs.c
ptimer-test.c Clean up includes 2018-02-09 05:05:11 +01:00
ptimer-test.h
pvpanic-test.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
pxe-test.c tests/boot-sector: Drop dependence on global_qtest 2018-02-14 11:43:41 +01:00
q35-test.c libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
qemu-iotests-quick.sh
qht-bench.c tcg: define CF_PARALLEL and use it for TB hashing along with CF_COUNT_MASK 2017-10-24 13:53:41 -07:00
qmp-test.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
qom-test.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
rcutorture.c
rtas-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
rtc-test.c
rtl8139-test.c libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
sdhci-test.c sdhci-test: fix leaks 2018-03-06 14:01:27 +01:00
spapr-phb-test.c
tco-test.c libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
test-aio-multithread.c Include qapi/error.h exactly where needed 2018-02-09 13:50:17 +01:00
test-aio.c
test-arm-mptimer.c
test-base64.c
test-bdrv-drain.c test-bdrv-drain: Test graph changes in drained section 2017-12-22 15:05:32 +01:00
test-bitcnt.c
test-bitops.c
test-block-backend.c block: test blk_aio_flush() with blk->root == NULL 2018-03-02 18:39:07 +01:00
test-blockjob-txn.c blockjob: remove clock argument from block_job_sleep_ns 2017-11-29 15:11:02 +01:00
test-blockjob.c
test-bufferiszero.c
test-char.c Include less of the generated modular QAPI headers 2018-03-02 13:45:50 -06:00
test-clone-visitor.c Eliminate qapi/qmp/types.h 2018-02-09 13:52:15 +01:00
test-coroutine.c lockable: add QemuLockable 2018-02-08 09:22:03 +08:00
test-crypto-afsplit.c
test-crypto-block.c tests: Run the luks tests in test-crypto-block only if encryption is available 2017-11-08 11:03:46 +00:00
test-crypto-cipher.c
test-crypto-hash.c
test-crypto-hmac.c
test-crypto-ivgen.c
test-crypto-pbkdf.c
test-crypto-secret.c
test-crypto-tlscredsx509.c
test-crypto-tlssession.c
test-crypto-xts.c
test-cutils.c
test-filter-mirror.c libqtest: Add qtest_[v]startf() 2017-10-20 13:32:10 +02:00
test-filter-redirector.c tests/test-filter-redirector: move close() 2018-02-07 14:09:25 +01:00
test-hbitmap.c tests/hbitmap: use ARRAY_SIZE macro 2018-02-10 10:44:30 +03:00
test-hmp.c net: Remove the deprecated 'host_net_add' and 'host_net_remove' HMP commands 2018-03-05 10:30:15 +08:00
test-int128.c
test-io-channel-buffer.c
test-io-channel-command.c
test-io-channel-file.c io: Fix QIOChannelFile when creating and opening read-write 2018-02-15 16:54:57 +00:00
test-io-channel-socket.c qio: non-default context for async conn 2018-03-06 10:19:06 +00:00
test-io-channel-tls.c qio: non-default context for TLS handshake 2018-03-06 10:19:07 +00:00
test-io-task.c qio: non-default context for threaded qtask 2018-03-06 10:19:05 +00:00
test-iov.c
test-keyval.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
test-logging.c
test-mul64.c
test-netfilter.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
test-opts-visitor.c
test-qapi-util.c Drop superfluous includes of qapi-types.h and test-qapi-types.h 2018-02-09 05:05:11 +01:00
test-qdev-global-props.c
test-qdist.c
test-qemu-opts.c test-qemu-opts: Test qemu_opts_to_qdict_filtered() 2018-03-09 15:17:47 +01:00
test-qga.c Include qapi/qmp/qdict.h exactly where needed 2018-02-09 13:52:15 +01:00
test-qht-par.c
test-qht.c
test-qmp-cmds.c qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-02 13:45:57 -06:00
test-qmp-event.c qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-02 13:45:57 -06:00
test-qobject-input-visitor.c qapi: Move qapi-schema.json to qapi/, rename generated files 2018-03-02 13:45:57 -06:00
test-qobject-output-visitor.c tests/qapi: use QEMU_IS_ALIGNED macro 2018-02-10 10:44:58 +03:00
test-rcu-list.c
test-replication.c Move include qemu/option.h from qemu-common.h to actual users 2018-02-09 13:52:16 +01:00
test-shift128.c
test-string-input-visitor.c Eliminate qapi/qmp/types.h 2018-02-09 13:52:15 +01:00
test-string-output-visitor.c tests/qapi: use ARRAY_SIZE macro 2018-02-10 10:45:14 +03:00
test-thread-pool.c
test-throttle.c
test-timed-average.c
test-uuid.c util: add is_equal to UUID API 2017-12-20 22:01:24 +08:00
test-visitor-serialization.c qapi: Empty out qapi-schema.json 2018-03-02 13:45:50 -06:00
test-vmstate.c migration: Route more error paths 2017-09-27 11:44:18 +01:00
test-write-threshold.c
test-x86-cpuid-compat.c Include qapi/qmp/qlist.h exactly where needed 2018-02-09 13:52:15 +01:00
test-x86-cpuid.c
test-xbzrle.c
tmp105-test.c libqos: Use explicit QTestState for i2c operations 2018-02-14 11:43:41 +01:00
tpci200-test.c
tpm-crb-test.c tests: Move common TPM test code into tpm-emu.c 2018-02-21 07:24:50 -05:00
tpm-emu.c tests: add test for TPM TIS device 2018-02-21 07:24:50 -05:00
tpm-emu.h tests: Move common TPM test code into tpm-emu.c 2018-02-21 07:24:50 -05:00
tpm-tis-test.c tests: add test for TPM TIS device 2018-02-21 07:24:50 -05:00
usb-hcd-ehci-test.c libqos: Track QTestState with QPCIBus 2018-02-14 11:43:02 +01:00
usb-hcd-ohci-test.c
usb-hcd-uhci-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
usb-hcd-xhci-test.c
vhost-user-bridge.c tests: Avoid 'do/while(false); ' in vhost-user-bridge 2018-01-16 14:54:52 +01:00
vhost-user-test.c libqos: Use explicit QTestState for fw_cfg operations 2018-02-14 11:43:41 +01:00
virtio-9p-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
virtio-balloon-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
virtio-blk-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
virtio-console-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
virtio-net-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
virtio-rng-test.c
virtio-scsi-test.c libqos: Use explicit QTestState for remaining libqos operations 2018-02-14 11:43:41 +01:00
virtio-serial-test.c tests: Enable the very simple virtio tests on s390x, too 2017-10-20 13:32:10 +02:00
vmgenid-test.c tests/boot-sector: Drop dependence on global_qtest 2018-02-14 11:43:41 +01:00
vmxnet3-test.c
wdt_ib700-test.c wdt_ib700-test: Drop dependence on global_qtest 2018-02-14 11:43:42 +01:00