On 22/09/2011 11:56, Paul Taylor wrote:
Id made just a few changes to my code to remove deprecations that ocurred when I upgraded to Lucene 3.1, all tests work fine but when I tried to build a real index it gives this error during optimization stage

Exception in thread "main" java.nio.channels.OverlappingFileLockException
at sun.nio.ch.FileChannelImpl$SharedFileLockTable.checkList(FileChannelImpl.java:1166) at sun.nio.ch.FileChannelImpl$SharedFileLockTable.add(FileChannelImpl.java:1068)
    at sun.nio.ch.FileChannelImpl.tryLock(FileChannelImpl.java:868)
    at java.nio.channels.FileChannel.tryLock(FileChannel.java:962)
at org.apache.lucene.store.NativeFSLock.obtain(NativeFSLockFactory.java:216)
    at org.apache.lucene.store.Lock.obtain(Lock.java:72)
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1097)
at org.musicbrainz.search.index.ThreadedIndexWriter.<init>(ThreadedIndexWriter.java:66) at org.musicbrainz.search.index.IndexBuilder.createIndexWriter(IndexBuilder.java:229) at org.musicbrainz.search.index.IndexBuilder.main(IndexBuilder.java:152)
Some progress with this Ive realized the problem isn't with my code changes but where the indexes are being created. I am running on a Mac with OSX10.7 Lion with a connected external format as MS-DOS FAT-32. If I build the indexes to my mac hardrive it always works, but if I write to the external harddrive fails(note this is just an externally connected drive not a network drive), the problem occurs when trying to initilize the 2nd IndexWriter, the first IndexWriter has finished building the index but hasnt closed the writer yet because it has now started optmizing the index.

I dont understand why they seem to be using the same lock because they are creating different indexes and indexing them to different subfolders.

So it seems the problem might be because Im running MacOS but using a Windows filesystem to store the indexes so instead of using FSDirectory.open() I instantiated an MMAPDirectory, but got the same error.
I then tried specifying a different lock factory

fsDir = FSDirectory.open(new File(path), new SimpleFSLockFactory() );

and now it fails in the same place but with a timeout problem

Exception in thread "main" org.apache.lucene.store.LockObtainFailedException: Lock obtain timed out: SimpleFSLock@/Volumes/DDRIVE/Shared/Musicbrainz/releasegroup_index/write.lock
    at org.apache.lucene.store.Lock.obtain(Lock.java:84)
    at org.apache.lucene.index.IndexWriter.<init>(IndexWriter.java:1112)
at org.musicbrainz.search.index.ThreadedIndexWriter.<init>(ThreadedIndexWriter.java:66) at org.musicbrainz.search.index.IndexBuilder.createIndexWriter(IndexBuilder.java:230) at org.musicbrainz.search.index.IndexBuilder.main(IndexBuilder.java:153)

Paul


---------------------------------------------------------------------
To unsubscribe, e-mail: java-user-unsubscr...@lucene.apache.org
For additional commands, e-mail: java-user-h...@lucene.apache.org

Reply via email to