[Qemu-devel] [PULL v1 0/9] Merge QEMU I/O 2017/09/05

Daniel P. Berrange posted 9 patches 6 years, 6 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/qemu tags/patchew/20170905092230.8243-1-berrange@redhat.com
Test checkpatch passed
Test docker passed
Test s390x passed
block/sheepdog.c            |   2 +-
block/ssh.c                 |   2 +-
include/io/channel.h        |  92 +++++++++++-
include/qemu/sockets.h      |  12 +-
io/channel-socket.c         |   2 +-
io/channel.c                |  94 ++++++++++++
tests/Makefile.include      |   2 +
tests/io-channel-helpers.c  | 102 ++-----------
tests/test-io-channel-tls.c |   6 +-
tests/test-listen.c         | 253 ++++++++++++++++++++++++++++++++
util/qemu-sockets.c         | 343 +++++++++++++++-----------------------------
11 files changed, 570 insertions(+), 340 deletions(-)
create mode 100644 tests/test-listen.c
[Qemu-devel] [PULL v1 0/9] Merge QEMU I/O 2017/09/05
Posted by Daniel P. Berrange 6 years, 6 months ago
The following changes since commit 32f0f68bb77289b75a82925f712bb52e16eac3ba:

  Merge remote-tracking branch 'remotes/ehabkost/tags/x86-and-machine-pull-request' into staging (2017-09-01 17:28:54 +0100)

are available in the git repository at:

  git://github.com/berrange/qemu tags/pull-qio-20170905-1

for you to fetch changes up to 33fb97121573985b4a57306b8abdb9dd992061fa:

  io: fix check for handshake completion in TLS test (2017-09-05 10:20:28 +0100)

----------------------------------------------------------------
Merge QEMU I/O 2017/09/05 v1

----------------------------------------------------------------

Cao jin (1):
  util: remove the obsolete non-blocking connect

Daniel P. Berrange (4):
  io: fix temp directory used by test-io-channel-tls test
  io: fix typo in docs comment for qio_channel_read
  io: add new qio_channel_{readv, writev, read, write}_all functions
  io: fix check for handshake completion in TLS test

Knut Omang (4):
  tests: Add test-listen - a stress test for QEMU socket listen
  sockets: factor out a new try_bind() function
  sockets: factor out create_fast_reuse_socket
  sockets: Handle race condition between binds to the same port

 block/sheepdog.c            |   2 +-
 block/ssh.c                 |   2 +-
 include/io/channel.h        |  92 +++++++++++-
 include/qemu/sockets.h      |  12 +-
 io/channel-socket.c         |   2 +-
 io/channel.c                |  94 ++++++++++++
 tests/Makefile.include      |   2 +
 tests/io-channel-helpers.c  | 102 ++-----------
 tests/test-io-channel-tls.c |   6 +-
 tests/test-listen.c         | 253 ++++++++++++++++++++++++++++++++
 util/qemu-sockets.c         | 343 +++++++++++++++-----------------------------
 11 files changed, 570 insertions(+), 340 deletions(-)
 create mode 100644 tests/test-listen.c

-- 
2.13.5


Re: [Qemu-devel] [PULL v1 0/9] Merge QEMU I/O 2017/09/05
Posted by Peter Maydell 6 years, 6 months ago
On 5 September 2017 at 10:22, Daniel P. Berrange <berrange@redhat.com> wrote:
> The following changes since commit 32f0f68bb77289b75a82925f712bb52e16eac3ba:
>
>   Merge remote-tracking branch 'remotes/ehabkost/tags/x86-and-machine-pull-request' into staging (2017-09-01 17:28:54 +0100)
>
> are available in the git repository at:
>
>   git://github.com/berrange/qemu tags/pull-qio-20170905-1
>
> for you to fetch changes up to 33fb97121573985b4a57306b8abdb9dd992061fa:
>
>   io: fix check for handshake completion in TLS test (2017-09-05 10:20:28 +0100)
>
> ----------------------------------------------------------------
> Merge QEMU I/O 2017/09/05 v1
>
> ----------------------------------------------------------------

I get a build failure with this I'm afraid:

