[ https://issues.apache.org/jira/browse/NIFI-6395?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Koji Kawamura reassigned NIFI-6395: ----------------------------------- Assignee: Iván Ezequiel Rodriguez > 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: 1h 40m > 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] -- This message was sent by Atlassian Jira (v8.3.4#803005)