[ 
https://issues.apache.org/jira/browse/NIFI-5109?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16468163#comment-16468163
 ] 

ASF GitHub Bot commented on NIFI-5109:
--------------------------------------

Github user ijokarumawak commented on the issue:

    https://github.com/apache/nifi/pull/2657
  
    Maybe I'm thinking the issue oversimplified, but changing the line 378 
`return` to `break` would address the issue while ensuring that we don't reset 
the flag until we know we've pulled the latest state, wouldn't it?
    
    ```
                         if (LATEST_LISTED_ENTRY_TIMESTAMP_KEY.equals(k)) {
                             minTimestampToListMillis = Long.parseLong(v);
                             // If our determined timestamp is the same as that 
of our last listing, skip this execution as there are no updates
                             if 
(minTimestampToListMillis.equals(this.lastListedLatestEntryTimestampMillis)) {
                                 context.yield();
                                 return; // How about changing this to 'break'?
                             } else {
                                 this.lastListedLatestEntryTimestampMillis = 
minTimestampToListMillis;
                             }
                         } else if 
(LAST_PROCESSED_LATEST_ENTRY_TIMESTAMP_KEY.equals(k)) {
                             this.lastProcessedLatestEntryTimestampMillis = 
Long.parseLong(v);
                         } else if (k.startsWith(IDENTIFIER_PREFIX)) {
                             latestIdentifiersProcessed.add(v);
                         }
    ```


> AbstractListProcessor stop calling performListing after primary node 
> reelection
> -------------------------------------------------------------------------------
>
>                 Key: NIFI-5109
>                 URL: https://issues.apache.org/jira/browse/NIFI-5109
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.6.0
>            Reporter: Maksym Viazovskyi
>            Priority: Major
>         Attachments: 
> 0001-NIFI-2109-Reset-justElectedPrimaryNode-flag-right-af.patch, 
> PutAndListSFTP.xml, docker-compose.yml
>
>   Original Estimate: 72h
>  Remaining Estimate: 72h
>
> AbstractListProcessor stops performing listing of entities when after 
> reelection the same node becomes Primary.
> STEPS TO REPRODUCE:
> 0. Make sure that you have docker 18.03.0-ce
> 1. Download attached [^docker-compose.yml] and [^PutAndListSFTP.xml]
> 2. Run *_docker-compose up -d_* in the folder where you downloaded 
> docker-compose.yml. This command will run 3 containers - Zookeeper, NiFi 
> 1.6.0 in Cluster Mode with 1 node, SFTPs server 
> 3. After NiFi is up and running (check http://localhost:8080/nifi) upload 
> PutAndListSFTP.xml template and place it on NiFi canvas. It has simple logic 
> - generate flow file each 10 seconds and put it on SFTP, in parallel 
> ListSFTP processor "listens" for the new files and pushes data about them to 
> NiFi log with LogAttribute processor 
> 4. Update PutSFTP and ListSFTP processors with password admin (to check SFTP 
> container use following credentials SFTP://admin:admin@localhost:2222) 
> 5. Run the flow 
> 6. Check the NiFi log (*_docker logs -f --tail 100 nifi_*) - you should see 
> attributes for the uploaded files on SFTP 
> 7. Check that generated each 10 seconds files appear on SFTP /upload folder 
> 8. Run following command to restart Zookeeper to put NiFi in reelection 
> state: *_docker restart zookeeper_*
> 9. After reelection phase finished check that new files appears on SFTP, but 
> NO new files info appears in NiFi log
>  



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to