qemu-block
[Top][All Lists]
Advanced

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

Re: [Qemu-block] [PATCH v4 01/21] iotests: Make 233 output more reliable


From: Daniel P . Berrangé
Subject: Re: [Qemu-block] [PATCH v4 01/21] iotests: Make 233 output more reliable
Date: Fri, 18 Jan 2019 10:02:57 +0000
User-agent: Mutt/1.10.1 (2018-07-13)

On Thu, Jan 17, 2019 at 01:36:38PM -0600, Eric Blake wrote:
> We have a race between the nbd server and the client both trying
> to report errors at once which can make the test sometimes fail
> if the output lines swap order under load.  Break the race by
> collecting server messages into a file and then replaying that
> at the end of the test.
> 
> Signed-off-by: Eric Blake <address@hidden>
> CC: Daniel P. Berrangé <address@hidden>
> 
> ---
> An alternative solution might be to silence the message from the
> server by default, and output it only when -v was passed

I wouldn't consider this an either/or situation. It is probably
good practice to qemu-nbd to be completely silent wrt client
problems so a malicious client can't spam the qemu-nbd log (if
any). None the less it is also useful to have the iotests validate
that this log message is printed.

Reviewed-by: Daniel P. Berrangé <address@hidden>


> ---
>  tests/qemu-iotests/233     | 11 ++++++++---
>  tests/qemu-iotests/233.out |  4 +++-
>  2 files changed, 11 insertions(+), 4 deletions(-)
> 
> diff --git a/tests/qemu-iotests/233 b/tests/qemu-iotests/233
> index 1814efe3333..ab15c777370 100755
> --- a/tests/qemu-iotests/233
> +++ b/tests/qemu-iotests/233
> @@ -2,7 +2,7 @@
>  #
>  # Test NBD TLS certificate / authorization integration
>  #
> -# 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
> @@ -30,6 +30,7 @@ _cleanup()
>  {
>      nbd_server_stop
>      _cleanup_test_img
> +    rm -f "$TEST_DIR/server.log"
>      tls_x509_cleanup
>  }
>  trap "_cleanup; exit \$status" 0 1 2 3 15
> @@ -66,7 +67,7 @@ $QEMU_IO -c 'w -P 0x11 1m 1m' "$TEST_IMG" | _filter_qemu_io
> 
>  echo
>  echo "== check TLS client to plain server fails =="
> -nbd_server_start_tcp_socket -f $IMGFMT "$TEST_IMG"
> +nbd_server_start_tcp_socket -f $IMGFMT "$TEST_IMG" 2> "$TEST_DIR/server.log"
> 
>  $QEMU_IMG info --image-opts \
>      --object tls-creds-x509,dir=${tls_dir}/client1,endpoint=client,id=tls0 \
> @@ -81,7 +82,7 @@ echo "== check plain client to TLS server fails =="
>  nbd_server_start_tcp_socket \
>      --object 
> tls-creds-x509,dir=${tls_dir}/server1,endpoint=server,id=tls0,verify-peer=yes 
> \
>      --tls-creds tls0 \
> -    -f $IMGFMT "$TEST_IMG"
> +    -f $IMGFMT "$TEST_IMG" 2>> "$TEST_DIR/server.log"
> 
>  $QEMU_IMG info nbd://localhost:$nbd_tcp_port 2>&1 | sed 
> "s/$nbd_tcp_port/PORT/g"
> 
> @@ -109,6 +110,10 @@ $QEMU_IO -c 'r -P 0x11 1m 1m' -c 'w -P 0x22 1m 1m' 
> --image-opts \
> 
>  $QEMU_IO -f $IMGFMT -r -U -c 'r -P 0x22 1m 1m' "$TEST_IMG" | _filter_qemu_io
> 
> +echo
> +echo "== final server log =="
> +cat "$TEST_DIR/server.log"
> +
>  # success, all done
>  echo "*** done"
>  rm -f $seq.full
> diff --git a/tests/qemu-iotests/233.out b/tests/qemu-iotests/233.out
> index 5f416721b03..2199d8a8b32 100644
> --- a/tests/qemu-iotests/233.out
> +++ b/tests/qemu-iotests/233.out
> @@ -27,7 +27,6 @@ virtual size: 64M (67108864 bytes)
>  disk size: unavailable
> 
>  == check TLS with different CA fails ==
> -qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
>  qemu-img: Could not open 
> 'driver=nbd,host=127.0.0.1,port=PORT,tls-creds=tls0': The certificate hasn't 
> got a known issuer
> 
>  == perform I/O over TLS ==
> @@ -37,4 +36,7 @@ wrote 1048576/1048576 bytes at offset 1048576
>  1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
>  read 1048576/1048576 bytes at offset 1048576
>  1 MiB, X ops; XX:XX:XX.X (XXX YYY/sec and XXX ops/sec)
> +
> +== final server log ==
> +qemu-nbd: option negotiation failed: Verify failed: No certificate was found.
>  *** done
> -- 
> 2.20.1
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



reply via email to

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