[ https://issues.apache.org/jira/browse/OAK-10814?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Miroslav Smiljanic reassigned OAK-10814: ---------------------------------------- Assignee: Miroslav Smiljanic > Tar file recovery still fails with SNFE in some cases. > ------------------------------------------------------ > > Key: OAK-10814 > URL: https://issues.apache.org/jira/browse/OAK-10814 > Project: Jackrabbit Oak > Issue Type: Bug > Components: segment-tar > Affects Versions: 1.62.0 > Reporter: Axel Hanikel > Assignee: Miroslav Smiljanic > Priority: Major > > {noformat} > 13.05.2024 06:59:56.357 WARN [FelixStartLevel] > org.apache.jackrabbit.oak.segment.file.tar.SegmentTarReader Unable to load > index of file data21604a.tar: Unrecognized magic number > 13.05.2024 06:59:56.369 INFO [FelixStartLevel] > org.apache.jackrabbit.oak.segment.file.tar.TarReader Backing up > data21604a.tar to data21604a.tar.bak > 13.05.2024 06:59:56.372 INFO [FelixStartLevel] > org.apache.jackrabbit.oak.segment.file.tar.TarReader Regenerating tar file > data21604a.tar > 13.05.2024 06:59:56.439 ERROR [FelixStartLevel] > org.apache.jackrabbit.oak.segment.SegmentNotFoundExceptionListener Segment > not found: a4ad6e4b-93dc-4e09-ad0d-ab99a7f93652. SegmentId age=18ms > org.apache.jackrabbit.oak.segment.SegmentNotFoundException: Segment > a4ad6e4b-93dc-4e09-ad0d-ab99a7f93652 not found > at > org.apache.jackrabbit.oak.segment.file.AbstractFileStore.readSegmentUncached(AbstractFileStore.java:297) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.file.FileStore.lambda$readSegment$10(FileStore.java:512) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.SegmentCache$NonEmptyCache.lambda$getSegment$0(SegmentCache.java:163) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache$LocalManualCache$1.load(LocalCache.java:4938) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache$LoadingValueReference.loadFuture(LocalCache.java:3576) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache$Segment.loadSync(LocalCache.java:2318) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache$Segment.lockedGetOrLoad(LocalCache.java:2191) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache$Segment.get(LocalCache.java:2081) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache.get(LocalCache.java:4019) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.cache.LocalCache$LocalManualCache.get(LocalCache.java:4933) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.oak.segment.SegmentCache$NonEmptyCache.getSegment(SegmentCache.java:160) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.file.FileStore.readSegment(FileStore.java:512) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.SegmentId.getSegment(SegmentId.java:153) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at org.apache.jackrabbit.oak.segment.Record.getSegment(Record.java:71) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.ListRecord.getEntries(ListRecord.java:99) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.ListRecord.getEntries(ListRecord.java:92) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.SegmentStream.read(SegmentStream.java:166) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.guava.common.io.ByteStreams.read(ByteStreams.java:934) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.io.ByteStreams.readFully(ByteStreams.java:802) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.guava.common.io.ByteStreams.readFully(ByteStreams.java:786) > [org.apache.jackrabbit.guava:1.62.0] > at > org.apache.jackrabbit.oak.segment.SegmentStream.getString(SegmentStream.java:105) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.Segment.readString(Segment.java:467) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > at > org.apache.jackrabbit.oak.segment.SegmentBlob.readLongBlobId(SegmentBlob.java:248) > [org.apache.jackrabbit.oak-segment-tar:1.62.0] > {noformat} > The reason seems to be that the long blobId string is stored behind a list > record, where the elements are stored in yet a different segment, which is > then loaded in the normal way, i.e. bypassing the recovery map added in > OAK-10636. -- This message was sent by Atlassian Jira (v8.20.10#820010)