This is an automated email from the ASF dual-hosted git repository. jsancio pushed a commit to branch minor-synchronize-snapshots in repository https://gitbox.apache.org/repos/asf/kafka.git
commit 3326fcc183ee8523778f8347f5ac2f2c7a34e72f Author: José Armando García Sancio <[email protected]> AuthorDate: Mon Aug 1 07:37:30 2022 -0700 MINOR; Synchronize access to snapshots' TreeMap --- core/src/main/scala/kafka/raft/KafkaMetadataLog.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/scala/kafka/raft/KafkaMetadataLog.scala b/core/src/main/scala/kafka/raft/KafkaMetadataLog.scala index dba8975d43..83b8bee444 100644 --- a/core/src/main/scala/kafka/raft/KafkaMetadataLog.scala +++ b/core/src/main/scala/kafka/raft/KafkaMetadataLog.scala @@ -257,7 +257,11 @@ final class KafkaMetadataLog private ( } override def storeSnapshot(snapshotId: OffsetAndEpoch): Optional[RawSnapshotWriter] = { - if (snapshots.contains(snapshotId)) { + val containsSnapshotId = snapshots synchronized { + snapshots.contains(snapshotId) + } + + if (containsSnapshotId) { Optional.empty() } else { Optional.of(FileRawSnapshotWriter.create(log.dir.toPath, snapshotId, Optional.of(this)))
