SolrException: внутренняя ошибка сервера - PullRequest
10 голосов
/ 24 мая 2010

Я работаю над Solr в моем приложении. Я использую apache-solr-solrj-1.4.0.jar .

Когда я пытаюсь позвонить add(SolrInputDocument doc) из CommonsHttpSolrServer, я получаю следующее исключение:

org.apache.solr.common.SolrException: внутренняя ошибка сервера Внутренняя ошибка сервера в org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request (CommonsHttpSolrServer.java:424) в org.apache.solr.client.solrj.impl.CommonsHttpSolrServer.request (CommonsHttpSolrServer.java:243) в org.apache.solr.client.solrj.request.AbstractUpdateRequest.process (AbstractUpdateRequest.java:105) в org.apache.solr.client.solrj.SolrServer.add (SolrServer.java:64)

Может кто-нибудь помочь мне решить эту проблему?

Ниже перечислены атрибуты в solrconfig.xml :

<lockType>native</lockType>
<unlockOnStartup>false</unlockOnStartup>
<reopenReaders>true</reopenReaders>

Я получаю следующее исключение в журналах сервера solr:

24 мая 2010 г. 2:51:22 org.apache.solr.common.SolrException log SEVERE: java.lang.NullPointerException в org.apache.solr.handler.ReplicationHandler $ 4.postCommit (ReplicationHandler.java:922) в org.apache.solr.update.UpdateHandler.callPostCommitCallbacks (UpdateHandler.java:78) в org.apache.solr.update.DirectUpdateHandler2.commit (DirectUpdateHandler2.java:411) в org.apache.solr.update.processor.RunUpdateProcessor.processCommit (RunUpdateProcessorFactory.java:85) в org.apache.solr.handler.RequestHandlerUtils.handleCommit (RequestHandlerUtils.java:107) в org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody (ContentStreamHandlerBase.java:48) в org.apache.solr.handler.RequestHandlerBase.handleRequest (RequestHandlerBase.java:131) в org.apache.solr.core.SolrCore.execute (SolrCore.java:1316) в org.apache.solr.servlet.SolrDispatchFilter.execute (SolrDispatchFilter.java:338) в org.apache.solr.servlet.SolrDispatchFilter.doFilter (SolrDispatchFilter.java:241) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) в org.apache.catalina.ha.session.JvmRouteBinderValve.invoke (JvmRouteBinderValve.java:210) в org.apache.catalina.ha.tcp.ReplicationValve.invoke (ReplicationValve.java:347) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:293) в org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java:190) в org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:291) на org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:769) на org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:698) в org.apache.jk.common.ChannelSocket $ SocketConnection.runIt (ChannelSocket.java:891) в org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:690) at java.lang.Thread.run (Thread.java:619)


