qemu-e2k/qapi
Kashyap Chamarthy c117bb14ff QAPI & interop: Clarify events emitted by 'block-job-cancel'
When you cancel an in-progress 'mirror' job (or "active `block-commit`")
with QMP `block-job-cancel`, it emits the event: BLOCK_JOB_CANCELLED.
However, when `block-job-cancel` is issued *after* `drive-mirror` has
indicated (via the event BLOCK_JOB_READY) that the source and
destination have reached synchronization:

    [...] # Snip `drive-mirror` invocation & outputs
    {
      "execute":"block-job-cancel",
      "arguments":{
        "device":"virtio0"
      }
    }

    {"return": {}}

It (`block-job-cancel`) will counterintuitively emit the event
'BLOCK_JOB_COMPLETED':

    {
      "timestamp":{
        "seconds":1510678024,
        "microseconds":526240
      },
      "event":"BLOCK_JOB_COMPLETED",
      "data":{
        "device":"virtio0",
        "len":41126400,
        "offset":41126400,
        "speed":0,
        "type":"mirror"
      }
    }

But this is expected behaviour, where the _COMPLETED event indicates
that synchronization has successfully ended (and the destination now has
a point-in-time copy, which is at the time of cancel).

So add a small note to this effect in 'block-core.json'.  While at it,
also update the "Live disk synchronization -- drive-mirror and
blockdev-mirror" section in 'live-block-operations.rst'.

(Thanks: Max Reitz for reminding me of this caveat on IRC.)

Signed-off-by: Kashyap Chamarthy <kchamart@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
2017-11-27 14:59:35 +01:00
..
block-core.json QAPI & interop: Clarify events emitted by 'block-job-cancel' 2017-11-27 14:59:35 +01:00
block.json qapi-schema: Improve section headings 2017-09-04 13:09:12 +02:00
char.json qapi-schema: Collect char device stuff in qapi/char.json 2017-09-04 13:09:12 +02:00
common.json qapi-schema: Improve section headings 2017-09-04 13:09:12 +02:00
crypto.json qapi-schema: Improve section headings 2017-09-04 13:09:12 +02:00
introspect.json qapi-schema: Introspection doc is in the wrong section, fix 2017-09-04 13:09:12 +02:00
Makefile.objs
migration.json migration, xen: Fix block image lock issue on live migration 2017-11-21 19:42:26 +01:00
net.json qapi-schema: Collect net device stuff in qapi/net.json 2017-09-04 13:09:12 +02:00
opts-visitor.c qapi: Fix QemuOpts visitor regression on unvisited input 2017-03-22 19:24:34 +01:00
qapi-clone-visitor.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
qapi-dealloc-visitor.c qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
qapi-util.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
qapi-visit-core.c qapi: Change data type of the FOO_lookup generated for enum FOO 2017-09-04 13:09:13 +02:00
qmp-dispatch.c qapi: Mechanically convert FOO_lookup[...] to FOO_str(...) 2017-09-04 13:09:13 +02:00
qmp-event.c qobject: Use simpler QDict/QList scalar insertion macros 2017-05-09 09:13:51 +02:00
qmp-registry.c
qobject-input-visitor.c qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
qobject-output-visitor.c qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
rocker.json
run-state.json qapi: Rename WatchdogExpirationAction enum 2017-10-02 08:40:01 +02:00
sockets.json qapi-schema: Collect sockets stuff in qapi/sockets.json 2017-09-04 13:09:12 +02:00
string-input-visitor.c qapi/qnull: Add own header 2017-11-17 18:21:30 +01:00
string-output-visitor.c qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
tpm.json tpm: Added support for TPM emulator 2017-10-13 07:34:33 -04:00
trace-events qapi: Use QNull for a more regular visit_type_null() 2017-07-24 13:35:11 +02:00
trace.json qapi-schema: Improve section headings 2017-09-04 13:09:12 +02:00
transaction.json qapi-schema: Collect transaction stuff in qapi/transaction.json 2017-09-04 13:09:12 +02:00
ui.json ui: normalize the 'sysrq' key into the 'print' key 2017-10-23 10:50:02 +02:00