ci: bridge DNS gap with direct upstream instead of polling

systemd-resolved has a ~40s reconfiguration stall after restart
(systemd #22521) that breaks the GHA runner's persistent connection
to results-receiver.actions.githubusercontent.com. Polling for DNS
recovery isn't enough since the .NET runner agent caches DNS at the
connection-pool level. Replace the broken stub-resolv symlink with a
direct upstream so DNS works instantly.
This commit is contained in:
Razvan Dimescu
2026-04-17 01:32:36 +03:00
parent 34b75833b8
commit 1d9495c013

View File

@@ -97,12 +97,14 @@ jobs:
if: always() if: always()
run: | run: |
sudo ./target/release/numa uninstall 2>/dev/null || true sudo ./target/release/numa uninstall 2>/dev/null || true
# Wait for systemd-resolved to fully restore DNS so post-job # systemd-resolved has a ~40s DNS reconfiguration stall after
# steps (rust-cache upload, log shipping) can reach GitHub. # restart (systemd issue #22521) that breaks the runner agent's
for i in $(seq 1 30); do # connection to GitHub. Bridge it by replacing the stub-resolv
if getent hosts github.com >/dev/null 2>&1; then break; fi # symlink with a direct upstream — DNS works instantly and the
sleep 1 # runner can phone home for post-job steps.
done sudo rm -f /etc/resolv.conf
echo "nameserver 8.8.8.8" | sudo tee /etc/resolv.conf > /dev/null
getent hosts github.com >/dev/null
integration-macos: integration-macos:
needs: [check-macos] needs: [check-macos]