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

Pierre Villard resolved NIFI-7489.
----------------------------------
    Resolution: Feedback Received

Apache NiFi 1.x is no longer maintained and no new release is planned on the 
1.x release line. Marking as resolved as part of a cleanup operation. Please 
open a new one with an updated description if this is still relevant for NiFi 
2.x.

> resolveInheritedControllerServices doesn't connect all controller services
> --------------------------------------------------------------------------
>
>                 Key: NIFI-7489
>                 URL: https://issues.apache.org/jira/browse/NIFI-7489
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework, Flow Versioning
>    Affects Versions: 1.11.4
>         Environment: Official NiFi Docker Container connected to Official 
> NiFi Registry Container
>            Reporter: Eric Secules
>            Priority: Major
>         Attachments: externalServiceReference_Issue.xml
>
>
> h1. Description
> When I download versioned flows from NiFi Registry, sometimes it does not 
> connect processors to controller services even though one exists in scope and 
> it has the same name as the one it was originally connected to.
> h1. Expected Behaviour
> NiFi downloads versioned process groups and connects external controller 
> services correctly provided that a compatible controller service is available 
> and has the same name.
> h1. Actual Behaviour
> NiFi downloads versioned flows but does not connect all external controller 
> services.
> h1. Steps to reproduce:
>  * Upload the attached template to your NiFi
>  * Ensure the necessary Controller Services exist at the ROOT process group.
>  ** DistributedMapCacheClientService
>  ** AzureStorageCredentialsControllerService
>  ** DistributedMapCacheServer
>  * Resolve all warnings on processors, maybe need to connect the above 
> controller services.
>  * Start version control on "Inner Versioned Flow"
>  * Start version control on "Outer Versioned Flow"
>  * Clear Canvas
>  * Delete and Recreate the Controller Services
>  ** DistributedMapCacheClientService
>  ** AzureStorageCredentialsControllerService
>  ** DistributedMapCacheServer
>  * Import "Outer Versioned Flow" from your registry
> You should observe that one processor in Inner Versioned Flow is invalid 
> because it wasn't connected to an existing controller service and that the 
> other processor is valid because by coincidence it shares the same dependency 
> on an external controller service as the Outer Versioned Flow
> h1. Notes
> I believe the issue is that the code falls into [this line 
> here|https://github.com/apache/nifi/blob/45e626f6a872296cdd08fcfc533c7ce7e3624fca/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiServiceFacade.java#L3585]
>  because the {{externalControllerServiceReferences}} is always set to that of 
> the outermost versioned process group being imported even if the current 
> process group being imported is versioned as well and has a different set of 
> {{externalControllerServiceReferences}}
> A solution may be to make sure that {{externalControllerServiceReferences}} 
> corresponds to the innermost versioned process group being worked on by 
> {{resolveInheritedControllerServices()}}. 
> Another potential solution could be to make sure that outer versioned process 
> groups' {{externalControllerServiceReferences}} is a superset of all the 
> {{externalControllerServiceReferences}} from versioned process groups inside 
> it.
> A good restriction to have might be not to allow Controller Services with the 
> same name to exist in the same scope. 



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to