与SOLR服务器的常规错误500

在最近几周,我们客户的SOLR服务器系统经常出现相同的错误,这个错误越来越频繁。 现在几乎是每天。 在客户端,SOLR 3.6将这个exception抛出到PHP客户端:

java.lang.RuntimeException: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/var/solr/data/spellchecker/write.lock at org.apache.solr.spelling.IndexBasedSpellChecker.build(IndexBasedSpellChecker.java:92) at org.apache.solr.handler.component.SpellCheckComponent.prepare(SpellCheckComponent.java:109) at org.apache.solr.handler.component.SearchHandler.handleRequestBody(SearchHandler.java:165) at org.apache.solr.handler.RequestHandlerBase.handleRequest(RequestHandlerBase.java:129) at org.apache.solr.core.SolrCore.execute(SolrCore.java:1376) at org.apache.solr.servlet.SolrDispatchFilter.execute(SolrDispatchFilter.java:365) at org.apache.solr.servlet.SolrDispatchFilter.doFilter(SolrDispatchFilter.java:260) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489) at java.lang.Thread.run(Thread.java:679) Caused by: org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: NativeFSLock@/var/solr/data/spellchecker/write.lock at org.apache.lucene.store.Lock.obtain(Lock.java:84) at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1098) at org.apache.lucene.search.spell.SpellChecker.clearIndex(SpellChecker.java:535) at org.apache.solr.spelling.IndexBasedSpellChecker.build(IndexBasedSpellChecker.java:88) ... 18 more 

这只能解决重启Servlet-Container(Tomcat 6)。 但是,通过curl与SOLR交谈并不会造成麻烦。 只有PHP客户端持续抛出这个错误。 而据我们所知,我们甚至根本不碰任何SOLR的spellchecker模块。 当没有索引发生时,崩溃似乎发生。

我试图通过增加内存量和WriteLockTimeout 20秒来解决这个问题,但问题依然存在。

任何人都可以帮助提示什么是问题?

事实certificate这是一个内存问题。 当安装了tomcat时,有人留下JVM 128M的最大堆大小,导致JVM停止分配任何内存。 而不是正确的OutOfMemoryException ,我们得到了这些神秘的消息。

如果您完全不接触拼写检查模块,您是否可以从您的configuration中取消该部分的注释并重新启动服务?

我认为你得到了多个“&spellcheck.build = true”的请求(所以它正在尝试重build,而它已经build立,因此锁) – 如果你logging所有你的solr请求的地方检查,看看是否可以阻止他们?