I know I've written about this in the past, but this problem comes up fairly frequently for us and has happened in different servers and environments. So it's definitely not a networking or hardware issue. We basically get errors like this below:
Code:
2010-06-04 18:28:31,400 ERROR [pool-1-thread-1] FSMasterDirectoryProvider - Unable to synchronize source of /index_base/com.example.Person
java.io.FileNotFoundException: indexes/com.example.Person/_b9z.fdt (No such file or directory)
at java.io.FileInputStream.open(Native Method)
at java.io.FileInputStream.<init>(FileInputStream.java:106)
at org.hibernate.search.util.FileHelper.copyFile(FileHelper.java:157)
at org.hibernate.search.util.FileHelper.synchronize(FileHelper.java:148)
at org.hibernate.search.util.FileHelper.synchronize(FileHelper.java:132)
at org.hibernate.search.store.FSMasterDirectoryProvider$CopyDirectory.run(FSMasterDirectoryProvider.java:225)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:619)
The index filename changes with each error, but it's essentially the same problem that comes up. I can't tell if it's actually affecting our search operations...
When I previously posted about this, one of the Hibernate Search developers responded that it must be some kind of networking or hardware issue for us. It isn't, but odd that this isn't a known problem. We're using Hibernate Search v3.2. It seems to me that the copy operation from the base index directory to the source index directory is simply happening at the same time as Lucene is changing filenames and files. So this will naturally occur periodically with any high volume indexing. Are others experiencing this problem too? Is this another more serious problem? Does Hibernate Search recover from this properly?