Description
RATIS-1893 moved checkAndEvictCache to a separate thread.
This opens a condition race between evictCache and normal log operations like get/put.
Before RATIS-1893, checkAndEvictCache was called from appendEntryImpl and safe under a writeLock().
I noticed this error because there are get/put operations intervene with the EntryCache eviction during testing zero-copy:
void clear() { map.values().forEach(ReferenceCountedObject::release); map.clear(); size.set(0); }
Attachments
Issue Links
- is caused by
-
RATIS-1893 In SegmentedRaftLogCache, start a daemon thread to checkAndEvictCache
- Resolved
- links to