Craig Patrick created NIFI-14943:
------------------------------------

             Summary: Updating a processor group via Registry fails due to 
unregistered changes in different processors
                 Key: NIFI-14943
                 URL: https://issues.apache.org/jira/browse/NIFI-14943
             Project: Apache NiFi
          Issue Type: Bug
          Components: Flow Versioning
    Affects Versions: 2.0.0
         Environment: All
            Reporter: Craig Patrick


When trying to update a processor group via Registry, it fails because other 
unaffected processor groups have running services and processors - even though 
these are not related to the changes being deployed.

Example:
 * I have made changes to Process Group A which I then deploy via Registry.
 * When starting the process group update, I see the following in the nifi logs 
with indications of changes which will be updated:
 ** 
{code:java}
2025-09-08 00:48:39,560 INFO [Process Group Update Thread-1] 
o.apache.nifi.web.api.VersionsResource Updating Process Group with ID 
01921001-276a-1ebc-bc82-78de756c78e7 to version 6 of the Versioned Flow
2025-09-08 00:48:39,563 INFO [Process Group Update Thread-1] 
o.a.n.f.s.StandardVersionedComponentSynchronizer Updating 
StandardProcessGroup[identifier=01921001-276a-1ebc-bc82-78de756c78e7,name=Dealer
 Locator] to org.apache.nifi.flow.VersionedExternalFlow@244ab28c; there are 15 
differences to take into account:
Property 'Database User' for Controller Service with ID 
052d7c5b-0944-3a67-9873-2c8cd2f7c04f is different
Property 'Database Connection URL' for Controller Service with ID 
4cce7461-c23e-350a-fd97-7434d77dbb34 is different
Property 'Password' for Controller Service with ID 
4cce7461-c23e-350a-fd97-7434d77dbb34 is different
Log File Suffix Changed for Process Group with ID 
01921001-276a-1ebc-bc82-78de756c78e7; flow 'Currently Loaded Flow' has value 
dealer-locator; flow 'Proposed Flow' has value -dealer-locator
Property 'Record Reader' for Processor with ID 
7e472cda-8671-36a6-efdd-ce227d6ea8d3 is different
Property 'Database Connection URL' for Controller Service with ID 
052d7c5b-0944-3a67-9873-2c8cd2f7c04f is different
Property 'Database Driver Location(s)' is a parameter reference in Currently 
Loaded Flow but not in Proposed Flow
Property 'Database Driver Class Name' is a parameter reference in Currently 
Loaded Flow but not in Proposed Flow
Property 'Database User' for Controller Service with ID 
4cce7461-c23e-350a-fd97-7434d77dbb34 is different
Controller Service with ID 0fa3447c-0199-1000-1117-34a05a6692cf exists in 
Proposed Flow but not in Currently Loaded Flow
Property 'Database Driver Location(s)' is a parameter reference in Currently 
Loaded Flow but not in Proposed Flow
Property 'Database Driver Class Name' is a parameter reference in Currently 
Loaded Flow but not in Proposed Flow
Property 'Record Writer' for Processor with ID 
66e060ad-6e9f-3c9b-d9b4-227a15dd5b75 is different
Controller Service with ID 0fa10b90-0199-1000-77af-b54d67c67107 exists in 
Proposed Flow but not in Currently Loaded Flow
Property 'Password' for Controller Service with ID 
052d7c5b-0944-3a67-9873-2c8cd2f7c04f is different {code}

 * However, despite there being absolutely no reference to anything that is 
changing OUTSIDE of this processor group, the update fails with the following 
issues:
 ** 
{code:java}
2025-09-08 00:48:39,565 ERROR [Process Group Update Thread-1] 
o.apache.nifi.web.api.FlowUpdateResource Failed to update Process Group 
01921001-276a-1ebc-bc82-78de756c78e7; will attempt to rollback any changes
java.lang.IllegalStateException: Cannot update parameter 
'bi.pgp.keyfile.location' because it is referenced by 
StandardControllerServiceNode[service=StandardPGPPrivateKeyService[id=978f0a8d-b111-3f86-71b7-31d0851530b9],
 name=StandardPGPPrivateKeyService, active=true], which currently has a state 
of ENABLED {code}

 ** This means I need to go and DISABLE that controller service, then try again 
- even though that parameter has not been touched or changed in the updates I 
am doing for the processor group. Same with this error:
 ** 
{code:java}
2025-09-08 00:48:39,590 ERROR [Process Group Update Thread-1] 
o.apache.nifi.web.api.FlowUpdateResource Failed to perform update flow request 
java.lang.IllegalStateException: Cannot update parameter 
'bi.pgp.keyfile.location' because it is referenced by 
StandardControllerServiceNode[service=StandardPGPPrivateKeyService[id=978f0a8d-b111-3f86-71b7-31d0851530b9],
 name=StandardPGPPrivateKeyService, active=true], which currently has a state 
of ENABLED {code}

 * In each case, the update fails at 80% and I need to check the logs for the 
next error and then disable that service (in live production workflows) in 
order to be able to update the service I want to update.

As you can imagine this is hugely frustrating, having to keep running through a 
number of different working and running processes to be able to get the update 
to work, and then re-enable all processes afterwards - despite the fact that 
the mentioned parameter has not even changed.



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

Reply via email to