Repository navigation
Conversation
- Validate persisted groups against direct PD membership before startup recovery. - Refresh derived shard metadata only before its engine starts, retaining durable Raft configuration. - Cover persisted configuration recovery and refusal guards, and document restart checks.
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## master #3417 +/- ##
============================================
+ Coverage 57.27% 57.57% +0.30%
+ Complexity 6577 2479 -4098
============================================
Files 776 776
Lines 68881 68962 +81
Branches 9431 9453 +22
============================================
+ Hits 39449 39708 +259
+ Misses 25804 25613 -191
- Partials 3628 3641 +13
*This pull request uses carry forward flags. Click here to find out more. ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: yes. Summary: The direct PD shard group refresh, the running-engine guard and the role-aware /learner peers match the PR goal, and the earlier learner finding is fixed at this head. Startup now exits the Store when PD no longer has a persisted graph partition, where the base skipped that partition.
Preserve direct PD lookup errors and distinguish graph absence from failed RPCs. Retain skipped graph data and paths while recovering remaining valid graphs. Verify native learner startup and await leader callback publication in recovery tests.
Merge ASF master a185f1d, including the learner retry fix. Keep recovery and learner test includes and operation guidance. Validate the combined Store recovery and membership regressions.
bitflicker64
left a comment
There was a problem hiding this comment.
Blocking: no. Score: 9/10. Summary: Recovery validates PD membership and persisted partitions before refreshing derived SHARDGROUP metadata, keeps durable Raft configuration and running engines authoritative, and both earlier findings (learner bootstrap, dropped-graph NOT_FOUND) are fixed with tests that run in CI.
Before → After
Before: stale persisted
SHARDGROUPmetadata could omit a migrated Store and exclude its partition before JRaft restored the durable configuration.After: validate PD membership and persisted graph partitions, then refresh derived metadata once per group only when its engine is absent. Preserve running engines and durable Raft configuration; missing, invalid, or unavailable PD metadata blocks recovery and retains local data.
Validation boundary
The source PR reports 19 tests with no failures or skips on Java 17, including a real JRaft node reopening a persisted one-voter configuration without replacing it with a different PD bootstrap. This does not claim independent multi-node migration/restart acceptance.
Source PR: 🔗 hugegraph/hugegraph #344
Visual overview
Direct PD partition NOT_FOUND skips deleted-graph recovery while retaining local data; surviving graphs still recover. Other metadata failures remain fail-closed. Durable Raft configuration stays authoritative, and empty-log bootstrap preserves learner roles. No independent multi-node migration or RC acceptance is claimed.