Here is the core reload thread:
"qtp2106165633-6831" #6831 prio=5 os_prio=0 cpu=36242.03ms
elapsed=21018.66s tid=0x0000785178051440 nid=0x1e64 in Object.wait()
[0x0000784640aab000]
java.lang.Thread.State: WAITING (on object monitor)
at java.lang.Object.wait([email protected]/Native Method)
- waiting on <no object reference available>
at java.lang.Object.wait([email protected]/Unknown Source)
at org.apache.solr.core.SolrCore.getSearcher(SolrCore.java:2503)
- locked <0x0000000477133fa8> (a java.lang.Object)
at org.apache.solr.core.SolrCore.initSearcher(SolrCore.java:1262)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:1147)
at org.apache.solr.core.SolrCore.reload(SolrCore.java:780)
- locked <0x0000000458b06298> (a java.lang.Object)
at org.apache.solr.core.CoreContainer.reload
(CoreContainer.java:1885)
at org.apache.solr.core.CoreContainer.reload
(CoreContainer.java:1853)
at
org.apache.solr.handler.admin.CoreAdminOperation.lambda$static$2(CoreAdminOperation.java:137)
at
org.apache.solr.handler.admin.CoreAdminOperation$$Lambda$394/0x00007851e8422fa0.execute(Unknown
Source)
at
org.apache.solr.handler.admin.CoreAdminOperation.execute(CoreAdminOperation.java:410)
at
org.apache.solr.handler.admin.CoreAdminHandler$CallInfo.call(CoreAdminHandler.java:452)
at
org.apache.solr.handler.admin.CoreAdminHandler.handleRequestBody(CoreAdminHandler.java:235)
at
org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:224)
at
org.apache.solr.servlet.HttpSolrCall.handleAdmin(HttpSolrCall.java:941)
at
org.apache.solr.servlet.HttpSolrCall.handleAdminRequest(HttpSolrCall.java:893)
at org.apache.solr.servlet.HttpSolrCall.call(HttpSolrCall.java:584)
at
org.apache.solr.servlet.SolrDispatchFilter.dispatch(SolrDispatchFilter.java:250)
at
org.apache.solr.servlet.SolrDispatchFilter.lambda$doFilter$0(SolrDispatchFilter.java:218)
at
org.apache.solr.servlet.SolrDispatchFilter$$Lambda$553/0x00007851e849fae8.run(Unknown
Source)
at
org.apache.solr.servlet.ServletUtils.traceHttpRequestExecution2(ServletUtils.java:257)
at
org.apache.solr.servlet.ServletUtils.rateLimitRequest(ServletUtils.java:227)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:213)
at
org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:195)
at
org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:201)
at
org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1626)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:552)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at
org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:600)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1440)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at
org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:505)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1355)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at
org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:191)
at
org.eclipse.jetty.server.handler.InetAccessHandler.handle(InetAccessHandler.java:177)
at
org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at
org.eclipse.jetty.rewrite.handler.RewriteHandler.handle(RewriteHandler.java:322)
at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:772)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at
org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:487)
at
org.eclipse.jetty.server.HttpChannel$$Lambda$552/0x00007851e8493888.dispatch(Unknown
Source)
at
org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:732)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:479)
at org.eclipse.jetty.server.HttpChannel.run(HttpChannel.java:439)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
And here is the IndexFetcher:
"indexFetcher-2440-thread-1" #6788 prio=5 os_prio=0 cpu=63439.86ms
elapsed=25260.20s tid=0x00007851442d0c50 nid=0x1e39 waiting on condition
[0x000078508e54e000]
java.lang.Thread.State: TIMED_WAITING (parking)
at jdk.internal.misc.Unsafe.park([email protected]/Native Method)
- parking to wait for <0x0000000458b063d8> (a
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
at
java.util.concurrent.locks.LockSupport.parkNanos([email protected]/Unknown
Source)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire([email protected]/Unknown
Source)
at
java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos([email protected]/Unknown
Source)
at
java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock([email protected]/Unknown
Source)
at
org.apache.solr.update.DefaultSolrCoreState.lock(DefaultSolrCoreState.java:175)
at
org.apache.solr.update.DefaultSolrCoreState.closeIndexWriter(DefaultSolrCoreState.java:237)
at org.apache.solr.handler.IndexFetcher.fetchLatestIndex(
IndexFetcher.java:679)
at org.apache.solr.handler.IndexFetcher.fetchLatestIndex(
IndexFetcher.java:423)
at
org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:484)
at
org.apache.solr.handler.ReplicationHandler.lambda$setupPolling$13(ReplicationHandler.java:1307)
at
org.apache.solr.handler.ReplicationHandler$$Lambda$735/0x00007851e861cac8.run(Unknown
Source)
at
java.util.concurrent.Executors$RunnableAdapter.call([email protected]/Unknown
Source)
at java.util.concurrent.FutureTask.runAndReset([email protected]/Unknown
Source)
at
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run([email protected]/Unknown
Source)
at
java.util.concurrent.ThreadPoolExecutor.runWorker([email protected]/Unknown
Source)
at
java.util.concurrent.ThreadPoolExecutor$Worker.run([email protected]/Unknown
Source)
Joel Bernstein
http://joelsolr.blogspot.com/
On Fri, May 24, 2024 at 4:41 PM Joel Bernstein <[email protected]> wrote:
> I'll create a jira for this shortly but wanted to mention this on the dev
> list. We've run into a deadlock which occurs when a core reload occurs at
> the same time the IndexFetcher is running. The effect of this is that
> replication stops until Solr is restarted. There is a work around which is
> to disable polling before reloading the core but ideally we'd get this
> deadlock fixed.
>