You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-issues@jackrabbit.apache.org by "Miroslav Smiljanic (Jira)" <ji...@apache.org> on 2024/05/17 11:40:00 UTC

[jira] [Assigned] (OAK-10814) Tar file recovery still fails with SNFE in some cases.

     [ 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)