Make sure to clear candidate from memory 65/93565/2
authorTomas Cere <tomas.cere@pantheon.tech>
Tue, 3 Nov 2020 11:38:04 +0000 (12:38 +0100)
committerTomas Cere <tomas.cere@pantheon.tech>
Tue, 3 Nov 2020 15:07:58 +0000 (15:07 +0000)
The candidate needs to be cleared even when processing
replicated candidate(ie on a follower) as there is no need
to keep it deserialized in memory

JIRA: CONTROLLER-1928
Change-Id: I1403dbe27def5e0040a8d9f145a92ac06aae9d1e
Signed-off-by: Tomas Cere <tomas.cere@pantheon.tech>
opendaylight/md-sal/sal-distributed-datastore/src/main/java/org/opendaylight/controller/cluster/datastore/ShardDataTree.java

index d4dabe5e85caf2d6d1aac564a939f58af8fd2374..c316fdfb9e6b768b2ab5850c1068957527b36da5 100644 (file)
@@ -389,7 +389,7 @@ public class ShardDataTree extends ShardDataTreeTransactionParent {
 
     private void applyReplicatedCandidate(final CommitTransactionPayload payload)
             throws DataValidationFailedException, IOException {
-        final Entry<TransactionIdentifier, DataTreeCandidateWithVersion> entry = payload.getCandidate();
+        final Entry<TransactionIdentifier, DataTreeCandidateWithVersion> entry = payload.acquireCandidate();
         final TransactionIdentifier identifier = entry.getKey();
         LOG.debug("{}: Applying foreign transaction {}", logContext, identifier);