Ill look at fixing the root issue for 4.5. I've been putting it off for way to long.
Mark Sent from my iPhone On Sep 3, 2013, at 2:15 PM, Kevin Osborn <kevin.osb...@cbsi.com> wrote: > I was having problems updating SolrCloud with a large batch of records. The > records are coming in bursts with lulls between updates. > > At first, I just tried large updates of 100,000 records at a time. > Eventually, this caused Solr to hang. When hung, I can still query Solr. > But I cannot do any deletes or other updates to the index. > > At first, my updates were going as SolrJ CSV posts. I have also tried local > file updates and had similar results. I finally slowed things down to just > use SolrJ's Update feature, which is basically just JavaBin. I am also > sending over just 100 at a time in 10 threads. Again, it eventually hung. > > Sometimes, Solr hangs in the first couple of chunks. Other times, it hangs > right away. > > These are my commit settings: > > <autoCommit> > <maxTime>15000</maxTime> > <maxDocs>5000</maxDocs> > <openSearcher>false</openSearcher> > </autoCommit> > <autoSoftCommit> > <maxTime>30000</maxTime> > </autoSoftCommit> > > I have tried quite a few variations with the same results. I also tried > various JVM settings with the same results. The only variable seems to be > that reducing the cluster size from 2 to 1 is the only thing that helps. > > I also did a jstack trace. I did not see any explicit deadlocks, but I did > see quite a few threads in WAITING or TIMED_WAITING. It is typically > something like this: > > java.lang.Thread.State: WAITING (parking) > at sun.misc.Unsafe.park(Native Method) > - parking to wait for <0x000000074039a450> (a > java.util.concurrent.Semaphore$NonfairSync) > at java.util.concurrent.locks.LockSupport.park(LockSupport.java:186) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:834) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireSharedInterruptibly(AbstractQueuedSynchronizer.java:994) > at > java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireSharedInterruptibly(AbstractQueuedSynchronizer.java:1303) > at java.util.concurrent.Semaphore.acquire(Semaphore.java:317) > at > org.apache.solr.util.AdjustableSemaphore.acquire(AdjustableSemaphore.java:61) > at > org.apache.solr.update.SolrCmdDistributor.submit(SolrCmdDistributor.java:418) > at > org.apache.solr.update.SolrCmdDistributor.submit(SolrCmdDistributor.java:368) > at > org.apache.solr.update.SolrCmdDistributor.flushAdds(SolrCmdDistributor.java:300) > at > org.apache.solr.update.SolrCmdDistributor.distribAdd(SolrCmdDistributor.java:139) > at > org.apache.solr.update.processor.DistributedUpdateProcessor.processAdd(DistributedUpdateProcessor.java:474) > at > org.apache.solr.handler.loader.CSVLoaderBase.doAdd(CSVLoaderBase.java:395) > at > org.apache.solr.handler.loader.SingleThreadedCSVLoader.addDoc(CSVLoader.java:44) > at > org.apache.solr.handler.loader.CSVLoaderBase.load(CSVLoaderBase.java:364) > at org.apache.solr.handler.loader.CSVLoader.load(CSVLoader.java:31) > at > org.apache.solr.handler.UpdateRequestHandler$1.load(UpdateRequestHandler.java:92) > at > org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody(ContentStreamHandlerBase.java:74) > at > org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:135) > at org.apache.solr.core.SolrCore.execute(SolrCore.java:1904) > at > org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:659) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:362) > at > org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:158) > at > org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1419) > at > org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:455) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137) > at > org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:533) > at > org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231) > at > org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1075) > at > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:384) > at > org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193) > at > org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1009) > at > org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135) > at > org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:255) > at > org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:154) > > It basically appears that Solr gets stuck while trying to acquire a > semaphore that never becomes available. > > Anyone have any ideas? This is definitely causing major problems for us. > > -- > *KEVIN OSBORN* > LEAD SOFTWARE ENGINEER > CNET Content Solutions > OFFICE 949.399.8714 > CELL 949.310.4677 SKYPE osbornk > 5 Park Plaza, Suite 600, Irvine, CA 92614 > [image: CNET Content Solutions]