It was a little comforting to know that other people have seen Windows Explorer refreshes crash java Lucene on Windows. We seem to be running into a long list of file system issues with Lucene, and I was wondering if other people had noticed these sort of things (and hopefully any tips and tricks for working around them).
Sorry you're having so many troubles. Keep these emails, questions & issues coming because this is how we [gradually] fix Lucene to be more robust! OK a few quick possibilities / suggestions: * Make sure in your Indexer.java that when you delete docs, you close any open IndexWriter's before you try to call deleteDocuments from your IndexReader. Only one writer (IndexWriter adding docs or IndexReader deleting docs) can be open at once and if you fail to do this you'll get exactly that "lock obtain timed out" error. You could also use IndexModifier which under the hood is doing this open-close logic for you. But: try to buffer up adds and deletes together if possible to minimize cost of open/closes. * That one file really seems to have an open file handle on it. Are you sure you called close on all IndexReaders (IndexSearchers)? That file is a "compound file format" segment, and IndexReaders hold an open file handle to these files (IndexWriters do as well, but they quickly close the file handles after writing to them). * There was a thread recently, similar to this issue, where File.renameTo was failing, and there was a suggestion that this is a bug in some JVMs and to get the JVM to GC (System.gc()) to see if that then closes the underlying file. * IndexSearcher.close() will only close the underlying IndexReader if you created it with a String. If you create it with just an IndexReader it will not close that reader. You have to separately call IndexReader.close to close the reader. * If the JVM exited un-gracefully then the lock files will be left on disk and Lucene will incorrectly think the lock is held by another process (and then hit that "lock obtain timed out" error). You can just remove the lock files (from c:\windows\temp\...) if you are certain no Lucene processes are running. We are working towards using native locks in Lucene (for a future release) so that even un-graceful exits of the JVM will properly free the lock. * Perhaps, change your "build a new index" logic so that it does so in an entirely fresh directory? Just to avoid any hazards at all of anything holding files open in the old directory ... Mike --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]