[
https://issues.apache.org/jira/browse/NIFI-16344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bob Paulin resolved NIFI-16344.
-------------------------------
Fix Version/s: 2.13.0
Resolution: Fixed
> Selective FlowFile drop can reorder swapped queue contents
> ----------------------------------------------------------
>
> Key: NIFI-16344
> URL: https://issues.apache.org/jira/browse/NIFI-16344
> Project: Apache NiFi
> Issue Type: Bug
> Reporter: Mark Payne
> Assignee: Mark Payne
> Priority: Major
> Fix For: 2.13.0
>
> Time Spent: 40m
> Remaining Estimate: 0h
>
> {{SwappablePriorityQueue.dropFlowFiles(Predicate)}} can change swap-file
> ordering when only some swap files contain matching FlowFiles.
> During selective drop, a partially retained swap file is rewritten. Its
> replacement location is appended to swapLocations. If the rewritten file
> originally preceded an unchanged swap file, the unchanged file is
> subsequently swapped in first, violating FIFO ordering.
> Reproduction:
> 1. Create a queue with a swap threshold of 10 and default FIFO ordering.
> 2. Enqueue records numbered 0–29:
> - Active queue: 0–9
> - First swap file: 10–19
> - Second swap file: 20–29
> 3. Selectively drop record 10.
> 4. Poll the queue.
> Expected: Records are returned as 0–9, then 11–29.
> Actual: After 0–9, record 20 is returned because the rewritten first swap
> file was moved after the second swap file.
> The replacement swap location should retain the original location’s position.
> Add a regression test using multiple swap files that verifies the complete
> polling order after selective drop.
--
This message was sent by Atlassian Jira
(v8.20.10#820010)