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 "Satya Deep Maheshwari (Jira)" <ji...@apache.org> on 2020/09/21 11:12:00 UTC

[jira] [Created] (OAK-9215) Empty feature vector breaks the visual similarity search

Satya Deep Maheshwari created OAK-9215:
------------------------------------------

             Summary: Empty feature vector breaks the visual similarity search
                 Key: OAK-9215
                 URL: https://issues.apache.org/jira/browse/OAK-9215
             Project: Jackrabbit Oak
          Issue Type: Bug
          Components: indexing
    Affects Versions: 1.32.0
            Reporter: Satya Deep Maheshwari


An asset with an 'empty' feature vector breaks the entire search if it shows up in similarity results  ie the exception [1] - perhaps by adding some checks somewhere near [2].

[1]
{code}
10.09.2020 12:24:48.822 *WARN* [127.0.0.1 [1599740688604] GET /mnt/overlay/granite/ui/content/shell/omnisearch/searchresults.html HTTP/1.1] org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex query via org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex@46096af1 failed.
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
	at org.apache.jackrabbit.oak.plugins.index.lucene.util.fv.SimSearchUtils.dist(SimSearchUtils.java:303) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.util.fv.SimSearchUtils.bruteForceFVRerank(SimSearchUtils.java:262) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$1.loadDocs(LucenePropertyIndex.java:427) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$1.computeNext(LucenePropertyIndex.java:275) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$1.computeNext(LucenePropertyIndex.java:262) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) [com.adobe.granite.osgi.wrapper.guava:15.0.0.0002]
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) [com.adobe.granite.osgi.wrapper.guava:15.0.0.0002]
	at org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndex$FulltextPathCursor$1.hasNext(FulltextIndex.java:406)
	at org.apache.jackrabbit.oak.plugins.index.Cursors$PathCursor.hasNext(Cursors.java:216) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndex$FulltextPathCursor.hasNext(FulltextIndex.java:439)
	at org.apache.jackrabbit.oak.query.ast.SelectorImpl.nextInternal(SelectorImpl.java:515) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.ast.SelectorImpl.next(SelectorImpl.java:508) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.fetchNext(QueryImpl.java:876) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.hasNext(QueryImpl.java:903) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.fetch(QueryResultImpl.java:103) [org.apache.jackrabbit.oak-jcr:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.<init>(QueryResultImpl.java:99) [org.apache.jackrabbit.oak-jcr:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getRows(QueryResultImpl.java:83) [org.apache.jackrabbit.oak-jcr:1.33.0.R1880830]
	at com.day.cq.search.impl.builder.QueryImpl$RowIterable.iterator(QueryImpl.java:833) [com.day.cq.cq-search:5.13.4]
	at com.day.cq.search.impl.builder.QueryImpl.execute(QueryImpl.java:649) [com.day.cq.cq-search:5.13.4]
	at com.day.cq.search.impl.builder.QueryImpl.getResult(QueryImpl.java:111) [com.day.cq.cq-search:5.13.4]
	at com.day.cq.dam.core.impl.omnisearch.AbstractAssetOmniSearchHandler.getResults(AbstractAssetOmniSearchHandler.java:149) [com.day.cq.dam.cq-dam-core:5.13.200]
	at com.day.cq.dam.core.impl.omnisearch.AssetOmniSearchHandler.getResults(AssetOmniSearchHandler.java:102) [com.day.cq.dam.cq-dam-core:5.13.200]
	at com.adobe.granite.omnisearch.impl.core.OmniSearchServiceImpl.getSearchResults(OmniSearchServiceImpl.java:141) [com.adobe.granite.omnisearch.core:1.0.92]
	at libs.granite.ui.components.shell.omnisearch.datasource.searchdatasource.searchdatasource__002e__jsp._jspService(searchdatasource__002e__jsp.java:155) [aem-precompiled-scripts:6.6.0.V20481]
<removed_irrelevant>
	at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375) [org.apache.felix.http.jetty:4.0.20]
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) [org.apache.felix.http.jetty:4.0.20]
	at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) [org.apache.felix.http.jetty:4.0.20]
	at java.base/java.lang.Thread.run(Thread.java:834)
10.09.2020 12:24:48.850 *WARN* [127.0.0.1 [1599740688604] GET /mnt/overlay/granite/ui/content/shell/omnisearch/searchresults.html HTTP/1.1] org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex query via org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex@46096af1 failed.
java.lang.ArrayIndexOutOfBoundsException: Index 0 out of bounds for length 0
	at org.apache.jackrabbit.oak.plugins.index.lucene.util.fv.SimSearchUtils.dist(SimSearchUtils.java:303) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.util.fv.SimSearchUtils.bruteForceFVRerank(SimSearchUtils.java:262) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$1.loadDocs(LucenePropertyIndex.java:427) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$1.computeNext(LucenePropertyIndex.java:275) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.lucene.LucenePropertyIndex$1.computeNext(LucenePropertyIndex.java:262) [org.apache.jackrabbit.oak-lucene:1.33.0.R1880830]
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143) [com.adobe.granite.osgi.wrapper.guava:15.0.0.0002]
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138) [com.adobe.granite.osgi.wrapper.guava:15.0.0.0002]
	at org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndex$FulltextPathCursor$1.hasNext(FulltextIndex.java:406)
	at org.apache.jackrabbit.oak.plugins.index.Cursors$PathCursor.hasNext(Cursors.java:216) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.plugins.index.search.spi.query.FulltextIndex$FulltextPathCursor.hasNext(FulltextIndex.java:439)
	at org.apache.jackrabbit.oak.query.ast.SelectorImpl.nextInternal(SelectorImpl.java:515) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.ast.SelectorImpl.next(SelectorImpl.java:508) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.fetchNext(QueryImpl.java:876) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.QueryImpl$RowIterator.hasNext(QueryImpl.java:903) [org.apache.jackrabbit.oak-core:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.fetch(QueryResultImpl.java:103) [org.apache.jackrabbit.oak-jcr:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl$1.<init>(QueryResultImpl.java:99) [org.apache.jackrabbit.oak-jcr:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.jcr.query.QueryResultImpl.getRows(QueryResultImpl.java:83) [org.apache.jackrabbit.oak-jcr:1.33.0.R1880830]
	at org.apache.jackrabbit.oak.query.facet.FacetResult.<init>(FacetResult.java:54) [org.apache.jackrabbit.oak-query-spi:1.33.0.R1880830]
	at com.day.cq.search.impl.facets.JcrFacetExtractor.<init>(JcrFacetExtractor.java:47) [com.day.cq.cq-search:5.13.4]
	at com.day.cq.search.impl.builder.QueryImpl.getFacetsFromJcr(QueryImpl.java:308) [com.day.cq.cq-search:5.13.4]
{code}

[2]
https://github.com/apache/jackrabbit-oak/blob/339cdbc87347f3490a768944c9695971f6f98dd8/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/fv/SimSearchUtils.java#L261



--
This message was sent by Atlassian Jira
(v8.3.4#803005)