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 "Shivam (Jira)" <ji...@apache.org> on 2026/10/13 07:03:00 UTC

[jira] [Updated] (OAK-12457) Oak-run check wrongly reports "No good revision found" when the corrupt path doesn't exist in older revisions

     [ https://issues.apache.org/jira/browse/OAK-12457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Shivam updated OAK-12457:
-------------------------
    Summary: Oak-run check wrongly reports "No good revision found" when the corrupt path doesn't exist in older revisions  (was: Oak-run check reports "No good revision found" when the corrupt path doesn't exist in older revisions)

> Oak-run check wrongly reports "No good revision found" when the corrupt path doesn't exist in older revisions
> -------------------------------------------------------------------------------------------------------------
>
>                 Key: OAK-12457
>                 URL: https://issues.apache.org/jira/browse/OAK-12457
>             Project: Jackrabbit Oak
>          Issue Type: Bug
>          Components: run, segment-tar
>    Affects Versions: 2.6.0
>            Reporter: Shivam
>            Priority: Major
>
> When the newer revision has a corrupt node that was added after an older, consistent revision, check rejects the older revision too, because it re-tests the corrupt path there and treats the missing path as invalid.
> The result is a misleading {*}No good revision found{*}.
> *Example:* 
> To explain the bug, here are the contents of the revisions:
>  * Valid Revision
>  ** Adds child nodes a, b, c, d, e, f with various properties (blobs included).
>  * Invalid Revision
>  ** Adds child node z with some blob properties and then corrupts the NODE record holding z.
> When oak-run check is run, it detects that the second revision is broken and marks the path /z as corrupt. It then continues with the first revision, which is valid. Before traversing an older revision, the checker first re-tests the corrupt paths found in newer revisions. /z does not exist in the first revision, and a missing path is counted as invalid. The valid revision is therefore rejected without being traversed, and the check ends with:
> Error while traversing /z: ...Segment reference out of bounds
> Path /z not found
> No good revision found
> Running check on the first revision alone gives Path / is consistent.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)