ИНФОРМАЦИЯ: {} 0 1039 24 мая 2010 г. 2:52:29 org.apache.solr.common.SolrException log SEVERE: org.apache.lucene.store.LockObtainFailedException: время ожидания получения блокировки: NativeFSLock @. / Solr / data / index / lucene-be18de26b941317e71dc59f9e5ba63c4-write.lock в org.apache.lucene.store.Lock.obtain (Lock.java:85)в org.apache.lucene.index.IndexWriter.init (IndexWriter.java:1545) в org.apache.lucene.index.IndexWriter. (IndexWriter.java:1402) в org.apache.solr.update.SolrIndexWriter. (SolrIndexWriter.java:190) в org.apache.solr.update.UpdateHandler.createMainIndexWriter (UpdateHandler.java:98) в org.apache.solr.update.DirectUpdateHandler2.openWriter (DirectUpdateHandler2.java:173) в org.apache.solr.update.DirectUpdateHandler2.addDoc (DirectUpdateHandler2.java:220) в org.apache.solr.update.processor.RunUpdateProcessor.processAdd (RunUpdateProcessorFactory.java:61) в org.apache.solr.handler.XMLLoader.processUpdate (XMLLoader.java:139) в org.apache.solr.handler.XMLLoader.load (XMLLoader.java:69) в org.apache.solr.handler.ContentStreamHandlerBase.handleRequestBody (ContentStreamHandlerBase.java:54) в org.apache.solr.handler.RequestHandlerBase.handleRequest (RequestHandlerBase.java:131) в org.apache.solr.core.SolrCore.execute (SolrCore.java:1316) в org.apache.solr.servlet.SolrDispatchFilter.execute (SolrDispatchFilter.java:338) в org.apache.solr.servlet.SolrDispatchFilter.doFilter (SolrDispatchFilter.java:241) в org.apache.catalina.core.ApplicationFilterChain.internalDoFilter (ApplicationFilterChain.java:235) в org.apache.catalina.core.ApplicationFilterChain.doFilter (ApplicationFilterChain.java:206) в org.apache.catalina.core.StandardWrapperValve.invoke (StandardWrapperValve.java:233) в org.apache.catalina.core.StandardContextValve.invoke (StandardContextValve.java:191) в org.apache.catalina.core.StandardHostValve.invoke (StandardHostValve.java:128) в org.apache.catalina.valves.ErrorReportValve.invoke (ErrorReportValve.java:102) в org.apache.catalina.core.StandardEngineValve.invoke (StandardEngineValve.java:109) в org.apache.catalina.ha.session.JvmRouteBinderValve.invoke (JvmRouteBinderValve.java:210) в org.apache.catalina.ha.tcp.ReplicationValve.invoke (ReplicationValve.java:347) в org.apache.catalina.connector.CoyoteAdapter.service (CoyoteAdapter.java:293) в org.apache.jk.server.JkCoyoteHandler.invoke (JkCoyoteHandler.java:190) в org.apache.jk.common.HandlerRequest.invoke (HandlerRequest.java:291) на org.apache.jk.common.ChannelSocket.invoke (ChannelSocket.java:769) на org.apache.jk.common.ChannelSocket.processConnection (ChannelSocket.java:698) в org.apache.jk.common.ChannelSocket $ SocketConnection.runIt (ChannelSocket.java:891) в org.apache.tomcat.util.threads.ThreadPool $ ControlRunnable.run (ThreadPool.java:690) at java.lang.Thread.run (Thread.java:619)

Ответы [ 5 ]

5 голосов
/ 21 июня 2010

Я установил следующее в моем solrconfig.xml, и оно работает.

<lockType>simple</lockType>
<unlockOnStartup>true</unlockOnStartup>

Кроме того, установите следующее, чтобы избежать исключений блокировки записи в каталоге индекса:

<maxFieldLength>10000</maxFieldLength>
<writeLockTimeout>60000</writeLockTimeout>
<commitLockTimeout>60000</commitLockTimeout>
1 голос
/ 14 июня 2010

Я очень не уверен, но в этой теме

http://www.mail-archive.com/solr-user@lucene.apache.org/msg08048.html

они рекомендуют использовать

<unlockOnStartup>true</unlockOnStartup>

и

<lockType>simple</lockType>

Я думаю, что это должно быть безопасно, если вы обращаетесь к индексу через solr или solrj (не lucene!).

Есть еще идеи?

0 голосов
/ 22 апреля 2014

Это происходит из-за невозможности удалить файл write.lock после некоторых действий по обновлению.Удаление файла write.lock в папке данных / индекса ядра временно решит эту проблему и восстановит действие обновления.Я знаю, что использование post.jar для обновления имеет больше проблем, чтобы вызвать эту проблему, в то время как URL с stream.body редко вызывают эту проблему.Ответ Каруссела действительно улучшил ситуацию, но, похоже, не решил ее вообще.Я сомневаюсь, что это происходит от какой-то проблемы дизайна Solr.Надеюсь, Solr 4 решил эту проблему.Также можно сослаться на ответ в этом вопросе: как решить-заблокировать-получить-истекло-при использовании-solr -lyly

0 голосов
/ 15 ноября 2010

Звучит как поврежденный индекс или занятый файл блокировки ... У меня было что-то похожее, и перезапуск работал, как ни странно.

0 голосов
/ 24 мая 2010

Клиент SolrJ не выдает фактическую ошибку.Попробуйте просмотреть журналы сервера solr, которые должны находиться под tomcat или jetty (или любым другим, где работает solr).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...