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:
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.
Reviewed: https:/ /review. openstack. org/633502 /git.openstack. org/cgit/ openstack/ tempest/ commit/ ?id=199e0229029 0d795b44cd174c2 2b3209b71e6d8d
Committed: https:/
Submitter: Zuul
Branch: master
commit 199e02290290d79 5b44cd174c22b32 09b71e6d8d
Author: Bence Romsics <email address hidden>
Date: Mon Jan 28 14:18:00 2019 +0100
Raise renew_delay in TestNetworkBasi cOps: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' details( ) renews the dhcp
line basically reproduces how test_subnet_
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 cirros- dhcpc'. Look for the case handling the 'deconfig'
modifying it (for example to log something). In cirros it is located
under '/sbin/
parameter.
This patch increases the delay in retries.
Change-Id: I9b18ef2d835e02 be30b7c557e5c10 585722111a0
Closes-Bug: #1813198