Skip to content

[drbd] Test 9.2.19-flant.11 (revert oos==0 resync guard) - #742

Open
astef wants to merge 15 commits into
mainfrom
astef-drbd-9.2.19-flant11
Open

[drbd] Test 9.2.19-flant.11 (revert oos==0 resync guard)#742
astef wants to merge 15 commits into
mainfrom
astef-drbd-9.2.19-flant11

Conversation

@astef

@astef astef commented Jul 16, 2026

Copy link
Copy Markdown
Member

Summary

  • DRBD 9.2.19-flant.11 = 9.2.19-flant.10 with root-cause commit 6fe5d9dd9 reverted (the oos==0 guard in resync_again).
  • Version set in the 3 places: oss.yaml (drives drbd image build from tag drbd-9.2.19-flant.11), openapi/values{,_ce}.yaml (node DRBD install desired_version).

Why

Validation build for the stuck-resync root cause (stress/problems/05). Commit 6fe5d9dd9 drops a postponed WFBitMapS needed for data-generation reconciliation in the diskless-primary re-handshake race, leaving replicas stuck in WFBitMapT after a node reboot. Reverting only that commit (keeping all flant features/fixes + build) should make resyncs complete.

Test plan

  • CI build succeeds (drbd image builds from tag drbd-9.2.19-flant.11).
  • Deploy via mpo; reboot nodes; confirm resyncs no longer stick.

Not for merge — validation branch.

9.2.19-flant.11 = 9.2.19-flant.10 with the root-cause commit 6fe5d9dd9
reverted (the "oos==0" guard in resync_again that drops a postponed
WFBitMapS needed for generation reconciliation in the diskless-primary
re-handshake race, causing replicas stuck in WFBitMapT after a node
reboot). Validation build for stress/problems/05.

Signed-off-by: Aleksandr Stefurishin <aleksandr.stefurishin@flant.com>
astef added 14 commits July 16, 2026 22:24
…ust)

The drbd-9.2.19-flant.11 tag was force-moved to the RACEDBG diagnosis commit
(flant.10 + stuck-resync instrumentation). Add an echo to the werf setup stage
so werf re-clones the moved tag instead of reusing the cached DRBD artifact.
flant.12 = flant.10 code + stuck-resync instrumentation (racedbg logs + tunable
delays). Bumped from flant.11 so the version-gated node install actually rebuilds
and reloads the module (a same-version code change would be skipped). oss.yaml +
openapi drbdVersion -> flant.12; werf clones the drbd-9.2.19-flant.12 tag.
… mid-transfer stall

Lower DefaultCMaxRate 625000k->200k and DefaultCMinRate 12500k->25k so post-reboot
resyncs crawl and the reconnect re-handshake lands mid-transfer (SyncTarget/PausedSyncT
done:X%), the canonical stuck-resync signature (stress/problems/05). Test/diagnosis only.
…cel-on-pause)

Uses drbd-9.2.19-flant.14 which adds drbd_cancel_paused_resync_requests():
when a resync source is paused by dependency (L_PAUSED_SYNC_T), drop its
dangling resync requests so they stop blocking the active source. Fixes the
done:X% stuck-resync-after-reboot deadlock (stress/results/run-11).
…change stall)

flant.12 = flant.11 (cancel-on-pause multi-source resync deadlock) rebased with
the metadata-exchange fix (oos==0 WF_BITMAP drop-wedge). Replaces the dropped
temp tag flant.14.
The drbd-install NGC only rebuilt/rebooted when the desired version was
GREATER than the loaded one (d8-semver compare == -1), so a node stuck on a
higher leftover build (e.g. 9.2.19-flant.14) would never converge to a lower
desired version (9.2.19-flant.12): it early-exited with "already loaded".
Change both the rebuild decision and the reboot-flag decision to trigger on
any mismatch (compare != 0), so the node converges to the desired version in
either direction.
The centos-like drbd-install template (bundles: centos, redos) was missed in
the previous commit; RED OS nodes still early-exited on a version downgrade.
Apply the same compare != 0 change so redos nodes also converge to the desired
DRBD version in either direction.
…resync-finished)

flant.13 = flant.12 + fix for the remaining "node Outdated & stuck after reboot"
mode: __cancel_other_resyncs() now re-drives a still-behind cancelled peer as
SOURCE instead of leaving it Established with a dirty bitmap. See run-13.
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.

1 participant