[ 
https://issues.apache.org/jira/browse/NIFI-7073?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17026768#comment-17026768
 ] 

Joe Witt commented on NIFI-7073:
--------------------------------

Clearly line 
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java#L356
 is attempting to handle the case where the hdfs client tells us the remote 
side cannot handle the given request.  And it attempts to clean it and throws 
an exception.  The exception you're suggesting occurred (difficult to be sure 
without the stack trace) means additional cases (not documented?) can do this 
as well.  Which suggests we should just change 
https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java#L356
 to catch throwable and do that logic so that in *any* case where attempting to 
close the stream results in an exception we assume the whole operation failed.

> PutHDFS silently ignores exceptions when closing temporary file output stream
> -----------------------------------------------------------------------------
>
>                 Key: NIFI-7073
>                 URL: https://issues.apache.org/jira/browse/NIFI-7073
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Extensions
>    Affects Versions: 1.11.0
>            Reporter: Michael Hogue
>            Priority: Major
>
> The PutHDFS processor can silently fail when closing an output stream when 
> it's finished writing FlowFiles to a temporary space in HDFS. 
> {{DFSOutputStream}} can throw an {{IOException}} when it's closed and that's 
> ignored by the processor. This results in the FlowFile getting dropped (e.g. 
> a loss of data) when it should be routed to the failure relationship.
> Source: 
> [https://github.com/apache/nifi/blob/master/nifi-nar-bundles/nifi-hadoop-bundle/nifi-hdfs-processors/src/main/java/org/apache/nifi/processors/hadoop/PutHDFS.java#L365]
> Instead, the exception should be caught & thrown and the FlowFile should be 
> routed to the failure relationship. There's probably an argument to avoid 
> ignoring _any_ exception.



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to