nfs-server: the look below a share runs beside the pass, so a long walk no longer fails its health (issue 1971) #616

Merged
mesh-tools merged 3 commits from fix/1971-nfs-walk-beside-look into main 2026-11-05 10:02:10 +00:00
Member

Fixes issue 1971: once an hour nfs-server's 30 s look walked up to 200,000 folders of a share for a backup repository inside the look itself, wrote no status meanwhile, and its health said 'last looked 6m ago'; the assigner held three versions on ace for it (2026-10-31, 11-02, 11-05).

  • The walk runs beside the look; the look uses its last result and writes its status every pass.
  • A share with no finished look is refused, except one the export file already carries for the same folder (a restart keeps its exports, no reload).
  • A share whose folder changed, or exported to no node, waits for its look.
  • Tests: TestTheLookBelowRunsBesideThePassAndNeverHoldsItsStatus, TestARestartKeepsTheExportedShareWhileItsFirstLookRuns; 43 unit tests in the module.

Quick fix chosen by the operator (2026-11-05). Thorough fix (a module's look time written apart from its work in mesh-sdk's health support, and the last look kept across a restart) noted on issue 1971. Reviewed in three rounds by the mesh-code-reviewer agent started by fix-1965@shanks.

Reviewed-by: mesh-code-reviewer@shanks at 87fd0cd8b9

https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig

Fixes issue 1971: once an hour nfs-server's 30 s look walked up to 200,000 folders of a share for a backup repository inside the look itself, wrote no status meanwhile, and its health said 'last looked 6m ago'; the assigner held three versions on ace for it (2026-10-31, 11-02, 11-05). - The walk runs beside the look; the look uses its last result and writes its status every pass. - A share with no finished look is refused, except one the export file already carries for the same folder (a restart keeps its exports, no reload). - A share whose folder changed, or exported to no node, waits for its look. - Tests: TestTheLookBelowRunsBesideThePassAndNeverHoldsItsStatus, TestARestartKeepsTheExportedShareWhileItsFirstLookRuns; 43 unit tests in the module. Quick fix chosen by the operator (2026-11-05). Thorough fix (a module's look time written apart from its work in mesh-sdk's health support, and the last look kept across a restart) noted on issue 1971. Reviewed in three rounds by the mesh-code-reviewer agent started by fix-1965@shanks. Reviewed-by: mesh-code-reviewer@shanks at 87fd0cd8b98592ce851a29edb9aea15764045770 https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
mesh-tools added 3 commits 2026-11-05 09:46:53 +00:00
A walk of minutes inside the pass held the status back until the module was found unhealthy and the assigner held the version.

Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
nfs-server: a pending share is carried only by the export line for the same folder (issue 1971, review round 2)
mesh/delivery merged: source.main moved to novox/mesh-catalog@559939aa8ce1
mesh/check pass 87fd0cd8b985 on 559939aa8ce1 | carried from 211186edd769 | unit 625 run, 4127 kept, 13 skipped | integration 676 run, 4136 kept, 22 sk…
87fd0cd8b9
Claude-Session: https://claude.ai/code/session_01JG73KJNrH5EgFXMKKYSrig
Author
Member

Delivery novox/mesh-catalog@87fd0cd8b985 — merged since 2026-11-05T10:02:11Z

Source — source.main moved to novox/mesh-catalog@559939aa8c. Whether it reached the machines is mesh-delivery-view's, derived from source.main, the wants and the haves.

Transitions

  • 2026-11-05 09:46 (new) → proposed (announced): novox/mesh-catalog#616's head announced
  • 2026-11-05 09:46 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false)
  • 2026-11-05 10:02 ready → merged (merged): on the trunk its modules follow: merged there

The commit's note under refs/notes/mesh-plan keeps every transition of this change up to its merge: git log --notes=mesh-plan.

<!-- mesh-delivery:view --> **Delivery** `novox/mesh-catalog@87fd0cd8b985` — **merged** since 2026-11-05T10:02:11Z **Source** — source.main moved to novox/mesh-catalog@559939aa8ce1. Whether it reached the machines is `mesh-delivery-view`'s, derived from `source.main`, the wants and the haves. **Transitions** - 2026-11-05 09:46 (new) → proposed (announced): novox/mesh-catalog#616's head announced - 2026-11-05 09:46 proposed → ready (accepted): a verdict names this commit and the trunk's head as its trunk commit, the gate passed or warned, and the repository's own check did not fail; or the check gates no merge (check-gates-merge false) - 2026-11-05 10:02 ready → merged (merged): on the trunk its modules follow: merged there The commit's note under `refs/notes/mesh-plan` keeps every transition of this change up to its merge: `git log --notes=mesh-plan`.
mesh-tools merged commit 559939aa8c into main 2026-11-05 10:02:10 +00:00
mesh-tools deleted branch fix/1971-nfs-walk-beside-look 2026-11-05 10:02:11 +00:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: novox/mesh-catalog#616