Skip to content

test(two-node): pending F18/F19 fixes as simulator node capabilities - #1490

Merged
schmidt-scaled merged 2 commits into
mainfrom
test/two-node-sim-f18-f19
Oct 15, 2026
Merged

schmidt-scaled merged 2 commits into
mainfrom
test/two-node-sim-f18-f19

Conversation

@schmidt-scaled

Copy link
Copy Markdown
Contributor

Simulator: pending F18/F19 fixes as node capabilities

Test code only.

The simulator's node model gains capabilities for SPDK/ultra changes that exist as PRs but are not yet in the node image main deploys:

Capability Finding PRs Behaviour
ana_restore_all_groups F18 simplyblock/spdk#80 the unfence restores every ANA group the fence changed
grant_stops_redirect F19 simplyblock/spdk#81 + simplyblock/ultra#215 every solo grant releases the LVS, and the release stops a non-leader's hublvol redirect to the lost peer

simnode.DEPLOYED_CAPS is empty, matching what is merged, so main's CI stays truthful: F18 and F19 remain known failures, checked against their failure signature.

New tests:

  • test_pending_fix_passes: F18 and F19, each with its fix's capability, must pass.
  • test_bed_scenario_with_pending_caps: every bed scenario with all pending capabilities. This is the stack under test on the bed in c8.

When a fix merges into the deployed node image, add its capability to DEPLOYED_CAPS and drop the scenario from KNOWN_FAILING and PENDING_FIX (documented in AGENTS.md).

Local results (WSL, real FDB): the 11 bed scenarios pass with and without the pending capabilities; F18 and F19 pass with them and xfail without.

🤖 Generated with Claude Code

…in the simulator

The simulator's node model gains capabilities for SPDK/ultra changes that
exist as PRs but are not in the node image main deploys:

- ana_restore_all_groups (F18, SPDK #80): the unfence restores every ANA
  group the fence changed;
- grant_stops_redirect (F19, SPDK #81 + ultra #215): every solo grant
  releases the LVS, and the release stops a non-leader's hublvol redirect
  to the lost peer, so the next IO takes the LVS over at once.

DEPLOYED_CAPS is empty, matching what is merged, so main's CI stays
truthful: F18 and F19 remain known failures for their signature.
test_pending_fix_passes runs each with its fix's capability and requires
a pass; test_bed_scenario_with_pending_caps runs every bed scenario with
all pending capabilities (the stack under test on the bed in c8). When a
fix merges into the deployed image, add its capability to DEPLOYED_CAPS
and drop the scenario from KNOWN_FAILING and PENDING_FIX.

Local (WSL, real FDB): the 11 bed scenarios pass with and without the
pending capabilities; F18/F19 pass with them and xfail without.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions github-actions Bot added the target/main Targets the development branch label Oct 15, 2026
@schmidt-scaled

Copy link
Copy Markdown
Contributor Author

On hold, not merging: bed run c8 shows the simulator's client model is optimistic. The real host detects a frozen path per controller via keep-alive (KATO..2xKATO, 7.1 s measured) and the takeover's JC reader can block on the frozen peer's JM until the 8 s NVMe IO timeout; the sim times out each IO KATO after issue and takes over immediately, so it calls F19 fixed while the bed shows a 9 s stall. The model needs these two behaviours before this PR is truthful. Also: the Linter job fails on an unrelated RUF012 in simplyblock_core/utils/ttl_cache.py.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@schmidt-scaled
schmidt-scaled merged commit df59452 into main Oct 15, 2026
20 checks passed
@schmidt-scaled
schmidt-scaled deleted the test/two-node-sim-f18-f19 branch October 15, 2026 20:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

target/main Targets the development branch

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants