nbd patches for 2019-05-07

- iotest improvements
 -----BEGIN PGP SIGNATURE-----
 
 iQEcBAABCAAGBQJc0Z2CAAoJEKeha0olJ0Nqj0MH/30RWZdZYP1xCHMgrHHwfKgb
 765TxmcvbTMfa4S72yPyrF54yF51FCq/YsU6TOkJeCz6vgGI3DcIwdiXHm533T71
 Yx4XOofynA5orX1t55t0TGok5eOkiaPfE79kp8/NkANxCTDOUoRrt7DjfPjTEgFJ
 w0y0leeAT9qCHWN8uqFW9bXatTyv6m3GLiOEcCEHRYWqk3oli8Errf1sq8f5oML3
 4yH9QRMi/frIbAFF46LVZMQ1rdLdJkSgRuZsWXpUYDrQe+2g0+wLSid9CyotlZL+
 QvHohu9G7XoJhOyHDCKroBBIPs1wyVoVhsUeyj3kemTA5uyRGS9mP0qSLuJvrhE=
 =oQZY
 -----END PGP SIGNATURE-----

Merge remote-tracking branch 'remotes/ericb/tags/pull-nbd-2019-05-07' into staging

nbd patches for 2019-05-07

- iotest improvements

# gpg: Signature made Tue 07 May 2019 16:00:18 BST
# gpg:                using RSA key A7A16B4A2527436A
# gpg: Good signature from "Eric Blake <eblake@redhat.com>" [full]
# gpg:                 aka "Eric Blake (Free Software Programmer) <ebb9@byu.net>" [full]
# gpg:                 aka "[jpeg image of size 6874]" [full]
# Primary key fingerprint: 71C2 CC22 B1C4 6029 27D2  F3AA A7A1 6B4A 2527 436A

* remotes/ericb/tags/pull-nbd-2019-05-07:
  iotests: Make 182 do without device_add
  iotests: Tweak 221 sizing for different hole granularities
  tests/qemu-iotests: Fix more reference output files due to recent qemu-io change
  iotests: Fix 233 for ports other than 10809
  qemu-nbd: Look up flag names in array

Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
This commit is contained in:
Peter Maydell 2019-05-08 16:10:24 +01:00
commit df06df4f41
11 changed files with 132 additions and 115 deletions

View File

