Mark Payne created NIFI-6410:
--------------------------------

             Summary: FlowFile Repository could become corrupt if IOException 
or OOME thrown
                 Key: NIFI-6410
                 URL: https://issues.apache.org/jira/browse/NIFI-6410
             Project: Apache NiFi
          Issue Type: Bug
          Components: Core Framework
            Reporter: Mark Payne
            Assignee: Mark Payne


The LengthDelimitedJournal class allows only a single thread to write to the 
journal at a time (protected by a synchronized block). If the Thread throws an 
Exception while writing, it calls the poison() method in order to prevent any 
other Thread from updating the Repo and causing corruption. However, there is a 
race condition that exists, where the Thread will exit the synchronized block 
and then call poison(), which could result in a second Thread entering the 
synchronized block and updating the Repository, which can corrupt the 
Repository.

This would only happen in conditions such as an OutOfMemoryError or if the 
FlowFile Repository runs out of disk space, and even then it won't necessarily 
occur. But it can, so it needs to be addressed.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to