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)