From 0a11855d3fe86545a749aed03fb937cabc389916 Mon Sep 17 00:00:00 2001 From: Julia Kreger Date: Mon, 10 Jul 2023 09:35:13 -0700 Subject: [PATCH] CI: Use focal dnsmasq Investigation of our standalone test job issues, where jobs would fail, hosts not get DHCP updates, and ultimately IPXE would fail prior to getting a valid or the expected response, revealed the discovery that dnsmasq was crashing often when the port updates were going through, ultimately preventing the mutli-scenario test jobs from running as the standalone jobs represent a number of different scenarios which are executed across a pool of test machines. In this case, the path forward appears to be to downgrade dnsmasq to stablize our CI and allow us to otherwise upgrade. This patch adds the focal updates as a package source, and installs the dnsmasq package. Related-Bug: #2026757 Change-Id: Iacfd1ab677c612525601afcaeee5e5b067206ff3 --- devstack/lib/ironic | 12 ++++++++++++ devstack/plugin.sh | 1 + zuul.d/ironic-jobs.yaml | 2 -- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/devstack/lib/ironic b/devstack/lib/ironic index db3fb5b61b..de5c227045 100644 --- a/devstack/lib/ironic +++ b/devstack/lib/ironic @@ -3349,6 +3349,18 @@ function setup_vxlan_network { sudo ovs-vsctl set interface phy-brbm-infra options:peer=phy-infra-brbm } +function downgrade_dnsmasq { + # NOTE(TheJulia): The intent here is to downgrade dnsmasq to the version + # shipped with Ubuntu focal, so we can have stable CI. + # https://bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/2026757 + wget http://archive.ubuntu.com/ubuntu/pool/main/d/dnsmasq/dnsmasq-base_2.80-1.1ubuntu1.7_amd64.deb + wget http://archive.ubuntu.com/ubuntu/pool/main/libi/libidn/libidn11_1.33-2.2ubuntu2_amd64.deb + wget http://archive.ubuntu.com/ubuntu/pool/main/n/nettle/libhogweed5_3.5.1+really3.5.1-2ubuntu0.2_amd64.deb + wget http://archive.ubuntu.com/ubuntu/pool/main/n/nettle/libnettle7_3.5.1+really3.5.1-2ubuntu0.2_amd64.deb + sudo dpkg -i dnsmasq-base_2.80-1.1ubuntu1.7_amd64.deb libidn11_1.33-2.2ubuntu2_amd64.deb libhogweed5_3.5.1+really3.5.1-2ubuntu0.2_amd64.deb libnettle7_3.5.1+really3.5.1-2ubuntu0.2_amd64.deb || true + rm *.deb +} + # Restore xtrace + pipefail $_XTRACE_IRONIC $_PIPEFAIL_IRONIC diff --git a/devstack/plugin.sh b/devstack/plugin.sh index 306569f514..b85b5bdfd8 100644 --- a/devstack/plugin.sh +++ b/devstack/plugin.sh @@ -21,6 +21,7 @@ if is_service_enabled ir-api ir-cond; then install_ironic install_ironicclient cleanup_ironic_config_files + downgrade_dnsmasq elif [[ "$2" == "post-config" ]]; then # stack/post-config - Called after the layer 1 and 2 services have been diff --git a/zuul.d/ironic-jobs.yaml b/zuul.d/ironic-jobs.yaml index 2648111b0b..afa00669e6 100644 --- a/zuul.d/ironic-jobs.yaml +++ b/zuul.d/ironic-jobs.yaml @@ -106,7 +106,6 @@ Test ironic standalone configured with ipmi hardware type, ramdisk and direct deploy interfaces, rescue enabled. parent: ironic-base - nodeset: openstack-single-node-focal irrelevant-files: - ^.*\.rst$ - ^api-ref/.*$ @@ -160,7 +159,6 @@ - job: name: ironic-standalone-redfish parent: ironic-base - nodeset: openstack-single-node-focal description: Test ironic standalone configured with redfish hardware type, ansible and direct and ansible deploy interfaces, rescue it's not enabled.