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(java.base@17.0.10/Native Method) - waiting on <no object reference available> at java.lang.Object.wait(java.base@17.0.10/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(java.base@17.0.10/Native Method) - parking to wait for <0x0000000458b063d8> (a java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync) at java.util.concurrent.locks.LockSupport.parkNanos(java.base@17.0.10/Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(java.base@17.0.10/Unknown Source) at java.util.concurrent.locks.AbstractQueuedSynchronizer.tryAcquireNanos(java.base@17.0.10/Unknown Source) at java.util.concurrent.locks.ReentrantReadWriteLock$WriteLock.tryLock(java.base@17.0.10/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(java.base@17.0.10/Unknown Source) at java.util.concurrent.FutureTask.runAndReset(java.base@17.0.10/Unknown Source) at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(java.base@17.0.10/Unknown Source) at java.util.concurrent.ThreadPoolExecutor.runWorker(java.base@17.0.10/Unknown Source) at java.util.concurrent.ThreadPoolExecutor$Worker.run(java.base@17.0.10/Unknown Source) Joel Bernstein http://joelsolr.blogspot.com/ On Fri, May 24, 2024 at 4:41 PM Joel Bernstein <joels...@gmail.com> 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. >