Hi Chetan,

there are 2 things at play there I think.
First thing is that for testing purposes the suggester was configured to be
updated upon each commit [1], the other thing, which is a bug, is that the
code you mentioned [2] should actually check if the the "useInSuggest"
property is set before eventually update the suggester, so at least this
check needs to be introduced. For the testing configuration we should
probably look for a less intrusive setting.

Regards,
Tommaso


[1] :
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/jcr/LuceneOakRepositoryStub.java#L88
[2]
https://github.com/apache/jackrabbit-oak/blob/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java#L167

2015-03-12 8:00 GMT+01:00 Chetan Mehrotra <[email protected]>:

> Hi Tommaso,
>
> Last couple of builds on Apache CI are failing in oak-lucene [1] [2].
> Running the system locally reveals that quite a bit of time is being
> spent in building up suggestor [3]. QueryJcrTest taking some time and
> its the test which probably gets hanged in the CI build
>
> Running org.apache.jackrabbit.oak.jcr.query.QueryJcrTest
> Tests run: 218, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 245.208
> sec
>
> Further looking at the code [0] it appears that a suggestor directory
> would always be created/updated irrespective wether user has enabled
> suggestor for that index or not.
>
> I think suggestor should only be built if the index has that feature
> enabled? For example for normal lucene-property index building up the
> suggestor would not be useful
>
> Chetan Mehrotra
> [0]
> https://github.com/apache/jackrabbit-oak/blob/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexEditorContext.java#L167
> [1]
> http://ci.apache.org/builders/oak-trunk/builds/1142/steps/compile/logs/stdio
> [2]
> http://ci.apache.org/builders/oak-trunk/builds/1141/steps/compile/logs/stdio
> [3]
> "Thread-9" prio=10 tid=0x00007f1790797000 nid=0x6b6f runnable
> [0x00007f175ef0b000]
>    java.lang.Thread.State: RUNNABLE
> at
> org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.<init>(OakDirectory.java:201)
> at
> org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexFile.<init>(OakDirectory.java:155)
> at
> org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.<init>(OakDirectory.java:340)
> at
> org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.clone(OakDirectory.java:345)
> at
> org.apache.jackrabbit.oak.plugins.index.lucene.OakDirectory$OakIndexInput.clone(OakDirectory.java:329)
> at
> org.apache.lucene.store.Directory$SlicedIndexInput.clone(Directory.java:288)
> at
> org.apache.lucene.store.Directory$SlicedIndexInput.clone(Directory.java:269)
> at
> org.apache.lucene.codecs.BlockTreeTermsReader$FieldReader.<init>(BlockTreeTermsReader.java:481)
> at
> org.apache.lucene.codecs.BlockTreeTermsReader.<init>(BlockTreeTermsReader.java:176)
> at
> org.apache.lucene.codecs.lucene41.Lucene41PostingsFormat.fieldsProducer(Lucene41PostingsFormat.java:437)
> at
> org.apache.lucene.index.SegmentCoreReaders.<init>(SegmentCoreReaders.java:116)
> at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:96)
> at
> org.apache.lucene.index.ReadersAndUpdates.getReader(ReadersAndUpdates.java:141)
> at
> org.apache.lucene.index.ReadersAndUpdates.getReadOnlyClone(ReadersAndUpdates.java:235)
> - locked <0x00000000fc700320> (a org.apache.lucene.index.ReadersAndUpdates)
> at
> org.apache.lucene.index.StandardDirectoryReader.open(StandardDirectoryReader.java:100)
> at org.apache.lucene.index.IndexWriter.getReader(IndexWriter.java:382)
> - locked <0x00000000f19fbee0> (a org.apache.lucene.index.IndexWriter)
> - locked <0x00000000f19fc010> (a java.lang.Object)
> at org.apache.lucene.index.DirectoryReader.open(DirectoryReader.java:111)
> at
> org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexEditorContext.updateSuggester(LuceneIndexEditorContext.java:185)
>

Reply via email to