Skip to content

docs: troubleshoot missing peer routes - #226

Merged
ben-dz merged 7 commits into
mainfrom
bdz/adhoc-311
Nov 6, 2026
Merged

ben-dz merged 7 commits into
mainfrom
bdz/adhoc-311

Conversation

@ben-dz

@ben-dz ben-dz commented Nov 5, 2026 •

Copy link
Copy Markdown
Contributor

Adds ### Issue: routes to some or all peers are missing to docs/support/troubleshooting.md, for the active route liveness that doublezerod turns on by default in the next client release. Keep the anchor #issue-missing-peer-routes as is: the doublezerod WARN, doublezero routes status, and the docs field of the session logs link to it.

Fixes malbeclabs/infra#3603. This documents malbeclabs/doublezero#4490, which has merged. Merge this when client v0.47.0 ships, because the page goes live on merge.

Pre-merge TODO

  • If the quoted CLI or log strings change on main before v0.47.0 ships, update the quotes here.

Notes for review

  • The CLI and log strings and the four example outputs are quoted from client: show when missing peer routes need the user's action doublezero#4490 at 9f2d067. All four examples match its description and its exact-output tests byte for byte, trailing spaces included.
  • outbound reads "this host hears peers, but peers do not hear it", not "a session is in init". The daemon also reports outbound when sessions sit in down after this host heard a peer.
  • Each direction gets its one-line iptables and UFW rule from solana/ibrl/publish.md inline. The IBRL runbook is excluded from the site, so a link to it would break.
  • The opt-out keeps passive liveness on, so this host still answers probes and peers keep their routes to it. With both liveness flags false, upgraded peers reach it over the public internet. It edits the systemd override the same way setup.md does, and warns that this page's environment switch rewrites that file, which would drop the flag.
  • English only. Translated pages and translations.json are untouched.

Verification

mkdocs build with the pinned requirements passes with only the allowed i18n warning, and the built page has exactly one id="issue-missing-peer-routes". Vercel redirects /support/troubleshooting to the trailing-slash URL with a 308, so the daemon's link resolves. Not verified: the page against a running daemon or real CLI output, since no release carries this behavior yet.

Add a troubleshooting section for active route liveness: reading
`doublezero routes status`, the inbound and outbound UDP 44880 fixes,
what each per-peer state means, and how to opt out. The daemon log and
the CLI link to its anchor.
@vercel

vercel Bot commented Nov 5, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
Project Deployment Actions Updated
doublezero-docs Ignored Ignored Preview Nov 5, 2026 10:49pm UTC

Request Review

`down (remote_down)` means the same as `init`: the peer does not hear this host. A manual rp_filter value lasts until doublezerod recreates the tunnel.
The routes status warning now asks the user to check that UDP 44880 is allowed, and the page notes that with few peers the fault may be on their side.
doublezero routes status now names the route count Peers, and with no action but missing routes it says that this host appears healthy and needs no action.
doublezero routes status now reads starting for the first 2 minutes with no session up and no route installed, and says the host appears healthy only with a session up. The opt-out keeps passive liveness on, so this host keeps answering probes.
doublezerod now warns when no session has been up for 2 minutes and at least one desired route is missing from the kernel, rather than when no route is installed.
@ben-dz
ben-dz requested a review from Jared-dz November 5, 2026 21:53
@ben-dz
ben-dz marked this pull request as ready for review November 5, 2026 21:53
@nikw9944
nikw9944 self-requested a review November 6, 2026 01:07

@nikw9944 nikw9944 left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Compared the four routes status examples and the status warning with the routes.rs and status.rs tests in merged malbeclabs/doublezero#4490, and the flags, hold-down cap and rp_filter value with main.go and netlink.go on upstream main; they match.

Docs & comments (non-blocking)

  • docs/support/troubleshooting.md:386 — This overstates withdrawal: routes to peers running passive liveness, and all routes on IBRL with an allocated IP, stay installed when the peer stops answering, so that traffic does not move to the public internet. Most peers stay passive until they upgrade, and line 450 makes the same claim.
  • docs/support/troubleshooting.md:452 — An older client does not by itself cause no reply: clients since v0.8.3 default to passive liveness and answer probes. Readers will write off a peer's blocked port as the rollout.

@Jared-dz Jared-dz left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

looks good!

@ben-dz
ben-dz merged commit 6f1e5a6 into main Nov 6, 2026
5 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.

3 participants