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