Вызвано: org.apache.solr.common.SolrException: индекс заблокирован для записи для ядра - программирование
Подтвердить что ты не робот

Вызвано: 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
4b9b3361

Ответ 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.