* [Qemu-devel] [PATCH 0/3] Fix some quorum nits after merge
@ 2014-02-21 23:58 Benoît Canet
2014-02-21 23:58 ` [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum Benoît Canet
` (2 more replies)
0 siblings, 3 replies; 6+ messages in thread
From: Benoît Canet @ 2014-02-21 23:58 UTC (permalink / raw)
To: qemu-devel; +Cc: kwolf, Benoît Canet, stefanha
Fix qemu-io test to ignore quorum when not compiled in [Kevin]
Fix quorum QMP event [Eric]
Fix QMP documentation [Eric]
Benoît Canet (3):
qmp: Fix BlockdevOptionQuorum.
qmp: Make Quorum error events more palatable.
qemu-io-test: Disable Quorum test when not compiled in.
block/quorum.c | 5 ++--
docs/qmp/qmp-events.txt | 72 +++++++++++++++++++++++-----------------------
qapi-schema.json | 5 ++--
tests/qemu-iotests/081 | 3 ++
tests/qemu-iotests/081.out | 2 +-
5 files changed, 46 insertions(+), 41 deletions(-)
--
1.8.3.2
^ permalink raw reply [flat|nested] 6+ messages in thread* [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum. 2014-02-21 23:58 [Qemu-devel] [PATCH 0/3] Fix some quorum nits after merge Benoît Canet @ 2014-02-21 23:58 ` Benoît Canet 2014-02-22 0:17 ` Eric Blake 2014-02-21 23:58 ` [Qemu-devel] [PATCH 2/3] qmp: Make Quorum error events more palatable Benoît Canet 2014-02-21 23:58 ` [Qemu-devel] [PATCH 3/3] qemu-io-test: Disable Quorum test when not compiled in Benoît Canet 2 siblings, 1 reply; 6+ messages in thread From: Benoît Canet @ 2014-02-21 23:58 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf, Benoît Canet, Benoit Canet, stefanha Fix some nits before QEMU 2.0 freeze. Signed-off-by: Benoit Canet <benoit@irqsave.net> --- qapi-schema.json | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/qapi-schema.json b/qapi-schema.json index fcb22800..ab5cdde 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -4437,10 +4437,11 @@ # Driver specific block device options for Quorum # # @blkverify: #optional true if the driver must print content mismatch +# set to false by default # -# @children: the children block device to use +# @children: the children block devices to use # -# @vote_threshold: the vote limit under which a read will fail +# @vote-threshold: the vote limit under which a read will fail # # Since: 2.0 ## -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum. 2014-02-21 23:58 ` [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum Benoît Canet @ 2014-02-22 0:17 ` Eric Blake 0 siblings, 0 replies; 6+ messages in thread From: Eric Blake @ 2014-02-22 0:17 UTC (permalink / raw) To: Benoît Canet, qemu-devel; +Cc: kwolf, Benoit Canet, stefanha [-- Attachment #1: Type: text/plain, Size: 1042 bytes --] On 02/21/2014 04:58 PM, Benoît Canet wrote: > Fix some nits before QEMU 2.0 freeze. > > Signed-off-by: Benoit Canet <benoit@irqsave.net> > --- > qapi-schema.json | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) Reviewed-by: Eric Blake <eblake@redhat.com> > > diff --git a/qapi-schema.json b/qapi-schema.json > index fcb22800..ab5cdde 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -4437,10 +4437,11 @@ > # Driver specific block device options for Quorum > # > # @blkverify: #optional true if the driver must print content mismatch > +# set to false by default > # > -# @children: the children block device to use > +# @children: the children block devices to use > # > -# @vote_threshold: the vote limit under which a read will fail > +# @vote-threshold: the vote limit under which a read will fail > # > # Since: 2.0 > ## > -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 604 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 2/3] qmp: Make Quorum error events more palatable. 2014-02-21 23:58 [Qemu-devel] [PATCH 0/3] Fix some quorum nits after merge Benoît Canet 2014-02-21 23:58 ` [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum Benoît Canet @ 2014-02-21 23:58 ` Benoît Canet 2014-02-22 0:17 ` Eric Blake 2014-02-21 23:58 ` [Qemu-devel] [PATCH 3/3] qemu-io-test: Disable Quorum test when not compiled in Benoît Canet 2 siblings, 1 reply; 6+ messages in thread From: Benoît Canet @ 2014-02-21 23:58 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf, Benoît Canet, Benoit Canet, stefanha Insert quorum QMP events documentation alphabetically. Also change the "ret" errno value by "error" being an strerror() in the QUORUM_REPORT_BAD qmp event. Signed-off-by: Benoit Canet <benoit@irqsave.net> --- block/quorum.c | 5 ++-- docs/qmp/qmp-events.txt | 72 +++++++++++++++++++++++----------------------- tests/qemu-iotests/081.out | 2 +- 3 files changed, 40 insertions(+), 39 deletions(-) diff --git a/block/quorum.c b/block/quorum.c index 6c28239..3ef8eaa 100644 --- a/block/quorum.c +++ b/block/quorum.c @@ -200,11 +200,12 @@ static void quorum_report_bad(QuorumAIOCB *acb, char *node_name, int ret) { QObject *data; assert(node_name); - data = qobject_from_jsonf("{ 'ret': %d" + data = qobject_from_jsonf("{ 'error': %s" ", 'node-name': %s" ", 'sector-num': %" PRId64 ", 'sectors-count': %d }", - ret, node_name, acb->sector_num, acb->nb_sectors); + strerror(ret), node_name, acb->sector_num, + acb->nb_sectors); monitor_protocol_event(QEVENT_QUORUM_REPORT_BAD, data); qobject_decref(data); } diff --git a/docs/qmp/qmp-events.txt b/docs/qmp/qmp-events.txt index 00f9515..2223220 100644 --- a/docs/qmp/qmp-events.txt +++ b/docs/qmp/qmp-events.txt @@ -225,6 +225,42 @@ Data: "timestamp": { "seconds": 1368697518, "microseconds": 326866 } } } +QUORUM_FAILURE +-------------- + +Emitted by the Quorum block driver if it fails to establish a quorum. + +Data: + +- "reference": device name if defined else node name. +- "sector-num": Number of the first sector of the failed read operation. +- "sector-count": Failed read operation sector count. + +Example: + +{ "event": "QUORUM_FAILURE", + "data": { "reference": "usr1", "sector-num": 345435, "sector-count": 5 }, + "timestamp": { "seconds": 1344522075, "microseconds": 745528 } } + +QUORUM_REPORT_BAD +----------------- + +Emitted to report a corruption of a Quorum file. + +Data: + +- "error": Human only strerror() string +- "node-name": The graph node name of the block driver state. +- "sector-num": Number of the first sector of the failed read operation. +- "sector-count": Failed read operation sector count. + +Example: + +{ "event": "QUORUM_REPORT_BAD", + "data": { "error": "Success", "node-name": "1.raw", "sector-num": 345435, + "sector-count": 5 }, + "timestamp": { "seconds": 1344522075, "microseconds": 745528 } } + RESET ----- @@ -500,39 +536,3 @@ Example: Note: If action is "reset", "shutdown", or "pause" the WATCHDOG event is followed respectively by the RESET, SHUTDOWN, or STOP events. - -QUORUM_FAILURE --------------- - -Emitted by the Quorum block driver if it fails to establish a quorum. - -Data: - -- "reference": device name if defined else node name. -- "sector-num": Number of the first sector of the failed read operation. -- "sector-count": Failed read operation sector count. - -Example: - -{ "event": "QUORUM_FAILURE", - "data": { "reference": "usr1", "sector-num": 345435, "sector-count": 5 }, - "timestamp": { "seconds": 1344522075, "microseconds": 745528 } } - -QUORUM_REPORT_BAD ------------------ - -Emitted to report a corruption of a Quorum file. - -Data: - -- "ret": The IO return code. -- "node-name": The graph node name of the block driver state. -- "sector-num": Number of the first sector of the failed read operation. -- "sector-count": Failed read operation sector count. - -Example: - -{ "event": "QUORUM_REPORT_BAD", - "data": { "ret": 0, "node-name": "1.raw", "sector-num": 345435, - "sector-count": 5 }, - "timestamp": { "seconds": 1344522075, "microseconds": 745528 } } diff --git a/tests/qemu-iotests/081.out b/tests/qemu-iotests/081.out index 4fe2f95..62611e9 100644 --- a/tests/qemu-iotests/081.out +++ b/tests/qemu-iotests/081.out @@ -30,7 +30,7 @@ Testing: -drive file=TEST_DIR/2.IMGFMT,format=IMGFMT,if=none,id=drive2 QMP_VERSION {"return": {}} {"return": {}} -{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "QUORUM_REPORT_BAD", "data": {"node-name": "", "ret": 0, "sectors-count": 20480, "sector-num": 0}} +{"timestamp": {"seconds": TIMESTAMP, "microseconds": TIMESTAMP}, "event": "QUORUM_REPORT_BAD", "data": {"node-name": "", "sectors-count": 20480, "sector-num": 0, "error": "Success"}} read 10485760/10485760 bytes at offset 0 10 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec) {"return": ""} -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
* Re: [Qemu-devel] [PATCH 2/3] qmp: Make Quorum error events more palatable. 2014-02-21 23:58 ` [Qemu-devel] [PATCH 2/3] qmp: Make Quorum error events more palatable Benoît Canet @ 2014-02-22 0:17 ` Eric Blake 0 siblings, 0 replies; 6+ messages in thread From: Eric Blake @ 2014-02-22 0:17 UTC (permalink / raw) To: Benoît Canet, qemu-devel; +Cc: kwolf, Benoit Canet, stefanha [-- Attachment #1: Type: text/plain, Size: 2319 bytes --] On 02/21/2014 04:58 PM, Benoît Canet wrote: > Insert quorum QMP events documentation alphabetically. > > Also change the "ret" errno value by "error" being an strerror() in the > QUORUM_REPORT_BAD qmp event. > > Signed-off-by: Benoit Canet <benoit@irqsave.net> > --- > block/quorum.c | 5 ++-- > docs/qmp/qmp-events.txt | 72 +++++++++++++++++++++++----------------------- > tests/qemu-iotests/081.out | 2 +- > 3 files changed, 40 insertions(+), 39 deletions(-) > > diff --git a/block/quorum.c b/block/quorum.c > index 6c28239..3ef8eaa 100644 > --- a/block/quorum.c > +++ b/block/quorum.c > @@ -200,11 +200,12 @@ static void quorum_report_bad(QuorumAIOCB *acb, char *node_name, int ret) > { > QObject *data; > assert(node_name); > - data = qobject_from_jsonf("{ 'ret': %d" > + data = qobject_from_jsonf("{ 'error': %s" > ", 'node-name': %s" > ", 'sector-num': %" PRId64 > ", 'sectors-count': %d }", > - ret, node_name, acb->sector_num, acb->nb_sectors); > + strerror(ret), node_name, acb->sector_num, Is ret positive or negative? Our typical convention is to use -errno values for return (since we prefer reporting errors as less than 0), which may mean needing strerror(-ret) here. Also, I'd suggest making 'error' optional, and only omit it when ret is non-zero. Otherwise... > +{ "event": "QUORUM_REPORT_BAD", > + "data": { "error": "Success", "node-name": "1.raw", "sector-num": 345435, we get these weird-looking "error": "Success" strings. Look at how BLOCK_JOB_COMPLETED documents things - I'd just lift that full paragraph: - "error": Error message (json-string, optional) Only present on failure. This field contains a human-readable error message. There are no semantics other than that streaming has failed and clients should not try to interpret the error string. (When we eventually add events into qapi-schema.json as a first-class citizen, it will be listed as '*error':'str') -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org [-- Attachment #2: OpenPGP digital signature --] [-- Type: application/pgp-signature, Size: 604 bytes --] ^ permalink raw reply [flat|nested] 6+ messages in thread
* [Qemu-devel] [PATCH 3/3] qemu-io-test: Disable Quorum test when not compiled in. 2014-02-21 23:58 [Qemu-devel] [PATCH 0/3] Fix some quorum nits after merge Benoît Canet 2014-02-21 23:58 ` [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum Benoît Canet 2014-02-21 23:58 ` [Qemu-devel] [PATCH 2/3] qmp: Make Quorum error events more palatable Benoît Canet @ 2014-02-21 23:58 ` Benoît Canet 2 siblings, 0 replies; 6+ messages in thread From: Benoît Canet @ 2014-02-21 23:58 UTC (permalink / raw) To: qemu-devel; +Cc: kwolf, Benoît Canet, Benoit Canet, stefanha Quorum is not compiled by default: make the quorum 081 test aware of this. Signed-off-by: Benoit Canet <benoit@irqsave.net> --- tests/qemu-iotests/081 | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/qemu-iotests/081 b/tests/qemu-iotests/081 index f053f11..c1078f6 100755 --- a/tests/qemu-iotests/081 +++ b/tests/qemu-iotests/081 @@ -56,6 +56,9 @@ function run_qemu() do_run_qemu "$@" 2>&1 | _filter_testdir | _filter_qmp | _filter_qemu_io } +test_quorum=$(qemu-img --help|grep quorum) +[ "$test_quorum" = "" ] && _supported_fmt quorum + quorum="file.driver=quorum,file.children.0.file.filename=$TEST_DIR/1.raw" quorum="$quorum,file.children.1.file.filename=$TEST_DIR/2.raw" quorum="$quorum,file.children.2.file.filename=$TEST_DIR/3.raw,file.vote-threshold=2" -- 1.8.3.2 ^ permalink raw reply related [flat|nested] 6+ messages in thread
end of thread, other threads:[~2014-02-22 0:17 UTC | newest] Thread overview: 6+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2014-02-21 23:58 [Qemu-devel] [PATCH 0/3] Fix some quorum nits after merge Benoît Canet 2014-02-21 23:58 ` [Qemu-devel] [PATCH 1/3] qmp: Fix BlockdevOptionQuorum Benoît Canet 2014-02-22 0:17 ` Eric Blake 2014-02-21 23:58 ` [Qemu-devel] [PATCH 2/3] qmp: Make Quorum error events more palatable Benoît Canet 2014-02-22 0:17 ` Eric Blake 2014-02-21 23:58 ` [Qemu-devel] [PATCH 3/3] qemu-io-test: Disable Quorum test when not compiled in Benoît Canet
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.