You are viewing a plain text version of this content. The canonical link for it is here.
Posted to solr-user@lucene.apache.org by Tiziano Degaetano <ti...@conweaver.com> on 2020/04/22 22:19:35 UTC
SegmentsInfoRequestHandler does not release IndexWriter
Hello,
I’m digging in an issue getting timeouts doing a managed schema change using the schema api.
The call hangs reloading the cores (does not recover until restarting the node):
sun.misc.Unsafe.park(Native Method)
java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(Unknown Source)
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(Unknown Source)
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock(Unknown Source)
org.apache.solr.update.DefaultSolrCoreState.lock(DefaultSolrCoreState.java:179)
org.apache.solr.update.DefaultSolrCoreState.newIndexWriter(DefaultSolrCoreState.java:230)
org.apache.solr.core.SolrCore.reload(SolrCore.java:696)
org.apache.solr.core.CoreContainer.reload(CoreContainer.java:1558)
org.apache.solr.schema.SchemaManager.doOperations(SchemaManager.java:133)
org.apache.solr.schema.SchemaManager.performOperations(SchemaManager.java:92)
org.apache.solr.handler.SchemaHandler.handleRequestBody(SchemaHandler.java:90)
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:211)
org.apache.solr.core.SolrCore.execute(SolrCore.java:2596)
org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:802)
org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:579)
After a while I realized it was only deadlocked, after I used the AdminUI to view the segments info of the core.
So my question: is this line correct? If withCoreInfo is false iwRef.decref() will not be called to release the reader lock, preventing any further writer locks.
https://github.com/apache/lucene-solr/blob/3a743ea953f0ecfc35fc7b198f68d142ce99d789/solr/core/src/java/org/apache/solr/handler/admin/SegmentsInfoRequestHandler.java#L144
Regards,
Tiziano
Re: SegmentsInfoRequestHandler does not release IndexWriter
Posted by Andrzej Białecki <ab...@getopt.org>.
Hi Tiziano,
Indeed, this looks like a bug - good catch! Please file a Jira issue, I’ll get to it soon.
> On 23 Apr 2020, at 00:19, Tiziano Degaetano <ti...@conweaver.com> wrote:
>
> Hello,
>
> I’m digging in an issue getting timeouts doing a managed schema change using the schema api.
> The call hangs reloading the cores (does not recover until restarting the node):
>
> sun.misc.Unsafe.park(Native Method)
> java.util.concurrent.locks.LockSupport.parkNanos(Unknown Source)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireNanos(Unknown Source)
> java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(Unknown Source)
> java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock(Unknown Source)
> org.apache.solr.update.DefaultSolrCoreState.lock(DefaultSolrCoreState.java:179)
> org.apache.solr.update.DefaultSolrCoreState.newIndexWriter(DefaultSolrCoreState.java:230)
> org.apache.solr.core.SolrCore.reload(SolrCore.java:696)
> org.apache.solr.core.CoreContainer.reload(CoreContainer.java:1558)
> org.apache.solr.schema.SchemaManager.doOperations(SchemaManager.java:133)
> org.apache.solr.schema.SchemaManager.performOperations(SchemaManager.java:92)
> org.apache.solr.handler.SchemaHandler.handleRequestBody(SchemaHandler.java:90)
> org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:211)
> org.apache.solr.core.SolrCore.execute(SolrCore.java:2596)
> org.apache.solr.servlet.HttpSolrCall.execute(HttpSolrCall.java:802)
> org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:579)
>
> After a while I realized it was only deadlocked, after I used the AdminUI to view the segments info of the core.
>
> So my question: is this line correct? If withCoreInfo is false iwRef.decref() will not be called to release the reader lock, preventing any further writer locks.
> https://github.com/apache/lucene-solr/blob/3a743ea953f0ecfc35fc7b198f68d142ce99d789/solr/core/src/java/org/apache/solr/handler/admin/SegmentsInfoRequestHandler.java#L144
>
> Regards,
> Tiziano
>