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

ASF subversion and git services commented on NIFI-16543:
--------------------------------------------------------

Commit 0156816b87d09da101c40a20d5309a3bda983cbf in nifi's branch 
refs/heads/main from Rob Fellows
[ https://gitbox.apache.org/repos/asf?p=nifi.git;h=0156816b87d ]

NIFI-16543: Wait for every recursive Controller Service reference (#11887)

Enable and disable could advance after one sibling Controller Service branch 
completed. Require every sibling and nested branch to reach the accepted state, 
and stop recursion at referenceCycle nodes whose children the server omits. Add 
a regression spec covering mixed sibling and nested states, active threads, 
empty references, cycles, and unauthorized descendants.

> 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
>          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