Siyao Meng created HDDS-16729:
---------------------------------

             Summary: Add end-to-end regression coverage for snapshot diff 
cancellation and resubmission
                 Key: HDDS-16729
                 URL: https://issues.apache.org/jira/browse/HDDS-16729
             Project: Apache Ozone
          Issue Type: Test
            Reporter: Siyao Meng
            Assignee: Siyao Meng


Follow-up to HDDS-16441:
https://issues.apache.org/jira/browse/HDDS-16441
https://github.com/apache/ozone/pull/11321

HDDS-16441 prevents a cancelled snapshot diff task from marking a resubmitted 
job DONE with the old task's report metadata. The current regression test 
inserts the job-table entry directly and calls updateJobStatusToDone, so it 
does not cover cancellation, resubmission, report generation, or report 
retrieval together.

Add a deterministic regression test to the existing snapshot integration suite:

# Create two snapshots with a non-empty expected diff.
# Submit diff A and pause it after report generation, before publishing 
completion.
# Cancel A through the client API.
# Call submitSnapshotDiff again for the same snapshot pair, creating B with a 
different jobId. Keep B paused before report generation.
# Release A and verify B remains IN_PROGRESS with its completion metadata 
unchanged.
# Release B, wait for completion, and retrieve all report pages. Verify the 
expected entries and successful report integrity checks.

Use bounded synchronization to control the interleaving, without manually 
creating or replacing job-table entries. Any timing hook must allow 
cancellation and resubmission to proceed without holding the 
SnapshotDiffManager monitor.

The test must fail when the jobId completion guard introduced by HDDS-16441 is 
removed, and pass with the fix. Reuse the existing cluster lifecycle and test 
helpers.




--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to