[ 
https://issues.apache.org/jira/browse/NIFI-15883?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Pierre Villard updated NIFI-15883:
----------------------------------
    Fix Version/s:     (was: 1.15.3)
                       (was: 2.9.0)
                       (was: 2.10.0)

> Wait/Notify Processing have a race condition while updating the Cache
> ---------------------------------------------------------------------
>
>                 Key: NIFI-15883
>                 URL: https://issues.apache.org/jira/browse/NIFI-15883
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.15.3, 2.1.0, 2.9.0
>            Reporter: Sheel Chand
>            Priority: Critical
>
> Nifi Processor Wait calls the protocol.replace function without checking the 
> return value - true or false. The replace() method may fail if a Notify 
> processor has updated the counters since the last fetch() by the Wait 
> Processor. As a result some updates are lost specially in a high concurrency 
> case. If you have a counter to wait for a number of ACKS before releasing the 
> files, the counter keeps increasing because the decrements by the Wait 
> Processor get lost.
> The same issue with the entry removal.  The protocol.complete() method 
> removes the entry without going through the Cache Protocol Version 2. So, it 
> may remove an entry even if a Notify processor has updated counters since the 
> last fetch().
> The notify function in WaitNotifyPortocol.java does the right thing by 
> retrying multiple times if the replace() method returns false.
> Wait Processor needs to be fixed to implement Cache Protocol Version 2 for 
> replace and complete() methods.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to