Skip to content

Commit d2f1e70

Browse files
committed
Retain only callback in JournaWriteTask completion
The LogEntry can be potentially huge, do not retain it via JournalAppendEntry when not needed. JIRA: CONTROLLER-2137 Change-Id: Ib19a1ff18e77b27112b1dd86901281f172ea90d6 Signed-off-by: Robert Varga <[email protected]>
1 parent a0cde2e commit d2f1e70

File tree

1 file changed

+4
-1
lines changed

1 file changed

+4
-1
lines changed

raft/sal-akka-raft/src/main/java/org/opendaylight/controller/cluster/raft/spi/JournalWriteTask.java

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -296,7 +296,10 @@ boolean runBatch(final Queue<Action> actions) {
296296
// FIXME: record returned size to messageSize, which really is
297297
// 'serialized command size'
298298
journal.appendEntry(appendEntry.entry);
299-
completions.add(() -> appendEntry.callback.invoke(null, journalIndex));
299+
300+
// Do not retain entry for callback purposes
301+
final var cb = appendEntry.callback;
302+
completions.add(() -> cb.invoke(null, journalIndex));
300303
}
301304
case JournalDiscardHead discardHead -> journal.discardHead(discardHead.journalIndex);
302305
case JournalDiscardTail discardTail -> journal.discardTail(discardTail.journalIndex);

0 commit comments

Comments
 (0)