Skip to content

HDDS-16465. Validate snapshot chains before mutation - #11253

Merged
smengcl merged 2 commits into
apache:masterfrom
andyhuangdev:HDDS-16465
Sep 21, 2026
Merged

smengcl merged 2 commits into
apache:masterfrom
andyhuangdev:HDDS-16465

Conversation

@andyhuangdev

Copy link
Copy Markdown
Contributor

What changes were proposed in this pull request?

SnapshotChainManager updates the global snapshot chain before updating the per-path chain. If path validation fails, the global chain remains changed while the path chain does not.

For example, adding a snapshot with a valid global predecessor but a missing path predecessor throws an exception after inserting the snapshot into the global chain. Similarly, deleting a snapshot with a mismatched path removes its global entry while leaving its path entry intact.

This change validates both chains before modifying either, under the existing synchronized methods. Deletion checks membership and neighbors in both chains and rejects inconsistent membership before removing the snapshot.

What is the link to the Apache JIRA

HDDS-16465

How was this patch tested?

Added regression tests covering failed insertion into empty and nonempty chains, and deletion with a mismatched path.

All 20 tests in TestSnapshotChain passed. Checkstyle and git diff --check passed.

Validate global and path chains before adding or deleting snapshots to prevent partial updates when validation fails. Reject inconsistent deletion membership and add regression coverage for failed operations.

Tests: TestSnapshotChain (20 passed), checkstyle, git diff --check.
@andyhuangdev

Copy link
Copy Markdown
Contributor Author

cc @chungen0126 @Russole

@jojochuang jojochuang added the snapshot https://issues.apache.org/jira/browse/HDDS-6517 label Sep 18, 2026

@smengcl smengcl left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm

@smengcl
smengcl merged commit aed7cea into apache:master Sep 21, 2026
88 of 89 checks passed
@smengcl

smengcl commented Sep 21, 2026

Copy link
Copy Markdown
Contributor

Thanks @andyhuangdev for the patch.

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

Labels

snapshot https://issues.apache.org/jira/browse/HDDS-6517

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants