[
https://issues.apache.org/jira/browse/OAK-12143?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Anton updated OAK-12143:
------------------------
Description:
When an index definition provided for out-of-band reindexing contains an
async-previous property (e.g. copied from a running repository),
AsyncLaneSwitcher.switchLane() incorrectly treats the index as already switched
and returns without assigning it to the target lane. The index is then silently
skipped by IndexUpdate during reindexing.
The idempotency guard in switchLane() checks only for the presence of an
async-previous property. async-previous is a runtime-only property set by
switchLane itself, but it can legitimately appear in user-provided definitions
if the definition was copied from a system where reindexing had previously run.
The guard cannot distinguish between "already switched" and "stale
user-provided value".
was:
When an index definition provided for out-of-band reindexing contains an
async-previous property (e.g. copied from a running repository),
AsyncLaneSwitcher.switchLane() incorrectly treats the index as already switched
and returns without assigning it to the target lane. The index is then silently
skipped by IndexUpdate during reindexing.
The idempotency guard in switchLane() checks only for the presence of an
async-previous property. async-previous is a runtime-only property set by
switchLane itself, but it can legitimately appear in user-provided definitions
if the definition was copied from a system where reindexing had previously run.
The guard cannot distinguish between "already switched" and "stale
user-provided value".
> AsyncLaneSwitcher.switchLane() falsely treats user-provided async-previous as
> already-switched, silently skipping out-of-band reindexing
> ----------------------------------------------------------------------------------------------------------------------------------------
>
> Key: OAK-12143
> URL: https://issues.apache.org/jira/browse/OAK-12143
> Project: Jackrabbit Oak
> Issue Type: Improvement
> Reporter: Anton
> Priority: Major
>
> When an index definition provided for out-of-band reindexing contains an
> async-previous property (e.g. copied from a running repository),
> AsyncLaneSwitcher.switchLane() incorrectly treats the index as already
> switched and returns without assigning it to the target lane. The index is
> then silently skipped by IndexUpdate during reindexing.
> The idempotency guard in switchLane() checks only for the presence of an
> async-previous property. async-previous is a runtime-only property set by
> switchLane itself, but it can legitimately appear in user-provided
> definitions if the definition was copied from a system where reindexing had
> previously run. The guard cannot distinguish between "already switched" and
> "stale user-provided value".
--
This message was sent by Atlassian Jira
(v8.20.10#820010)