@ -127,18 +127,32 @@ typedef struct NBDExtent {
/* Transmission (export) flags: sent from server to client during handshake,
but describe what will happen during transmission */
#define NBD_FLAG_HAS_FLAGS (1 << 0) /* Flags are there */
#define NBD_FLAG_READ_ONLY (1 << 1) /* Device is read-only */
#define NBD_FLAG_SEND_FLUSH (1 << 2) /* Send FLUSH */
#define NBD_FLAG_SEND_FUA (1 << 3) /* Send FUA (Force Unit Access) */
#define NBD_FLAG_ROTATIONAL (1 << 4) /* Use elevator algorithm -
rotational media */
#define NBD_FLAG_SEND_TRIM (1 << 5) /* Send TRIM (discard) */
#define NBD_FLAG_SEND_WRITE_ZEROES (1 << 6) /* Send WRITE_ZEROES */
#define NBD_FLAG_SEND_DF (1 << 7) /* Send DF (Do not Fragment) */
#define NBD_FLAG_CAN_MULTI_CONN (1 << 8) /* Multi-client cache consistent */
#define NBD_FLAG_SEND_RESIZE (1 << 9) /* Send resize */
#define NBD_FLAG_SEND_CACHE (1 << 10) /* Send CACHE (prefetch) */
enum {
NBD_FLAG_HAS_FLAGS_BIT = 0, /* Flags are there */
NBD_FLAG_READ_ONLY_BIT = 1, /* Device is read-only */
NBD_FLAG_SEND_FLUSH_BIT = 2, /* Send FLUSH */
NBD_FLAG_SEND_FUA_BIT = 3, /* Send FUA (Force Unit Access) */
NBD_FLAG_ROTATIONAL_BIT = 4, /* Use elevator algorithm -
rotational media */
NBD_FLAG_SEND_TRIM_BIT = 5, /* Send TRIM (discard) */
NBD_FLAG_SEND_WRITE_ZEROES_BIT = 6, /* Send WRITE_ZEROES */
NBD_FLAG_SEND_DF_BIT = 7, /* Send DF (Do not Fragment) */
NBD_FLAG_CAN_MULTI_CONN_BIT = 8, /* Multi-client cache consistent */
NBD_FLAG_SEND_RESIZE_BIT = 9, /* Send resize */
NBD_FLAG_SEND_CACHE_BIT = 10, /* Send CACHE (prefetch) */
};
#define NBD_FLAG_HAS_FLAGS (1 << NBD_FLAG_HAS_FLAGS_BIT)
#define NBD_FLAG_READ_ONLY (1 << NBD_FLAG_READ_ONLY_BIT)
#define NBD_FLAG_SEND_FLUSH (1 << NBD_FLAG_SEND_FLUSH_BIT)
#define NBD_FLAG_SEND_FUA (1 << NBD_FLAG_SEND_FUA_BIT)
#define NBD_FLAG_ROTATIONAL (1 << NBD_FLAG_ROTATIONAL_BIT)
#define NBD_FLAG_SEND_TRIM (1 << NBD_FLAG_SEND_TRIM_BIT)
#define NBD_FLAG_SEND_WRITE_ZEROES (1 << NBD_FLAG_SEND_WRITE_ZEROES_BIT)
#define NBD_FLAG_SEND_DF (1 << NBD_FLAG_SEND_DF_BIT)
#define NBD_FLAG_CAN_MULTI_CONN (1 << NBD_FLAG_CAN_MULTI_CONN_BIT)
#define NBD_FLAG_SEND_RESIZE (1 << NBD_FLAG_SEND_RESIZE_BIT)
#define NBD_FLAG_SEND_CACHE (1 << NBD_FLAG_SEND_CACHE_BIT)
/* New-style handshake (global) flags, sent from server to client, and
control what will happen during handshake phase. */

View File

@ -279,37 +279,25 @@ static int qemu_nbd_client_list(SocketAddress *saddr, QCryptoTLSCreds *tls,
printf(" description: %s\n", list[i].description);
}
if (list[i].flags & NBD_FLAG_HAS_FLAGS) {
static const char *const flag_names[] = {
[NBD_FLAG_READ_ONLY_BIT] = "readonly",
[NBD_FLAG_SEND_FLUSH_BIT] = "flush",
[NBD_FLAG_SEND_FUA_BIT] = "fua",
[NBD_FLAG_ROTATIONAL_BIT] = "rotational",
[NBD_FLAG_SEND_TRIM_BIT] = "trim",
[NBD_FLAG_SEND_WRITE_ZEROES_BIT] = "zeroes",
[NBD_FLAG_SEND_DF_BIT] = "df",
[NBD_FLAG_CAN_MULTI_CONN_BIT] = "multi",
[NBD_FLAG_SEND_RESIZE_BIT] = "resize",
[NBD_FLAG_SEND_CACHE_BIT] = "cache",
};
printf(" size: %" PRIu64 "\n", list[i].size);
printf(" flags: 0x%x (", list[i].flags);
if (list[i].flags & NBD_FLAG_READ_ONLY) {
printf(" readonly");
}
if (list[i].flags & NBD_FLAG_SEND_FLUSH) {
printf(" flush");
}
if (list[i].flags & NBD_FLAG_SEND_FUA) {
printf(" fua");
}
if (list[i].flags & NBD_FLAG_ROTATIONAL) {
printf(" rotational");
}
if (list[i].flags & NBD_FLAG_SEND_TRIM) {
printf(" trim");
}
if (list[i].flags & NBD_FLAG_SEND_WRITE_ZEROES) {
printf(" zeroes");
}
if (list[i].flags & NBD_FLAG_SEND_DF) {
printf(" df");
}
if (list[i].flags & NBD_FLAG_CAN_MULTI_CONN) {
printf(" multi");
}
if (list[i].flags & NBD_FLAG_SEND_RESIZE) {
printf(" resize");
}
if (list[i].flags & NBD_FLAG_SEND_CACHE) {
printf(" cache");
for (size_t bit = 0; bit < ARRAY_SIZE(flag_names); bit++) {
if (flag_names[bit] && (list[i].flags & (1 << bit))) {
printf(" %s", flag_names[bit]);
}
}
printf(" )\n");
}

View File

@ -2,15 +2,15 @@ QA output created by 059
=== Testing invalid granularity ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.vmdk: Invalid granularity, image may be corrupt
qemu-io: can't open device TEST_DIR/t.vmdk: Invalid granularity, image may be corrupt
=== Testing too big L2 table size ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.vmdk: L2 table size too big
qemu-io: can't open device TEST_DIR/t.vmdk: L2 table size too big
=== Testing too big L1 table size ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.vmdk: L1 size too big
qemu-io: can't open device TEST_DIR/t.vmdk: L1 size too big
=== Testing monolithicFlat creation and opening ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=2147483648 subformat=monolithicFlat
@ -2050,7 +2050,7 @@ wrote 512/512 bytes at offset 10240
=== Testing monolithicFlat with internally generated JSON file name ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864 subformat=monolithicFlat
can't open: Cannot use relative extent paths with VMDK descriptor file 'json:{"image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "read_aio"}'
qemu-io: can't open: Cannot use relative extent paths with VMDK descriptor file 'json:{"image": {"driver": "file", "filename": "TEST_DIR/t.IMGFMT"}, "driver": "blkdebug", "inject-error.0.event": "read_aio"}'
=== Testing version 3 ===
image: TEST_DIR/iotest-version3.IMGFMT

View File

@ -1,43 +1,43 @@
QA output created by 083
=== Check disconnect before neg1 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect after neg1 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect 8 neg1 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect 16 neg1 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect before export ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect after export ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect 4 export ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect 12 export ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect 16 export ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect before neg2 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect after neg2 ===
@ -45,11 +45,11 @@ read failed: Input/output error
=== Check disconnect 8 neg2 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect 10 neg2 ===
can't open device nbd+tcp://127.0.0.1:PORT/foo
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/foo
=== Check disconnect before request ===
@ -86,23 +86,23 @@ read 512/512 bytes at offset 0
=== Check disconnect before neg-classic ===
can't open device nbd+tcp://127.0.0.1:PORT/
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
=== Check disconnect 8 neg-classic ===
can't open device nbd+tcp://127.0.0.1:PORT/
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
=== Check disconnect 16 neg-classic ===
can't open device nbd+tcp://127.0.0.1:PORT/
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
=== Check disconnect 24 neg-classic ===
can't open device nbd+tcp://127.0.0.1:PORT/
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
=== Check disconnect 28 neg-classic ===
can't open device nbd+tcp://127.0.0.1:PORT/
qemu-io: can't open device nbd+tcp://127.0.0.1:PORT/
=== Check disconnect after neg-classic ===
@ -110,43 +110,43 @@ read failed: Input/output error
=== Check disconnect before neg1 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect after neg1 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect 8 neg1 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect 16 neg1 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect before export ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect after export ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect 4 export ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect 12 export ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect 16 export ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect before neg2 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect after neg2 ===
@ -154,11 +154,11 @@ read failed: Input/output error
=== Check disconnect 8 neg2 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect 10 neg2 ===
can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///foo?socket=TEST_DIR/nbd.sock
=== Check disconnect before request ===
@ -195,23 +195,23 @@ read 512/512 bytes at offset 0
=== Check disconnect before neg-classic ===
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
=== Check disconnect 8 neg-classic ===
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
=== Check disconnect 16 neg-classic ===
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
=== Check disconnect 24 neg-classic ===
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
=== Check disconnect 28 neg-classic ===
can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
qemu-io: can't open device nbd+unix:///?socket=TEST_DIR/nbd.sock
=== Check disconnect after neg-classic ===

View File

@ -2,25 +2,25 @@ QA output created by 092
== Invalid cluster size ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: Cluster size must be between 512 and 64k
== Invalid L2 table size ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
qemu-io: can't open device TEST_DIR/t.qcow: L2 table size must be between 512 and 64k
== Invalid size ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.qcow: Image too large
can't open device TEST_DIR/t.qcow: Image too large
qemu-io: can't open device TEST_DIR/t.qcow: Image too large
qemu-io: can't open device TEST_DIR/t.qcow: Image too large
== Invalid backing file length ==
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=67108864
can't open device TEST_DIR/t.qcow: Backing file name too long
can't open device TEST_DIR/t.qcow: Backing file name too long
qemu-io: can't open device TEST_DIR/t.qcow: Backing file name too long
qemu-io: can't open device TEST_DIR/t.qcow: Backing file name too long
*** done

View File

@ -31,6 +31,7 @@ _cleanup()
{
_cleanup_test_img
rm -f "$TEST_IMG.overlay"
rm -f "$TEST_DIR/nbd.socket"
}
trap "_cleanup; exit \$status" 0 1 2 3 15
@ -126,15 +127,26 @@ success_or_failure=y _send_qemu_cmd $QEMU_HANDLE \
'return' \
'error'
# Now we attach the image to a virtio-blk device. This device does
# require some permissions (at least WRITE and READ_CONSISTENT), so if
# Start an NBD server to which we can attach node1
success_or_failure=y _send_qemu_cmd $QEMU_HANDLE \
"{'execute': 'nbd-server-start',
'arguments': {
'addr': {
'type': 'unix',
'data': {
'path': '$TEST_DIR/nbd.socket'
} } } }" \
'return' \
'error'
# Now we attach the image to the NBD server. This server does require
# some permissions (at least WRITE and READ_CONSISTENT), so if
# reopening node0 unshared any (which it should not have), this will
# fail (but it should not).
success_or_failure=y _send_qemu_cmd $QEMU_HANDLE \
"{'execute': 'device_add',
"{'execute': 'nbd-server-add',
'arguments': {
'driver': 'virtio-blk',
'drive': 'node1'
'device': 'node1'
} }" \
'return' \
'error'

View File

@ -14,4 +14,5 @@ Formatting 'TEST_DIR/t.qcow2.overlay', fmt=qcow2 size=197120 backing_file=TEST_D
{"return": {}}
{"return": {}}
{"return": {}}
{"return": {}}
*** done

View File

@ -2,7 +2,7 @@
#
# Test qemu-img vs. unaligned images
#
# Copyright (C) 2018 Red Hat, Inc.
# Copyright (C) 2018-2019 Red Hat, Inc.
#
# This program is free software; you can redistribute it and/or modify
# it under the terms of the GNU General Public License as published by
@ -41,16 +41,16 @@ echo
echo "=== Check mapping of unaligned raw image ==="
echo
_make_test_img 43009 # qemu-img create rounds size up
_make_test_img 65537 # qemu-img create rounds size up
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
truncate --size=43009 "$TEST_IMG" # so we resize it and check again
truncate --size=65537 "$TEST_IMG" # so we resize it and check again
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
$QEMU_IO -c 'w 43008 1' "$TEST_IMG" | _filter_qemu_io # writing also rounds up
$QEMU_IO -c 'w 65536 1' "$TEST_IMG" | _filter_qemu_io # writing also rounds up
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
truncate --size=43009 "$TEST_IMG" # so we resize it and check again
truncate --size=65537 "$TEST_IMG" # so we resize it and check again
$QEMU_IMG map --output=json "$TEST_IMG" | _filter_qemu_img_map
# success, all done

View File

@ -2,15 +2,15 @@ QA output created by 221
=== Check mapping of unaligned raw image ===
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=43009
[{ "start": 0, "length": 43520, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
[{ "start": 0, "length": 43520, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
wrote 1/1 bytes at offset 43008
Formatting 'TEST_DIR/t.IMGFMT', fmt=IMGFMT size=65537
[{ "start": 0, "length": 66048, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
[{ "start": 0, "length": 66048, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
wrote 1/1 bytes at offset 65536
1 bytes, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
[{ "start": 0, "length": 40960, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
{ "start": 40960, "length": 2049, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
{ "start": 43009, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
[{ "start": 0, "length": 40960, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
{ "start": 40960, "length": 2049, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
{ "start": 43009, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
[{ "start": 0, "length": 65536, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
{ "start": 65536, "length": 1, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
{ "start": 65537, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
[{ "start": 0, "length": 65536, "depth": 0, "zero": true, "data": false, "offset": OFFSET},
{ "start": 65536, "length": 1, "depth": 0, "zero": false, "data": true, "offset": OFFSET},
{ "start": 65537, "length": 511, "depth": 0, "zero": true, "data": false, "offset": OFFSET}]
*** done

View File

@ -139,11 +139,13 @@ nbd_server_start_tcp_socket \
$QEMU_IMG info --image-opts \
--object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
$QEMU_IMG info --image-opts \
--object tls-creds-x509,dir=${tls_dir}/client3,endpoint=client,id=tls0 \
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0
driver=nbd,host=$nbd_tcp_addr,port=$nbd_tcp_port,tls-creds=tls0 \
2>&1 | sed "s/$nbd_tcp_port/PORT/g"
echo
echo "== final server log =="

View File

@ -57,8 +57,8 @@ read 1048576/1048576 bytes at offset 1048576
1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
== check TLS with authorization ==
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=10809,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=10809,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
qemu-img: Could not open 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': Failed to read option reply: Cannot read from TLS channel: Software caused connection abort
== final server log ==
qemu-nbd: option negotiation failed: Verify failed: No certificate was found.