priyeshkaratha opened a new pull request, #11307: URL: https://github.com/apache/ozone/pull/11307
## What changes were proposed in this pull request? `SCMDeletedBlockTransactionStatusManager.commitTransactions` decides whether to purge a delete-block transaction from the log using a replica-set read taken at that decision point, but the durable removal (`removeTransactions`) happens later, after the rest of the ACK batch has been processed. If `ReplicationManager` copies the container to a new datanode in that window, the new replica never receives or acknowledges the deletion. SCM has no mechanism to reconcile a replica's delete-transaction progress against the container, so once the transaction is purged, that replica's blocks are never deleted and it may cause a permanent space leak. So we have to defer clearing `transactionToDNsCommitMap` / `transactionToRetryCountMap` for a transaction that looks purge-eligible, and re-validate its replica set against `ContainerManager` immediately before the durable removal at the end of the batch. If a replica appears that isn't in the committed-DN set, the purge is skipped and the transaction stays in the log, so normal resend logic (`getTransactions` /`checkInadequateReplica`) picks it up and delivers the delete command to the new replica once it is healthy. ## What is the link to the Apache JIRA HDDS-16144 ## How was this patch tested? Added testcase to validate -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
