Hello,
On Rebuilding Lucene Indexes, a new directory is created and connections to old
directories are closed. But, when logic to delete old directories is called ->
it fails with Exception:
Caused by: java.nio.file.AccessDeniedException:
C:\example-1\example-2\index\example-3-1\example-4\index_folder__202512161121\_0.fdt
at
java.base/sun.nio.fs.WindowsException.translateToIOException(WindowsException.java:89)
at
java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:103)
at
java.base/sun.nio.fs.WindowsException.rethrowAsIOException(WindowsException.java:108)
at
java.base/sun.nio.fs.WindowsFileSystemProvider.implDelete(WindowsFileSystemProvider.java:273)
at
java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:109)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at
org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:158)
at
org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:37)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2786)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2857)
at org.apache.commons.io.file.PathUtils.visitFileTree(PathUtils.java:1845)
at
org.apache.commons.io.file.PathUtils.deleteDirectory(PathUtils.java:597)
at org.apache.commons.io.file.PathUtils.delete(PathUtils.java:556)
at org.apache.commons.io.FileUtils.forceDelete(FileUtils.java:1421)
This is what I have tried so far :
Tried following things to delete old directory after rebuilding:
1.
Observed reference of searcher manager in heap dump, so made changes to remove
searcher in {package}.{class}#setIndexDirectoryAndWriterTuple, but after
changes directories were not deleted. Observed heap dump after removing
searcher manager reference, in heap dump reference was removed but directory
was not deleted.
2.
Tried refresh and release searcher.
3.
Added retries to delete directories in com.{package}.FileUtils#deleteFolder. It
never works consistently or on a consistent time frame. The period can vary
from 20-50 minutes when it works or never working even after 2-3 hours.
4.
Closed index writer just before deleting directory in
{package}.LuceneDirectoryDeleter#deleteDirectory(org.apache.lucene.store.FSDirectory).(Directories
for 1-2 indexes were deleted but not for others).
5.
Tried deleting old directory with unit test and directory was deleted
successfully and issue was not reproducible through unit test.
6.
Tried obtainLock() method of Lock class in lucene store to identify if any lock
is already obtained on the directory but lock is successfully obtained without
any exception.
Can you help with this ?
Thanks,
Parth.
Get Outlook for Mac <https://aka.ms/GetOutlookForMac>