Skip to content

Commit 90e6fb0

Browse files
authored
Fix synchronization in LocalCheckpointTracker#contains (#38755)
We are accessing the `CountedBitSet` in `LocalCheckpointTracker#contains` without proper synchronization. Relates #33871
1 parent a8dc0c6 commit 90e6fb0

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

server/src/main/java/org/elasticsearch/index/seqno/LocalCheckpointTracker.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -157,11 +157,11 @@ public boolean contains(final long seqNo) {
157157
return true;
158158
}
159159
final long bitSetKey = getBitSetKey(seqNo);
160-
final CountedBitSet bitSet;
160+
final int bitSetOffset = seqNoToBitSetOffset(seqNo);
161161
synchronized (this) {
162-
bitSet = processedSeqNo.get(bitSetKey);
162+
final CountedBitSet bitSet = processedSeqNo.get(bitSetKey);
163+
return bitSet != null && bitSet.get(bitSetOffset);
163164
}
164-
return bitSet != null && bitSet.get(seqNoToBitSetOffset(seqNo));
165165
}
166166

167167
/**

0 commit comments

Comments
 (0)