Skip to content

Increase systemd-networkd default netlink timeout to 100 seconds - #19855

Draft
Alex Cortelyou (acortelyou) wants to merge 2 commits into
microsoft:3.0-devfrom
acortelyou:networkd-netlink-timeout-100s
Draft

Alex Cortelyou (acortelyou) wants to merge 2 commits into
microsoft:3.0-devfrom
acortelyou:networkd-netlink-timeout-100s

Conversation

@acortelyou

@acortelyou Alex Cortelyou (acortelyou) commented Oct 30, 2026 •

Copy link
Copy Markdown
Member
Merge Checklist

All boxes should be checked before merging the PR (just tick any boxes which don't apply to this PR)

  • The toolchain has been rebuilt successfully (or no changes were made to it)
  • The toolchain/worker package manifests are up-to-date
  • Any updated packages successfully build (or no packages were changed)
  • Packages depending on static components modified in this PR (Golang, *-static subpackages, etc.) have had their Release tag incremented.
  • Package tests (%check section) have been verified with RUN_CHECK=y for existing SPEC files, or added to new SPEC files
  • All package sources are available
  • cgmanifest files are up-to-date and sorted (./cgmanifest.json, ./toolkit/scripts/toolchain/cgmanifest.json, .github/workflows/cgmanifest.json)
  • LICENSE-MAP files are up-to-date (./LICENSES-AND-NOTICES/SPECS/data/licenses.json, ./LICENSES-AND-NOTICES/SPECS/LICENSES-MAP.md, ./LICENSES-AND-NOTICES/SPECS/LICENSE-EXCEPTIONS.PHOTON)
  • All source files have up-to-date hashes in the *.signatures.json files
  • sudo make go-tidy-all and sudo make go-test-coverage pass
  • Documentation has been updated to match any changes to the build system
  • Ready to merge

Summary

During Hyper-V live migration, VF teardown can contend with route programming for RTNL, delaying netlink operations beyond networkd's default 25-second timeout. A route timeout can leave the interface failed and stop Router Advertisement processing, eventually allowing the IPv6 default route to expire.

Observed successful VF teardown durations approach 60 seconds, suggesting--but not confirming--a VF-operation timeout around that threshold.

Increasing the timeout to 100 seconds provides margin above the observed threshold while retaining a finite timeout. This complements the failure-recovery patchset by reducing avoidable transitions into the failed state.

Change Log
  • Package a systemd-networkd service drop-in setting SYSTEMD_NETLINK_DEFAULT_TIMEOUT=100s.
  • Increment systemd and its signed boot package to release 255-37, and register the new source and SHA256 hash.
  • Normal successful operations are unchanged. Genuinely unanswered requests can remain pending 75 seconds longer before timeout-based failure handling. The setting affects networkd's default-timeout netlink requests generally, not only IPv6 routes.
Does this affect the toolchain?

NO. This changes systemd-networkd's runtime configuration, not the toolchain.

Associated issues

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@microsoft-github-policy-service microsoft-github-policy-service Bot added Packaging 3.0-dev PRs Destined for AzureLinux 3.0 labels Oct 30, 2026
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

3.0-dev PRs Destined for AzureLinux 3.0 Packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant