Is it possible you accidentally allow two writers to try to open the
index?
That would explain this failure; the 2nd writer would fail to acquire
the lock, because the first writer has the index open.
Or, is it possible you're not closing a previously opened writer?
Mike
Ketan Deshpande wrote:
Hi,
I am fairly new to Lucene, so forgive my elaborate explanation. We
were facing frequent issues with Lucene 1.2 (Unreleased write.lock()
files). To overcome the same, we have recently upgraded to Lucene
2.3.2 - however, we observed the following LockObtainFailedException
exception during our testing -
2009-02-26 15:34:35,525 DEBUG
[com.eu.prnewswire.search.document.WDPIndexDocument] Document() called
2009-02-26 15:34:35,529 DEBUG
[com.eu.prnewswire.search.document.WDPIndexDocument] adding
associated type
2009-02-26 15:34:35,529 DEBUG
[com.eu.prnewswire.search.document.WDPIndexDocument] added
2009-02-26 15:34:36,535 ERROR [STDERR]
org.apache.lucene.store.LockObtainFailedException: Lock obtain timed
out:
SimpleFSLock@/jboss/jboss-4.0.5.GA/spool/lucene/search1/index/
PRNJ_2009_02/write.lock
2009-02-26 15:34:36,536 ERROR [STDERR] at
org.apache.lucene.store.Lock.obtain(Lock.java:85)
2009-02-26 15:34:36,536 ERROR [STDERR] at
org.apache.lucene.index.IndexWriter.init(IndexWriter.java:692)
2009-02-26 15:34:36,536 ERROR [STDERR] at
org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:503)
2009-02-26 15:34:36,536 ERROR [STDERR] at
com
.eu.prnewswire.search.index.LuceneIndex.addDocument(LuceneIndex.java:
124)
2009-02-26 15:34:36,536 ERROR [STDERR] at
com
.eu
.prnewswire
.search
.indexer
.prnjindexer.PRNJIndexerEJB.addToLuceneIndex(PRNJIndexerEJB.java:193)
2009-02-26 15:34:36,536 ERROR [STDERR] at
com
.eu
.prnewswire
.search
.indexer
.prnjindexer.PRNJIndexerEJB.indexDocument(PRNJIndexerEJB.java:121)
2009-02-26 15:34:36,536 ERROR [STDERR] at
sun.reflect.GeneratedMethodAccessor106.invoke(Unknown Source)
2009-02-26 15:34:36,536 ERROR [STDERR] at
sun
.reflect
.DelegatingMethodAccessorImpl
.invoke(DelegatingMethodAccessorImpl.java:25)
2009-02-26 15:34:36,536 ERROR [STDERR] at
java.lang.reflect.Method.invoke(Method.java:324)
2009-02-26 15:34:36,536 ERROR [STDERR] at
org.jboss.invocation.Invocation.performCall(Invocation.java:359)
From the stack trace, we can trace back the exception to the
following code in the IndexWriter class (while trying to acquire a
lock):
Lock writeLock = directory.makeLock(IndexWriter.WRITE_LOCK_NAME);
if (!writeLock.obtain(writeLockTimeout)) // obtain write lock
throw new LockObtainFailedException("Index locked for write: " +
writeLock);
We have seen this issue only once till now and the files did not
index until we deleted the lock file manually. (When I checked for
existing issues, Lucene-715 came closest, but it has been resolved
in 2.1 version) I am afraid this may crop up sometime again. Any
inputs on how to resolve the the error would be appreciated. If any
more details are required, I would be happy to share the same.
Thanks,
Ketan
Bollywood news, movie reviews, film trailers and more! Click here.
---------------------------------------------------------------------
To unsubscribe, e-mail: java-dev-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-dev-h...@lucene.apache.org