OpenAFS Master Repository branch, master, updated. BP-openafs-stable-1_8_x-554-g66d0f91

Gerrit Code Review gerrit@openafs.org
Tue, 31 Mar 2020 17:38:25 -0400


The following commit has been merged in the master branch:
commit 66d0f91791695ac585f0511d0dadafd4e570b1bf
Author: Andrew Deason <adeason@sinenomine.net>
Date:   Tue Mar 24 11:59:48 2020 -0500

    tests: Wait for server start in auth/superuser-t
    
    The auth/superuser-t test runs an Rx server and client in two child
    processes. If the client process tries to contact the server before
    the server has started listening on its port, some tests involving
    RPCs can fail (notably test 39, "Can run a simple RPC").
    
    Normally if we try to contact a server that's not there, Rx will try
    resending its packets a few times, but on Linux with AFS_RXERRQ_ENV,
    if the port isn't open at all, we can get an ICMP_PORT_UNREACH error,
    which causes the relevant Rx call to die immediately with
    RX_CALL_DEAD.
    
    This means that if the auth/superuser-t client is only just a bit
    faster than the server starting up, tests can fail, since the server's
    port is not open yet.
    
    To avoid this, we can wait until the server's port is open before
    starting the client process. To do this, have the server process send
    a SIGUSR1 to the parent after rx_Init() is called, and have the parent
    process wait for the SIGUSR1 (waiting for a max of 5 seconds before
    failing). This should guarantee that the server's port will be open by
    the time the client starts running.
    
    Note that before commit 086d1858 (LINUX: Include linux/time.h for
    linux/errqueue.h), AFS_RXERRQ_ENV was mistakenly disabled on Linux
    3.17+, so this issue was probably not possible on recent Linux before
    that commit.
    
    Change-Id: I0032a640b83c24f72c03e7bea100df5bc3d9ed4c
    Reviewed-on: https://gerrit.openafs.org/14109
    Tested-by: BuildBot <buildbot@rampaginggeek.com>
    Reviewed-by: Benjamin Kaduk <kaduk@mit.edu>
    Reviewed-by: Cheyenne Wills <cwills@sinenomine.net>

 tests/auth/superuser-t.c |   50 ++++++++++++++++++++++++++++++++++++++++++++-
 tests/common/common.h    |    2 +-
 tests/common/servers.c   |    5 ++++
 3 files changed, 54 insertions(+), 3 deletions(-)

-- 
OpenAFS Master Repository