Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
None
Description
When using CLEAN_OLD it might happen that segments of the persisted compaction map get collected. -The reason for this is that only the segment containing the root of the map is pinned (SegmentId#pin), leaving other segments of the compaction map eligible for collection once old enough.-
org.apache.jackrabbit.oak.plugins.segment.SegmentNotFoundException: Segment 95cbb3e2-3a8c-4976-ae5b-6322ff102731 not found at org.apache.jackrabbit.oak.plugins.segment.file.FileStore.readSegment(FileStore.java:919) at org.apache.jackrabbit.oak.plugins.segment.SegmentTracker.getSegment(SegmentTracker.java:134) at org.apache.jackrabbit.oak.plugins.segment.SegmentId.getSegment(SegmentId.java:108) at org.apache.jackrabbit.oak.plugins.segment.Record.getSegment(Record.java:82) at org.apache.jackrabbit.oak.plugins.segment.MapRecord.getEntry(MapRecord.java:154) at org.apache.jackrabbit.oak.plugins.segment.MapRecord.getEntry(MapRecord.java:186) at org.apache.jackrabbit.oak.plugins.segment.PersistedCompactionMap.get(PersistedCompactionMap.java:118) at org.apache.jackrabbit.oak.plugins.segment.PersistedCompactionMap.get(PersistedCompactionMap.java:100) at org.apache.jackrabbit.oak.plugins.segment.CompactionMap.get(CompactionMap.java:93) at org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.uncompact(SegmentWriter.java:1023) at org.apache.jackrabbit.oak.plugins.segment.SegmentWriter.writeNode(SegmentWriter.java:1033) at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeBuilder.getNodeState(SegmentNodeBuilder.java:100) at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore$Commit.<init>(SegmentNodeStore.java:418) at org.apache.jackrabbit.oak.plugins.segment.SegmentNodeStore.merge(SegmentNodeStore.java:204)
Attachments
Attachments
Issue Links
- depends upon
-
OAK-2862 CompactionMap#compress() inefficient for large compaction maps
- Closed