The GitHub Actions job "Build" on 
jackrabbit-oak.git/fix/ghost-blob-gc-datastore-exception has failed.
Run started by GitHub user royteeuwen (triggered by royteeuwen).

Head commit for run:
75c873ca69e293d28288fd609ccd1b40c6ede660 / Roy Teeuwen <[email protected]>
OAK-12280: Reconcile the BlobIdTracker after offline datastore GC

After an offline `datastore --collect-garbage` (non mark-only) run, the
BlobIdTracker used by online GC is now reconciled automatically: blob IDs
deleted by this run are removed from the local tracker files and the
SharedDataStore snapshot (the `*.refs` record). This stops online GC from
repeatedly logging `DataStoreException: Record ... does not exist` for ghost
blobs and failing to prune them from the tracker.

The online sweep is also made tolerant of ghost blobs: `countDeleteChunk`
returns -1 (or a DataStoreException is caught) and the id is removed from the
tracker instead of failing, so pre-existing stale entries get cleaned up.

The tracker lives at <repository-home>/blobids. The repository home is derived
from the segment store path (its parent) and can be overridden with the new
optional --repository-home. This replaces the earlier --blobids-path option,
which pointed one level too deep: BlobIdTracker.build() appends "blobids", so
passing the blobids dir resolved to <...>/blobids/blobids and left the live
local tracker untouched (ghosts returned after a restart).

Report URL: https://github.com/apache/jackrabbit-oak/actions/runs/28190174235

With regards,
GitHub Actions via GitBox

Reply via email to