Question
Je vois l'erreur suivante lors d'une recherche à l'aide de Lucene. (version 1.4.3). Avez-vous des idées sur les raisons pour lesquelles je pourrais voir cela et comment le réparer?
Caused by: java.io.IOException: read past EOF
at org.apache.lucene.store.InputStream.refill(InputStream.java:154)
at org.apache.lucene.store.InputStream.readByte(InputStream.java:43)
at org.apache.lucene.store.InputStream.readVInt(InputStream.java:83)
at org.apache.lucene.index.FieldInfos.read(FieldInfos.java:195)
at org.apache.lucene.index.FieldInfos.<init>(FieldInfos.java:55)
at org.apache.lucene.index.SegmentReader.initialize(SegmentReader.java:109)
at org.apache.lucene.index.SegmentReader.<init>(SegmentReader.java:89)
at org.apache.lucene.index.IndexReader$1.doBody(IndexReader.java:118)
at org.apache.lucene.store.Lock$With.run(Lock.java:109)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:111)
at org.apache.lucene.index.IndexReader.open(IndexReader.java:106)
at org.apache.lucene.search.IndexSearcher.<init>(IndexSearcher.java:43)
Dans ce même environnement, l'erreur suivante apparaît également:
Caused by: java.io.IOException: Lock obtain timed out:
Lock@/tmp/lucene-3ec31395c8e06a56e2939f1fdda16c67-write.lock
at org.apache.lucene.store.Lock.obtain(Lock.java:58)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:223)
at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:213)
Le même code fonctionne dans un environnement de test, mais pas en production. Impossible d'identifier les différences évidentes entre les deux environnements.
La solution
Les autorisations sur les fichiers sont incorrectes (il faut une autorisation en écriture) ou vous ne pouvez pas accéder à un fichier verrouillé dont le processus actuel a besoin.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow