[
https://issues.apache.org/jira/browse/NIFI-6599?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pierre Villard updated NIFI-6599:
---------------------------------
Fix Version/s: 1.11.0
Resolution: Fixed
Status: Resolved (was: Patch Available)
> MergeRecord fails if 'fragment.count' attribute equals the number of records
> within a FlowFile where it should wait for remaining FlowFiles
> -------------------------------------------------------------------------------------------------------------------------------------------
>
> Key: NIFI-6599
> URL: https://issues.apache.org/jira/browse/NIFI-6599
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Reporter: Koji Kawamura
> Assignee: Koji Kawamura
> Priority: Major
> Fix For: 1.11.0
>
> Attachments: NIFI-6599.xml
>
> Time Spent: 0.5h
> Remaining Estimate: 0h
>
> RecordBinManager.createThresholds has following code block:
> {code:java}
> if (MergeRecord.MERGE_STRATEGY_DEFRAGMENT.getValue().equals(mergeStrategy)) {
> fragmentCountAttribute = MergeContent.FRAGMENT_COUNT_ATTRIBUTE;
> if (!StringUtils.isEmpty(flowfile.getAttribute(fragmentCountAttribute))) {
> minRecords =
> Integer.parseInt(flowfile.getAttribute(fragmentCountAttribute));
> }
> } else {
> fragmentCountAttribute = null;
> }
> {code}
> The code uses 'fragment.count' as the minRecords. This is wrong because
> 'fragment.count' represents the number of fragments, i.e. number of FlowFiles
> holding partial record set.
> This causes a FlowFile to be sent 'failure' relationship where it should be
> hold in the incoming connection. For example, when a FlowFile is split into
> two FlowFiles, and each has 2 records in it, 'fragment.count' will be 2. In
> this case, MergeContent thinks the minRecords is 2, where 4 is correct. Then
> the first FlowFile is processed, while the 2nd one hasn't arrived,
> MergeContent misunderstood that the bin reached to the minimum number of
> records. But since there's only one FlowFile, it sends the FlowFile to
> 'failure'.
> The issue can be reproduced by the attached template.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)