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

Matt Gilman updated NIFI-16543:
-------------------------------
    Fix Version/s: 2.13.0
       Resolution: Fixed
           Status: Resolved  (was: Patch Available)

> UI - Controller Service enable/disable advances before all recursive 
> referencing branches complete
> --------------------------------------------------------------------------------------------------
>
>                 Key: NIFI-16543
>                 URL: https://issues.apache.org/jira/browse/NIFI-16543
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core UI
>            Reporter: Rob Fellows
>            Assignee: Rob Fellows
>            Priority: Major
>             Fix For: 2.13.0
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> The Angular Controller Service enable/disable workflow uses positive `.some()`
> when evaluating recursive Controller Service reference branches:
>  - isReferencingServicesActionComplete() advances when any sibling Controller
> Service branch reaches the accepted state
>  - The nested branch of areReferencingComponentsStopped() advances when any
> nested branch has stopped
> With multiple sibling Controller Services, one completed branch can advance
> the workflow while another service is still transitioning or still has running
> processors / reporting tasks.
> The legacy D3/jQuery UI waited for every recursively referenced service and
> schedulable-component poll to complete. The Angular `.some()` behavior is a
> regression.
> File:
> nifi-frontend/src/main/frontend/apps/nifi/src/app/state/contoller-service-state/controller-service-state.effects.ts
> Possible Fix:
>  - Require every sibling Controller Service branch to reach the accepted state
> (.every())
>  - Require every nested branch to have stopped before advancing disable
>  - Guard recursion with ?? [] and skip nodes marked referenceCycle (server 
> omits
> referencingComponents for those nodes; .every() would otherwise throw)
>  - Apply the same null/cycle guard to hasUnauthorizedReferences()
>  - Preserve empty-reference behavior
> Also add controller-service-state.effects.spec.ts covering mixed sibling
> enable/disable, nested stop/activeThreadCount, empty references, and cycle 
> nodes.



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to