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)