Subject: Segment Store Corruption Issues with Apache Oak Dear Apache Oak Community,
We are experiencing various issues with the corruption of the Segment Store using different versions of Apache Oak (from 1.66 to 1.72), and we are unable to determine the cause. Please find the stack-trace at the end of this message. We are using SegmentNodeStore and FileDataStore with Java 21 and the latest version of Quarkus. Are you aware of any bugs or discouraged installation scenarios that could lead to segment store corruption? Any insights or suggestions would be greatly appreciated. Best regards, Marco 2024-12-18 14:41:04,639 c-bpc-050038e quarkus-run.jar[2636470] ERROR [org.apa.jac.oak.seg.SegmentNotFoundExceptionListener] (main) Segment not found: 22356ab4-4e25-4ba6-a49d-8d75ea17fde9. SegmentId age=35ms: org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segment 22356ab4-4e25-4ba6-a49d-8d75ea17fde9 not found at org.apache.jackrabbit.oak.segment.file.AbstractFileStore.readSegmentUncached(AbstractFileStore.java:297) at org.apache.jackrabbit.oak.segment.file.FileStore.lambda$readSegment$10(FileStore.java:512) at org.apache.jackrabbit.oak.segment.SegmentCache$NonEmptyCache.lambda$getSegment$0(SegmentCache.java:163) at org.apache.jackrabbit.guava.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4938) at org.apache.jackrabbit.guava.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3576) at org.apache.jackrabbit.guava.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2318) at org.apache.jackrabbit.guava.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2191) at org.apache.jackrabbit.guava.common.cache.LocalCache$Segment.get(LocalCache.java:2081) at org.apache.jackrabbit.guava.common.cache.LocalCache.get(LocalCache.java:4019) at org.apache.jackrabbit.guava.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4933) at org.apache.jackrabbit.oak.segment.SegmentCache$NonEmptyCache.getSegment(SegmentCache.java:160) at org.apache.jackrabbit.oak.segment.file.FileStore.readSegment(FileStore.java:512) at org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:153) at org.apache.jackrabbit.oak.segment.CachingSegmentReader$2.apply(CachingSegmentReader.java:129) at org.apache.jackrabbit.oak.segment.CachingSegmentReader$2.apply(CachingSegmentReader.java:125) at org.apache.jackrabbit.oak.segment.ReaderCache.get(ReaderCache.java:117) at org.apache.jackrabbit.oak.segment.CachingSegmentReader.readTemplate(CachingSegmentReader.java:125) at org.apache.jackrabbit.oak.segment.SegmentNodeState.getTemplate(SegmentNodeState.java:126) at org.apache.jackrabbit.oak.segment.SegmentNodeState.getProperties(SegmentNodeState.java:254) at org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.compareAgainstBaseState(EmptyNodeState.java:136) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeDeleted(EditorDiff.java:170) at org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.compareAgainstBaseState(EmptyNodeState.java:142) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeDeleted(EditorDiff.java:170) at org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.compareAgainstBaseState(EmptyNodeState.java:142) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeDeleted(EditorDiff.java:170) at org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.compareAgainstBaseState(EmptyNodeState.java:142) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeDeleted(EditorDiff.java:170) at org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.compareAgainstBaseState(EmptyNodeState.java:142) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeDeleted(EditorDiff.java:170) at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:582) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.childNodeChanged(EditorDiff.java:147) at org.apache.jackrabbit.oak.segment.MapRecord.compare(MapRecord.java:444) at org.apache.jackrabbit.oak.segment.SegmentNodeState.compareAgainstBaseState(SegmentNodeState.java:651) at org.apache.jackrabbit.oak.spi.commit.EditorDiff.process(EditorDiff.java:51) at org.apache.jackrabbit.oak.spi.commit.EditorHook.processCommit(EditorHook.java:54) at org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) at org.apache.jackrabbit.oak.plugins.version.VersionHook.processCommit(VersionHook.java:86) at org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) at org.apache.jackrabbit.oak.spi.commit.CompositeHook.processCommit(CompositeHook.java:60) at org.apache.jackrabbit.oak.segment.scheduler.Commit.apply(Commit.java:99) at org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.execute(LockBasedScheduler.java:299) at org.apache.jackrabbit.oak.segment.scheduler.LockBasedScheduler.schedule(LockBasedScheduler.java:270) at org.apache.jackrabbit.oak.segment.SegmentNodeStore.merge(SegmentNodeStore.java:211) at org.apache.jackrabbit.oak.core.MutableRoot.commit(MutableRoot.java:262) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.commit(SessionDelegate.java:394) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.save(SessionDelegate.java:549) at org.apache.jackrabbit.oak.jcr.session.SessionImpl$9.performVoid(SessionImpl.java:459) at org.apache.jackrabbit.oak.jcr.delegate.SessionDelegate.performVoid(SessionDelegate.java:299) at org.apache.jackrabbit.oak.jcr.session.SessionImpl.save(SessionImpl.java:456)