Mark Payne created NIFI-13546:
---------------------------------

             Summary: When Content Repo completely runs out of disk space, it 
fails to recover if archive directories not created
                 Key: NIFI-13546
                 URL: https://issues.apache.org/jira/browse/NIFI-13546
             Project: Apache NiFi
          Issue Type: Bug
            Reporter: Mark Payne


When filling up the content repo I see the following error:
{code:java}
2024-07-10 19:03:06,841 WARN [FileSystemRepository Workers Thread-3] 
org.apache.nifi.controller.repository.FileSystemRepository Failed to archive 
StandardResourceClaim[id=1720629393533-2, container=repo1, section=2]
java.nio.file.FileSystemException: /nifi/content_repository_1/2/archive: No 
space left on device
        at 
java.base/sun.nio.fs.UnixException.translateToIOException(UnixException.java:100)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:106)
        at 
java.base/sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:111)
        at 
java.base/sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:438)
        at java.base/java.nio.file.Files.createDirectory(Files.java:699)
        at 
java.base/java.nio.file.Files.createAndCheckIsDirectory(Files.java:807)
        at java.base/java.nio.file.Files.createDirectories(Files.java:793)
        at 
org.apache.nifi.controller.repository.FileSystemRepository.archive(FileSystemRepository.java:1199)
        at 
org.apache.nifi.controller.repository.FileSystemRepository.archive(FileSystemRepository.java:1158)
        at 
org.apache.nifi.controller.repository.FileSystemRepository$ArchiveOrDestroyDestructableClaims.run(FileSystemRepository.java:1464)
        at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
        at 
java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:572)
        at 
java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java:358)
        at 
java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
        at 
java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
        at java.base/java.lang.Thread.run(Thread.java:1583){code}
Because it cannot create the 'archive' directory, the file doesn't get moved to 
archive. As a result, it never gets purged from the system, even after emptying 
all FlowFile queues.

Additionally, it creates 10's of thousands of files that are 0 bytes and then 
fails to write to them, and since they can't be archived they just stay around.

In the case that we encounter an IOException when attempting to move a file 
into archive, we should generate a WARN log and delete it, rather than simply 
moving on.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to