Вызвано: org.apache.solr.common.SolrException: индекс заблокирован для записи для ядра
Мы используем solr4.3 с установкой master/slave, сегодня я получил следующую ошибку и solr перестала отвечать. Что может быть причиной этого,
Caused by: org.apache.solr.common.SolrException: Index locked for write for core XXX
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:821)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:618)
at org.apache.solr.core.CoreContainer.createFromLocal(CoreContainer.java:949)
at org.apache.solr.core.CoreContainer.create(CoreContainer.java:984)
at org.apache.solr.core.CoreContainer$2.call(CoreContainer.java:597)
at org.apache.solr.core.CoreContainer$2.call(CoreContainer.java:592)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:439)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
... 1 more
Caused by: org.apache.lucene.store.LockObtainFailedException: Index locked for write for core XX at org.apache.solr.core.SolrCore.initIndex(SolrCore.java:484)
at org.apache.solr.core.SolrCore.<init>(SolrCore.java:745)
... 13 more
Ответы
Ответ 1
Кажется, что индекс был заблокирован во время индексации.
Обычно в индексе должен быть файл write.lock, который нужно удалить, чтобы вернуть его.
Условия могут возникать, если индексирование прерывается между или другими проблемами, которые могут привести к блокировке файла, который будет оставаться в индексе.
Отметьте Форум
Блокировка записи связана с тем, что IndexWriter всегда открыт в Solr даже на подчиненных.
Проверьте параметры Index Lock, которые могут обрабатывать условие в конфигурации.
[Архивированная копия исходной ссылки:
https://web.archive.org/web/http://docs.lucidworks.com/display/solr/IndexConfig+in+SolrConfig]
Ответ 2
Удалите файл write.lock
в папке /data/index/
для вашего ядра, а затем перезапустите tomcat. Он будет работать.
Ответ 3
Если вы используете Rails,
просто добавьте в solr.xml эту строку
<lockType>simple</lockType>
его работы для меня)
Ответ 4
В некоторых случаях это происходит потому, что текущий пользователь не имеет разрешения в каталоге.
Попробуйте использовать root и используя -force для запуска solr.