Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[dhcpcd] Drop fallback to ipv4ll and increase wait time to 180s #116

Merged
merged 1 commit into from
Jul 19, 2024

Conversation

karelyatin
Copy link
Contributor

@karelyatin karelyatin commented Jun 18, 2024

With the switch to dhcpcd in [1] we are hitting random
issues in our jobs where dhcp server takes some time to
be ready while cirros just use ipv4ll address and don't
retry. With udhcpc it was not the case, also it used
to retry 3 times every 60 seconds before giving up.

Currently it immediately forks to background as it
detects interface do not have carrier acquired, and
continues other operations like metadata fetch to configure
ssh keys but since dhcp ip and routes not configured
for metadata, metadata fetch also fails.

Added -w option with timeout of 180s similar to udhcpc, this
will make it to wait for ip for 180s before forking to background
and continuing with other operations like metadata fetch.

[1] ded54d
Related-Bug: https://bugs.launchpad.net/neutron/+bug/2045549

@karelyatin
Copy link
Contributor Author

@smoser @osfrickler can you check please

@karelyatin
Copy link
Contributor Author

ping @smoser @osfrickler

openstack-mirroring pushed a commit to openstack/neutron-tempest-plugin that referenced this pull request Jul 17, 2024
With cirros-0.6+ we hitting random issues as mentioned
in the related bug, until the cirros fix[1] merge and have
new cirros release let's switch to older cirros image.

[1] cirros-dev/cirros#116
Related-Bug: #2045549

Depends-On: https://review.opendev.org/c/openstack/neutron/+/924213
Change-Id: I9f3a72da13212f735d51c7929b05706ba063f313
openstack-mirroring pushed a commit to openstack/openstack that referenced this pull request Jul 17, 2024
* Update neutron-tempest-plugin from branch 'master'
  to a7a7ce8d342c88fc9dcd8d57607daa446a0b98e1
  - Temporary switch lb/ovs/ovn scenario jobs to cirros-0.5.3
    
    With cirros-0.6+ we hitting random issues as mentioned
    in the related bug, until the cirros fix[1] merge and have
    new cirros release let's switch to older cirros image.
    
    [1] cirros-dev/cirros#116
    Related-Bug: #2045549
    
    Depends-On: https://review.opendev.org/c/openstack/neutron/+/924213
    Change-Id: I9f3a72da13212f735d51c7929b05706ba063f313
@smoser
Copy link
Member

smoser commented Jul 18, 2024

OK. thanks to @osfrickler for pushing a bit in #cirros on libera.

Speaking with him, I think this makes the following behavior changes can you please verify that I understand correctly?

  1. Previously if there was only 1 interface it would wait but multiple interfaces would not wait. with -w if there are multiple interfaces it will now wait until one gets an address.
  2. drop fallback use of ipv4ll
  3. increase timeout in effect from 30 to 120

Then after we've settled the changes that are made, please update the commit message to clearly indicate those changes. In the summary (first line) we want to at least mention each of the changes so the generated release notes will pick them up.

Then I think I'm happy with this.

@karelyatin
Copy link
Contributor Author

@smoser
<< 1. Previously if there was only 1 interface it would wait but multiple interfaces would not wait. with -w if there are multiple interfaces it will now wait until one gets an address.
Actually it wait only if interface have carrier acquired else it immediately goes to background whether it's 1 interface or multiple. For example in console log i see:-
Starting network: dhcpcd-9.4.1 starting
DUID 00:04:69:f5:1c:52:94:c0:46:44:96:d1:15:b7:2d:08:a3:9b
forked to background, child pid 250
no interfaces have a carrier
<< 2. drop fallback use of ipv4ll
Yes with this patch will not fallback to ipv4ll
<< 4. increase timeout in effect from 30 to 120
Yes it will now wait for ip for 120s before forking to background

Will update the commit message to reflect these

With the switch to dhcpcd in [1] we are hitting random
issues in our jobs where dhcp server takes some time to
be ready while cirros just use ipv4ll address and don't
retry. With udhcpc it was not the case, also it used
to retry 3 times every 60 seconds before giving up.

Currently it immediately forks to background as it
detects interface do not have carrier acquired, and
continues other operations like metadata fetch to configure
ssh keys but since dhcp ip and routes not configured
for metadata, metadata fetch also fails.

Added -w option with timeout of 180s similar to udhcpc, this
will make it to wait for ip for 180s before forking to background
and continuing with other operations like metadata fetch.

[1] cirros-dev@ded54d
Related-Bug: https://bugs.launchpad.net/neutron/+bug/2045549
@karelyatin
Copy link
Contributor Author

@smoser << 1. Previously if there was only 1 interface it would wait but multiple interfaces would not wait. with -w if there are multiple interfaces it will now wait until one gets an address. Actually it wait only if interface have carrier acquired else it immediately goes to background whether it's 1 interface or multiple. For example in console log i see:- Starting network: dhcpcd-9.4.1 starting DUID 00:04:69:f5:1c:52:94:c0:46:44:96:d1:15:b7:2d:08:a3:9b forked to background, child pid 250 no interfaces have a carrier << 2. drop fallback use of ipv4ll Yes with this patch will not fallback to ipv4ll << 4. increase timeout in effect from 30 to 120 Yes it will now wait for ip for 120s before forking to background

Will update the commit message to reflect these

updated, and also updated timeout to 180s to make it similar to previous behavior as seen with udhcpc.

@karelyatin karelyatin changed the title [dhcpcd] Do not fallback to ipv4ll [dhcpcd] Drop fallback to ipv4ll and increase wait time to 180s Jul 19, 2024
Copy link
Member

@smoser smoser left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

thank you.

@smoser smoser merged commit 73e4628 into cirros-dev:main Jul 19, 2024
4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants