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)