diff --git a/core/src/main/scala/kafka/raft/KafkaMetadataLog.scala b/core/src/main/scala/kafka/raft/KafkaMetadataLog.scala index dba8975d437ed..83b8bee444795 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)))