Hello,
I was wondering if anyone is using Solr 9.x in User-Managed mode? We are
running into an issue where follower nodes cannot delete old indexes with the
following error:
11/28/2025, 6:02:45 PM
ERROR true
CachingDirectoryFactory
Error removing directory E:\solr\server\solr\ln\data\index.20251128190424865
before core close
java.nio.file.AccessDeniedException:
E:\solr\server\solr\ln\data\index.20251128190424865\_341g.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:275)
at
java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at
org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:159)
at
org.apache.commons.io.file.DeletingPathVisitor.visitFile(DeletingPathVisitor.java:37)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2811)
at java.base/java.nio.file.Files.walkFileTree(Files.java:2882)
at
org.apache.commons.io.file.PathUtils.visitFileTree(PathUtils.java:1653)
at
org.apache.commons.io.file.PathUtils.lambda$deleteDirectory$0(PathUtils.java:502)
at
org.apache.commons.io.file.PathUtils.withPosixFileAttributes(PathUtils.java:1777)
at
org.apache.commons.io.file.PathUtils.deleteDirectory(PathUtils.java:501)
at
org.apache.commons.io.file.PathUtils.deleteDirectory(PathUtils.java:486)
at
org.apache.solr.core.StandardDirectoryFactory.removeDirectory(StandardDirectoryFactory.java:92)
at
org.apache.solr.core.CachingDirectoryFactory.closeCacheValue(CachingDirectoryFactory.java:269)
at
org.apache.solr.core.CachingDirectoryFactory.release(CachingDirectoryFactory.java:507)
at
org.apache.solr.handler.IndexFetcher.cleanup(IndexFetcher.java:865)
at
org.apache.solr.handler.IndexFetcher.fetchLatestIndex(IndexFetcher.java:803)
at
org.apache.solr.handler.IndexFetcher.fetchLatestIndex(IndexFetcher.java:422)
at
org.apache.solr.handler.ReplicationHandler.doFetch(ReplicationHandler.java:467)
at
org.apache.solr.handler.ReplicationHandler.lambda$setupPolling$13(ReplicationHandler.java:1229)
at
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539)
at
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:305)
at
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
at
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1136)
at
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:635)
at java.base/java.lang.Thread.run(Thread.java:833)
We are using Solr 9.7.0 in User-Managed Mode with one node acting as Leader
(write only) where we perform indexing and two nodes as followers (read only)
which replicates from Leader. We run deltas through the day to keep the core on
Leader updated but we run a full indexing job overnight which will index in a
"cold" core on the Leader and once the indexing is finished on the cold core,
we use
SWAP<https://solr.apache.org/guide/solr/latest/configuration-guide/coreadmin-api.html#swap-parameters>
to switch the hot and cold cores. We don't see any issue in the Leader node
but follower nodes keeps the copy of the previous indexes (deletion failing
with above error) and thus filling the disk space. If we reload the core on the
follower node or restart solr service, the space frees up and old index files
get deleted.
We tried playing around with the "deletionPolicy" in solrconfig.xml but it did
not help. We had SOLR 7 running before and did not see this issue there. Has
anyone else ran into this issue before or can give us any recommendations?
We have also tried updating to Solr 9.9 but still seeing the same error.
Thanks,
Varun