Skip to content

Lucene Spatial Indexes #8829

@beachtom

Description

@beachtom

OrientDB Version: 3.0.18

Java Version: 1.8.0_201

OS: Ubuntu Linux

Expected behavior

Lucene Spatial Index functions as normal

Actual behavior

Periodically - lucene index gets into a non-working state. Orientdb server restart required to solve the issue.

$ANSI{green {db=Cardiff}} Error on getting entry against Lucene index
com.orientechnologies.lucene.exception.OLuceneIndexException: Error on get searcher from Lucene index
at com.orientechnologies.lucene.engine.OLuceneIndexEngineAbstract.searcher(OLuceneIndexEngineAbstract.java:425)
at com.orientechnologies.spatial.strategy.SpatialQueryBuilderWithin.build(SpatialQueryBuilderWithin.java:59)
at com.orientechnologies.spatial.strategy.SpatialQueryBuilder.build(SpatialQueryBuilder.java:58)
at com.orientechnologies.spatial.engine.OLuceneGeoSpatialIndexEngine.newGeoSearch(OLuceneGeoSpatialIndexEngine.java:84)
at com.orientechnologies.spatial.engine.OLuceneGeoSpatialIndexEngine.getInTx(OLuceneGeoSpatialIndexEngine.java:70)
at com.orientechnologies.spatial.engine.OLuceneGeoSpatialIndexEngine.get(OLuceneGeoSpatialIndexEngine.java:61)
at com.orientechnologies.spatial.engine.OLuceneSpatialIndexEngineDelegator.get(OLuceneSpatialIndexEngineDelegator.java:141)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.doGetIndexValue(OAbstractPaginatedStorage.java:2674)
at com.orientechnologies.orient.core.storage.impl.local.OAbstractPaginatedStorage.getIndexValue(OAbstractPaginatedStorage.java:2655)
at com.orientechnologies.lucene.index.OLuceneIndexNotUnique.get(OLuceneIndexNotUnique.java:275)
at com.orientechnologies.lucene.index.OLuceneIndexNotUnique.get(OLuceneIndexNotUnique.java:52)
at com.orientechnologies.spatial.functions.OSpatialFunctionAbstractIndexable.results(OSpatialFunctionAbstractIndexable.java:123)
at com.orientechnologies.spatial.functions.OSTWithinFunction.searchFromTarget(OSTWithinFunction.java:62)
at com.orientechnologies.orient.core.sql.parser.OFunctionCall.executeIndexedFunction(OFunctionCall.java:169)
at com.orientechnologies.orient.core.sql.parser.OLevelZeroIdentifier.executeIndexedFunction(OLevelZeroIdentifier.java:96)
at com.orientechnologies.orient.core.sql.parser.OBaseIdentifier.executeIndexedFunction(OBaseIdentifier.java:104)
at com.orientechnologies.orient.core.sql.parser.OBaseExpression.executeIndexedFunction(OBaseExpression.java:165)
at com.orientechnologies.orient.core.sql.parser.OExpression.executeIndexedFunction(OExpression.java:299)
at com.orientechnologies.orient.core.sql.parser.OBinaryCondition.executeIndexedFunction(OBinaryCondition.java:137)
at com.orientechnologies.orient.core.sql.executor.FetchFromIndexedFunctionStep.init(FetchFromIndexedFunctionStep.java:100)
at com.orientechnologies.orient.core.sql.executor.FetchFromIndexedFunctionStep.syncPull(FetchFromIndexedFunctionStep.java:38)
at com.orientechnologies.orient.core.sql.executor.FilterByClustersStep$1.fetchNextItem(FilterByClustersStep.java:57)
at com.orientechnologies.orient.core.sql.executor.FilterByClustersStep$1.hasNext(FilterByClustersStep.java:93)
at com.orientechnologies.orient.core.sql.executor.FilterByClassStep$1.fetchNextItem(FilterByClassStep.java:50)
at com.orientechnologies.orient.core.sql.executor.FilterByClassStep$1.hasNext(FilterByClassStep.java:88)
at com.orientechnologies.orient.core.sql.executor.ProjectionCalculationStep$1.hasNext(ProjectionCalculationStep.java:33)
at com.orientechnologies.orient.core.sql.parser.OLocalResultSet.fetchNext(OLocalResultSet.java:36)
at com.orientechnologies.orient.core.sql.parser.OLocalResultSet.(OLocalResultSet.java:29)
at com.orientechnologies.orient.core.sql.parser.OSelectStatement.execute(OSelectStatement.java:276)
at com.orientechnologies.orient.core.sql.parser.OStatement.execute(OStatement.java:79)
at com.orientechnologies.orient.core.db.document.ODatabaseDocumentEmbedded.command(ODatabaseDocumentEmbedded.java:568)
at com.orientechnologies.orient.server.OConnectionBinaryExecutor.executeQuery(OConnectionBinaryExecutor.java:1293)
at com.orientechnologies.orient.client.remote.message.OQueryRequest.execute(OQueryRequest.java:133)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.sessionRequest(ONetworkProtocolBinary.java:304)
at com.orientechnologies.orient.server.network.protocol.binary.ONetworkProtocolBinary.execute(ONetworkProtocolBinary.java:206)
at com.orientechnologies.common.thread.OSoftThread.run(OSoftThread.java:69)
Caused by: java.lang.IllegalStateException: The managed reference has already closed - this is likely a bug when the reference count is modified outside of the ReferenceManager
at org.apache.lucene.search.ReferenceManager.acquire(ReferenceManager.java:114)
at com.orientechnologies.lucene.engine.OLuceneIndexEngineAbstract.searcher(OLuceneIndexEngineAbstract.java:422)
... 35 more

Steps to reproduce

None - occurs randomly.

Metadata

Metadata

Assignees

Labels

buglegacy not used anymore

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions