qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v2 2.1 3/3] docs/qmp: Fix documentation of BLOCK


From: Paolo Bonzini
Subject: Re: [Qemu-devel] [PATCH v2 2.1 3/3] docs/qmp: Fix documentation of BLOCK_JOB_READY to match code
Date: Wed, 02 Jul 2014 09:55:46 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:24.0) Gecko/20100101 Thunderbird/24.6.0

Il 01/07/2014 19:12, Eric Blake ha scritto:
On 06/27/2014 11:24 AM, Markus Armbruster wrote:
Signed-off-by: Markus Armbruster <address@hidden>
---
 docs/qmp/qmp-events.txt | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/docs/qmp/qmp-events.txt b/docs/qmp/qmp-events.txt
index 22fea58..44be891 100644
--- a/docs/qmp/qmp-events.txt
+++ b/docs/qmp/qmp-events.txt
@@ -157,12 +157,20 @@ Emitted when a block job is ready to complete.

 Data:

-- "device": device name (json-string)
+- "type":     Job type (json-string; "stream" for image streaming
+                                     "commit" for block commit)
+- "device":   Device name (json-string)
+- "len":      Maximum progress value (json-int)
+- "offset":   Current progress value (json-int)
+              On success this is equal to len.
+              On failure this is less than len.
+- "speed":    Rate limit, bytes per second (json-int)


Design question - if BLOCK_JOB_READY reports failure (that is, offset <
len), are we still guaranteed to get a BLOCK_JOB_COMPLETED that also
reports failure, or does 'query-blockjobs' completely forget about the
job? If the job is completely lost, what recourse does management have
to learn about the failure (that is, if libvirtd restarts, how will it
learn whether a previously running job was aborted due to an error, if
it missed the event)?

If you use rerror=stop/werror=stop you do have the behavior you request. The job will not abort, it will be paused and libvirt will be able to see the error. In fact, that was the rationale for adding rerror=stop/werror=stop to streaming (where you can just restart a failed job and only have to do minimal extra work, unlike mirror and commit).

There may be a couple of holes in the logic (for example a failure in bdrv_change_backing_file), but they can be plugged if necessary.

Paolo



reply via email to

[Prev in Thread] Current Thread [Next in Thread]