Nous utilisons solr4.3 avec une configuration maître/esclave. Aujourd'hui, j'ai eu l'erreur suivante et Solr a cessé de répondre. Qu'est-ce qui peut causer cela,
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
Il semble que l'index ait été verrouillé lors de l'indexation.
Il y a généralement un fichier write.lock dans l'index qui doit être supprimé pour le récupérer.
Ces conditions peuvent se produire si l’indexation est interrompue ou si d’autres problèmes peuvent amener le fichier à rester verrouillé dans l’index.
Chèque Forum
Le verrouillage en écriture est dû au fait qu’Un IndexWriter est toujours ouvert à Solr même sur les esclaves.
Recherchez les options Index Lock qui peuvent gérer la situation dans la configuration.
[Une copie archivée du lien d'origine: https://web.archive.org/web/http://docs.lucidworks.com/display/solr/IndexConfig+in+SolrConfig ]
Supprimez le fichier write.lock
dans le dossier /data/index/
de votre cœur, puis redémarrez Tomcat. Ça va marcher.
Si vous utilisez Rails,
il suffit d'ajouter dans solr.xml cette ligne
<lockType>simple</lockType>
ça marche pour moi)
Essayez d'utiliser: container.shutdown () après l'indexation, cela fonctionne si vous souhaitez mettre à jour/rechercher à nouveau sans supprimer le fichier "write.lock".
Cela se produit parfois car l'utilisateur actuel n'a pas la permission dans le répertoire . Essayez d'utiliser root et utilisez -force pour démarrer solr.