Github user markap14 commented on the issue:
https://github.com/apache/nifi/pull/1642
@trixpan sorry - the email that github sent me got lost in my inbox. Just
saw it. I think the logic here is still not quite right, though. And I think I
may have actually misunderstood what was happening initially, as well. If
unable to delete the 'hold' that the other side places on the FlowFile,
PostHTTP enters a loop of continually attempting to delete the hold, until it
gets a response back. If an IOException occurs, with the logic you added in, it
will route to failure and then the next iteration of the loop will try to
transfer the FlowFile again. I think the best approach would be to limit the
loop to happen some number of times (e.g., 3 or 5 or 10 times) and if unable to
communicate with the remote instance for that number of times, at that point we
should route to failure and return. We used a loop here, I think, because we
don't want to send say 1 GB of data and then have a garbage collection or a
network hiccup or whatever prevent the delete and have to re-transmit all
that data. So a few retries is likely a good idea. We should probably also
not be logging the errors/stack traces until we finish retrying though.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---