FreeBSD:
/root/qemu/tests/test-listen.c:53:19: error: use of undeclared
identifier 'EAI_ADDRFAMILY'
        if (rc == EAI_ADDRFAMILY ||
                  ^

and test-listen fails on my x86-64 Linux box:
  GTESTER tests/test-listen
** Failed to assign a port to thread 0 (errno = 98)
** Failed to assign a port to thread 1 (errno = 98)
** Failed to assign a port to thread 2 (errno = 98)
** Failed to assign a port to thread 3 (errno = 98)
** Failed to assign a port to thread 4 (errno = 98)
** Failed to assign a port to thread 5 (errno = 98)
** Failed to assign a port to thread 6 (errno = 98)
[snip 7..96 same message]
** Failed to assign a port to thread 97 (errno = 98)
** Failed to assign a port to thread 98 (errno = 98)
** Failed to assign a port to thread 99 (errno = 98)
** Failed to assign a port to thread 100 (errno = 110)
** Failed to assign a port to thread 101 (errno = 110)
** Failed to assign a port to thread 102 (errno = 110)
** Failed to assign a port to thread 103 (errno = 110)
[snip more with =110 message]
** Failed to assign a port to thread 198 (errno = 110)
** Failed to assign a port to thread 199 (errno = 110)
**
ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-listen.c:195:listen_compete_nthr:
assertion failed (failed_listens == 0): (200 == 0)
GTester: last random seed: R02S501c6ff1c5ff42cf11b1318e0de42bc5

(98 is EADDRINUSE and 110 is ETIMEDOUT I think.)

aarch64 host fails sort of similarly:
TEST: tests/test-listen... (pid=12632)
  /socket/listen-serial/ipv4:                                          OK
  /socket/listen-serial/ipv6:
** Failed to assign a port to th
read 0 (errno = 98)
** Failed to assign a port to thread 1 (errno = 98)
** Failed to assign a port to thread 2 (errno = 98)
[snip]
** Failed to assign a port to thread 199 (errno = 98)
**
ERROR:/home/peter.maydell/qemu/tests/test-listen.c:195:listen_compete_nthr:
assertion failed (failed_listens == 0): (200 == 0)
FAIL
GTester: last random seed: R02Sbd34929fe0b3304c2873c42c94643648
(pid=12634)
  /socket/listen-serial/generic:                                       OK
  /socket/listen-compete/ipv4:                                         OK
  /socket/listen-compete/ipv6:                                         OK
  /socket/listen-compete/generic:                                      OK
FAIL: tests/test-listen

except that it's errno 98 all the way through.

thanks
-- PMM

Re: [Qemu-devel] [PULL v1 0/9] Merge QEMU I/O 2017/09/05
Posted by Peter Maydell 6 years, 6 months ago
On 5 September 2017 at 10:37, Peter Maydell <peter.maydell@linaro.org> wrote:
> and test-listen fails on my x86-64 Linux box:

OpenBSD fails too, but only starting at thread 124, and
it fails like this for all the tests whereas Linux
only failed on the ipv6 test:

TEST: tests/test-listen... (pid=12010)
  /socket/listen-serial/ipv4:
** Failed to assign a port to thread 124 (errno = 48)
** Failed to assign a port to thread 125 (errno = 48)
** Failed to assign a port to thread 126 (errno = 48)
** Failed to assign a port to thread 127 (errno = 48)
** Failed to assign a port to thread 128 (errno = 48)
** Failed to assign a port to thread 129 (errno = 48)
** Failed to assign a port to thread 130 (errno = 48)
** Failed to assign a port to thread 131 (errno = 48)
** Failed to assign a port to thread 132 (errno = 48)
[snip]
** Failed to assign a port to thread 197 (errno = 48)
** Failed to assign a port to thread 198 (errno = 48)
** Failed to assign a port to thread 199 (errno = 48)
**
ERROR:/home/qemu/tests/test-listen.c:195:listen_compete_nthr:
assertion failed (failed_listens == 0): (76 == 0)
FAIL
GTester: last random seed: R02S5df2be6aaaf10151ac566254ab2f7e88
(pid=37081)
  /socket/listen-serial/ipv6:
** Failed to assign a port to thread 124 (errno = 48)
** Failed to assign a port to thread 125 (errno = 48)
** Failed to assign a port to thread 126 (errno = 48)
** Failed to assign a port to thread 127 (errno = 48)
[snip]
** Failed to assign a port to thread 198 (errno = 48)
** Failed to assign a port to thread 199 (errno = 48)
**
ERROR:/home/qemu/tests/test-listen.c:195:listen_compete_nthr:
assertion failed (failed_listens == 0): (76 == 0)
FAIL
GTester: last random seed: R02Sa41cf200664d43a074a38d7fff7b5393
(pid=93074)
  /socket/listen-serial/generic:
** Failed to assign a port to thread 124 (errno = 48)
** Failed to assign a port to thread 125 (errno = 48)
** Failed to assign a port to thread 126 (errno = 48)
** Failed to assign a port to thread 127 (errno = 48)
[snip]
** Failed to assign a port to thread 198 (errno = 48)
** Failed to assign a port to thread 199 (errno = 48)
**
ERROR:/home/qemu/tests/test-listen.c:195:listen_compete_nthr:
assertion failed (failed_listens == 0): (76 == 0)
FAIL
GTester: last random seed: R02S072bffdb79ddc59e35f0b9c1f8b8f69f
(pid=56289)
  /socket/listen-compete/ipv4:
** Failed to assign a port to thread 124 (errno = 24)
** Failed to assign a port to thread 127 (errno = 24)
** Failed to assign a port to thread 128 (errno = 24)
** Failed to assign a port to thread 129 (errno = 24)
** Failed to assign a port to thread 130 (errno = 24)
[etc etc]

thanks
-- PMM

Re: [Qemu-devel] [PULL v1 0/9] Merge QEMU I/O 2017/09/05
Posted by Daniel P. Berrange 6 years, 6 months ago
On Tue, Sep 05, 2017 at 10:37:08AM +0100, Peter Maydell wrote:
> On 5 September 2017 at 10:22, Daniel P. Berrange <berrange@redhat.com> wrote:
> > The following changes since commit 32f0f68bb77289b75a82925f712bb52e16eac3ba:
> >
> >   Merge remote-tracking branch 'remotes/ehabkost/tags/x86-and-machine-pull-request' into staging (2017-09-01 17:28:54 +0100)
> >
> > are available in the git repository at:
> >
> >   git://github.com/berrange/qemu tags/pull-qio-20170905-1
> >
> > for you to fetch changes up to 33fb97121573985b4a57306b8abdb9dd992061fa:
> >
> >   io: fix check for handshake completion in TLS test (2017-09-05 10:20:28 +0100)
> >
> > ----------------------------------------------------------------
> > Merge QEMU I/O 2017/09/05 v1
> >
> > ----------------------------------------------------------------
> 
> I get a build failure with this I'm afraid:
> 
> FreeBSD:
> /root/qemu/tests/test-listen.c:53:19: error: use of undeclared
> identifier 'EAI_ADDRFAMILY'
>         if (rc == EAI_ADDRFAMILY ||
>                   ^

Opps, ok, that's an easy fix.

> and test-listen fails on my x86-64 Linux box:
>   GTESTER tests/test-listen
> ** Failed to assign a port to thread 0 (errno = 98)
> ** Failed to assign a port to thread 1 (errno = 98)
> ** Failed to assign a port to thread 2 (errno = 98)
> ** Failed to assign a port to thread 3 (errno = 98)
> ** Failed to assign a port to thread 4 (errno = 98)
> ** Failed to assign a port to thread 5 (errno = 98)
> ** Failed to assign a port to thread 6 (errno = 98)
> [snip 7..96 same message]
> ** Failed to assign a port to thread 97 (errno = 98)
> ** Failed to assign a port to thread 98 (errno = 98)
> ** Failed to assign a port to thread 99 (errno = 98)
> ** Failed to assign a port to thread 100 (errno = 110)
> ** Failed to assign a port to thread 101 (errno = 110)
> ** Failed to assign a port to thread 102 (errno = 110)
> ** Failed to assign a port to thread 103 (errno = 110)
> [snip more with =110 message]
> ** Failed to assign a port to thread 198 (errno = 110)
> ** Failed to assign a port to thread 199 (errno = 110)
> **
> ERROR:/home/petmay01/linaro/qemu-for-merges/tests/test-listen.c:195:listen_compete_nthr:
> assertion failed (failed_listens == 0): (200 == 0)
> GTester: last random seed: R02S501c6ff1c5ff42cf11b1318e0de42bc5
> 
> (98 is EADDRINUSE and 110 is ETIMEDOUT I think.)
> 
> aarch64 host fails sort of similarly:
> TEST: tests/test-listen... (pid=12632)
>   /socket/listen-serial/ipv4:                                          OK
>   /socket/listen-serial/ipv6:
> ** Failed to assign a port to th
> read 0 (errno = 98)
> ** Failed to assign a port to thread 1 (errno = 98)
> ** Failed to assign a port to thread 2 (errno = 98)
> [snip]
> ** Failed to assign a port to thread 199 (errno = 98)
> **
> ERROR:/home/peter.maydell/qemu/tests/test-listen.c:195:listen_compete_nthr:
> assertion failed (failed_listens == 0): (200 == 0)
> FAIL
> GTester: last random seed: R02Sbd34929fe0b3304c2873c42c94643648
> (pid=12634)
>   /socket/listen-serial/generic:                                       OK
>   /socket/listen-compete/ipv4:                                         OK
>   /socket/listen-compete/ipv6:                                         OK
>   /socket/listen-compete/generic:                                      OK
> FAIL: tests/test-listen
> 
> except that it's errno 98 all the way through.

Knut,  do you have any thoughts on why Peter would see such failures
in this test ?

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 :|