Comment 18 for bug 1813198

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to tempest (master)

Reviewed: https://review.openstack.org/633502
Committed: https://git.openstack.org/cgit/openstack/tempest/commit/?id=199e02290290d795b44cd174c22b3209b71e6d8d
Submitter: Zuul
Branch: master

commit 199e02290290d795b44cd174c22b3209b71e6d8d
Author: Bence Romsics <email address hidden>
Date: Mon Jan 28 14:18:00 2019 +0100

    Raise renew_delay in TestNetworkBasicOps:test_subnet_details

    Bug #1813198 can be reproduced both in cirros 0.3.5 and 0.4.0 by:

    while true
    do
        sudo /bin/kill -USR1 $( cat /var/run/udhcpc.$( ip -o addr | awk '/100.109.0.37/ {print $2}' ).pid )
        #sleep .1
    done

    Where 100.109.0.37 is the original IP of eth0 in cirros and the 'kill'
    line basically reproduces how test_subnet_details() renews the dhcp
    lease using busybox's udhcpc.

    However if you uncomment the very short sleep in that loop, the error
    is gone. It seems to me this because the following line in udhcpc:

    https://git.busybox.net/busybox/tree/networking/udhcp/dhcpc.c?h=1_23_stable#n1093

    Note: CirrOS 0.4.0 uses BusyBox v1.23.2.

    That is SIGUSR1 triggers a renew request in udhcpc. Internally udhcpc
    goes into RENEW_REQUESTED state. If it receives a 2nd SIGUSR1 signal
    while still in that state then it deconfigures the interface briefly
    before acquiring a new (many times still the same) address. For us it
    means we should not retry renewing the lease too fast, because if we do
    the address may get deconfigured leading to bug #1813198.

    Note: the call of the deconfig script can be easily confirmed by
    modifying it (for example to log something). In cirros it is located
    under '/sbin/cirros-dhcpc'. Look for the case handling the 'deconfig'
    parameter.

    This patch increases the delay in retries.

    Change-Id: I9b18ef2d835e02be30b7c557e5c10585722111a0
    Closes-Bug: #1813198