Skip to content

fix logservice stale replica truncation#24982

Open
LeftHandCold wants to merge 5 commits into
matrixorigin:3.0-devfrom
LeftHandCold:codex/logservice-clean-stale-replica-3.0-dev
Open

fix logservice stale replica truncation#24982
LeftHandCold wants to merge 5 commits into
matrixorigin:3.0-devfrom
LeftHandCold:codex/logservice-clean-stale-replica-3.0-dev

Conversation

@LeftHandCold

@LeftHandCold LeftHandCold commented Jun 15, 2026

Copy link
Copy Markdown
Contributor

What type of PR is this?

  • API-change
  • BUG
  • Improvement
  • Documentation
  • Feature
  • Test and CI
  • Code Refactoring

Which issue(s) this PR fixes:

issue #24966

What this PR does / why we need it:

This PR updates the MatrixOne 3.0-dev branch to use the Dragonboat snapshot import metadata fix merged in:

Main changes:

  • Update the github.com/lni/dragonboat/v4 replacement to github.com/matrixorigin/dragonboat/v4 v4.0.0-20260612094223-103d119addce.
  • Add the corresponding go.sum entries for the updated Dragonboat module.

Why this is needed:

  • The upstream fix prevents imported snapshots from synthesizing Membership.ConfigChangeId from the snapshot index.
  • HAKeeper uses Dragonboat membership ConfigChangeId as the LogService shard epoch.
  • Without this fix, an old imported membership can be reported with a large fake epoch and be treated as newer than the live membership view.
  • The upstream fix also preserves online imported snapshot membership consistently and rejects invalid target membership before restore.

Validation:

  • git diff --check
  • GOTELEMETRY=off go mod download github.com/lni/dragonboat/v4
  • GOTELEMETRY=off go list -m -json github.com/lni/dragonboat/v4
  • GOTELEMETRY=off GOCACHE=/private/tmp/mo-dragonboat-3dev-gocache go test github.com/lni/dragonboat/v4/tools github.com/lni/dragonboat/v4/internal/rsm github.com/lni/dragonboat/v4/internal/raft -run '^$' -count=0

Fixes logservice stale replica recovery with the previous MO-side stale truncation metadata cleanup plus the Dragonboat snapshot import metadata fix from #24967. This keeps truncation from processing stale local replica metadata/exported snapshots, and updates Dragonboat so imported snapshots no longer synthesize membership ConfigChangeId from snapshot index.

@qodo-code-review

Copy link
Copy Markdown

Qodo reviews are paused for this user.

Troubleshooting steps vary by plan Learn more →

On a Teams plan?
Reviews resume once this user has a paid seat and their Git account is linked in Qodo.
Link Git account →

Using GitHub Enterprise Server, GitLab Self-Managed, or Bitbucket Data Center?
These require an Enterprise plan - Contact us
Contact us →

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

Labels

kind/bug Something isn't working kind/enhancement size/M Denotes a PR that changes [100,499] lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants