web-dev-qa-db-fra.com

Causée par: org.Apache.solr.common.SolrException: index verrouillé pour l'écriture de base

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
18
Cool Techie

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 ]

15
Jayendra

Supprimez le fichier write.lock dans le dossier /data/index/ de votre cœur, puis redémarrez Tomcat. Ça va marcher.

20
Hieu Le

Si vous utilisez Rails, 

il suffit d'ajouter dans solr.xml cette ligne 

<lockType>simple</lockType>

ça marche pour moi)

0
Evseev Vadim

Essayez d'utiliser: container.shutdown () après l'indexation, cela fonctionne si vous souhaitez mettre à jour/rechercher à nouveau sans supprimer le fichier "write.lock".

0
progM

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.

0