Perhaps related is http://www.lucidimagination.com/search/document/6d0e168c82c86a38#45c945b2de6543f4
On Apr 23, 2012, at 5:37 AM, Trym R. Møller wrote: > Hi > > I have succeeded in reproducing the scenario with two Solr instances running. > They cover a single collection with two slices and two replica, two cores in > each Solr instance. I have changed the number of threads that Jetty is > allowed to use as follows: > <New class="org.mortbay.thread.QueuedThreadPool"> > <Set name="minThreads">3</Set> > <Set name="maxThreads">3</Set> > <Set name="lowThreads">0</Set> > </New> > And when indexing a single document this works fine but when concurrently > indexing 10 documents, Solr frequently hangs. > I know that Jetty per default are allowed to use 10.000 threads, but in my > other setup, all these 10.000 allowed thread are used on a single Solr > instance (I have 7 Solr instances) after some days and the hanging scenario > occurs. > > I'm not sure if just adjusting the allowed number of threads are the best > solution and would like to get some input as what to expect and if there are > other things I can adjust. > My setup is as written before 7 Solr instances handling a single collection > with 28 leaders and 28 replicas distributed fairly on the Solrs (8 cores on > each Solr). > > Thanks for any input. > > Best regards Trym > > > Den 19-04-2012 14:36, Yonik Seeley skrev: >> On Thu, Apr 19, 2012 at 4:25 AM, "Trym R. Møller"<t...@sigmat.dk> wrote: >>> Hi >>> >>> I am using Solr trunk and have 7 Solr instances running with 28 leaders and >>> 28 replicas for a single collection. >>> After indexing a while (a couple of days) the solrs start hanging and doing >>> a thread dump on the jvm I see blocked threads like the following: >>> Thread 2369: (state = BLOCKED) >>> - sun.misc.Unsafe.park(boolean, long) @bci=0 (Compiled frame; >>> information may be imprecise) >>> - java.util.concurrent.locks.LockSupport.park(java.lang.Object) @bci=14, >>> line=158 (Compiled frame) >>> - >>> java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await() >>> @bci=42, line=1987 (Compiled frame) >>> - java.util.concurrent.LinkedBlockingQueue.take() @bci=29, line=399 >>> (Compiled frame) >>> - java.util.concurrent.ExecutorCompletionService.take() @bci=4, line=164 >>> (Compiled frame) >>> - org.apache.solr.update.SolrCmdDistributor.checkResponses(boolean) >>> @bci=27, line=350 (Compiled frame) >>> - org.apache.solr.update.SolrCmdDistributor.finish() @bci=18, line=98 >>> (Compiled frame) >>> - org.apache.solr.update.processor.DistributedUpdateProcessor.doFinish() >>> @bci=4, line=299 (Compiled frame) >>> - org.apache.solr.update.processor.DistributedUpdateProcessor.finish() >>> @bci=1, line=817 (Compiled frame) >>> ... >>> - org.mortbay.thread.QueuedThreadPool$PoolThread.run() @bci=25, line=582 >>> (Interpreted frame) >>> >>> I read the stack trace as my indexing client has indexed a document and this >>> Solr is now waiting for the replica? to respond before returning an answer >>> to the client. >> Correct. What's the full stack trace like on both a leader and replica? >> We need to know what the replica is blocking on. >> >> What version of trunk are you using? >> >> -Yonik >> lucenerevolution.com - Lucene/Solr Open Source Search Conference. >> Boston May 7-10 - Mark Miller lucidimagination.com