Vikas Saurabh created OAK-7200:
----------------------------------
Summary: Sync propery indexes don't get planned if /:async exists
but indexing lane hasn't completed its first cycle
Key: OAK-7200
URL: https://issues.apache.org/jira/browse/OAK-7200
Project: Jackrabbit Oak
Issue Type: Bug
Components: lucene
Reporter: Vikas Saurabh
Assignee: Vikas Saurabh
In some cases (one example at \[0]), the repository might have a visible
{{/:async}} node but first indexing lane isn't completed yet. In this situation
sync property definitions (which are part of unfinished first indexing cycle)
don't participate in query planning.
The issue is basically that {{IndexNodeManager#open}} just looks at existence
of {{/:async}} node to see if first indexing cycle is finished. It should also
verify that the corresponding indexing lane is also done at least once (e.g.
{{/:async/@<lane>}} exists.
\[0]:
Startup a 2 node (N1 and N2) cluster with async indexing being run on say N1 -
consider async lane = {{some-lane-async}}
* N1 takes lease for {{some-lane-async}} and hence creates {{/:async}}
* N1 starts first indexing cycle for {{some-lane-async}}
* required background udpates happen such that N2 sees these updates from N1
* N2 tries to a address a query which "should" get answered by a sync prop defn
that is to be indexed in {{some-lane-async}}
* N2 see {{/:async}} and assumes that first cycle is finished for the lane and
hence expects some indexed data for the index definition (which isn't there yet)
* Thus N2 doesn't utilize the index definition while planning
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)