[
https://issues.apache.org/jira/browse/NIFI-6395?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16967469#comment-16967469
]
ASF subversion and git services commented on NIFI-6395:
-------------------------------------------------------
Commit 7f96fa1d0dbcfd061fba1e061c891ac35da4333d in nifi's branch
refs/heads/master from Ivan Ezequiel Rodriguez
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=7f96fa1 ]
NIFI-6395: Thread-safety bug fixed and added new flag property to handle the
way to adjust the counters
Update CountText.java
Local variable changes by AtomicInteger
NIFI-6395 - Fix line is longer than 200 characters
This closes #3552.
Signed-off-by: Koji Kawamura <[email protected]>
> CountText processor is not thread safe - concurrency error
> ----------------------------------------------------------
>
> Key: NIFI-6395
> URL: https://issues.apache.org/jira/browse/NIFI-6395
> Project: Apache NiFi
> Issue Type: Bug
> Components: Extensions
> Affects Versions: 1.9.2
> Environment: software platform
> Reporter: Iván Ezequiel Rodriguez
> Assignee: Iván Ezequiel Rodriguez
> Priority: Major
> Labels: concurrency, count, error, processor, text, thread-safe
> Time Spent: 4h 20m
> Remaining Estimate: 0h
>
> The processor counters fail to execute multiple threads. The programming is
> not safe since they are not atomic operations. They are using a volatile
> instance variable accessed by multiple threads when onTrigger is called. The
> solution is to declare those local variables to onTrigger. Perform several
> tests with millions of records and the counter does not work correctly when
> it is executed with more than one task.
> The problem is in the declaration of these instance variables:
> private *volatile int* lineCount;
> private *volatile int* lineNonEmptyCount;
> private *volatile int* wordCount;
> private *volatile int* characterCount;
> This is not safe to perform atomic operations on these variables. As a result
> the counters register less amount of lines when executed with multiple
> threads.
> I propose the following solution:
> [Fix bug pull request|https://github.com/apache/nifi/pull/3552]
> problem graph:
> [!https://1.bp.blogspot.com/-o-RrxVFT1BA/XW7BW9e-iyI/AAAAAAAAAV4/SjV_4QzA5Po47fM-Roz75mE9mYwKxkIrQCLcBGAs/s640/thread-safe2.png|width=640,height=353!|https://1.bp.blogspot.com/-o-RrxVFT1BA/XW7BW9e-iyI/AAAAAAAAAV4/SjV_4QzA5Po47fM-Roz75mE9mYwKxkIrQCLcBGAs/s1600/thread-safe2.png]
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)