Dear NiFi team,

I am experimenting with NiFi parameter provider configuration to
externalize our parameters value.
Our setup is a single instance of NiFi created by helm-nifi
<https://github.com/cetic/helm-nifi>.
Last week we found an exception that cause our NiFi failing to startup and
stuck in crash loopback in our test environment :

java.lang.IllegalArgumentException: Parameters for Context [*main*] cannot
be manually updated because they are provided by Parameter Provider
[d247f466-0192-1000-bce4-93a483e13212]

at
org.apache.nifi.parameter.StandardParameterContext.verifyCanSetParameters(StandardParameterContext.java:728)

at
org.apache.nifi.parameter.StandardParameterContext.verifyCanSetParameters(StandardParameterContext.java:721)

at
org.apache.nifi.parameter.StandardParameterContext.setParameters(StandardParameterContext.java:138)

at
org.apache.nifi.controller.flow.AbstractFlowManager.createParameterContext(AbstractFlowManager.java:529)

at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.
*addParameterContext*(VersionedFlowSynchronizer.java:732)

at org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.
*inheritParameterContext*(VersionedFlowSynchronizer.java:710)

at
org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.lambda$inheritParameterContexts$3(VersionedFlowSynchronizer.java:696)

at
org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:551)

at
org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.inheritParameterContexts(VersionedFlowSynchronizer.java:687)

at
org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.synchronizeFlow(VersionedFlowSynchronizer.java:387)

>From my troubleshooting, I found that there's some weird configuration that
is unexpected, because Context [*main*] should not have Parameter Provider.
It only inherits another param context that is provided by Parameter
Provider. Anyway, the issue might come from our experimentation.

But the main question I'm wondering is how this
*VersionedFlowSynchronizer* works
when NiFi starts up.
What is the meaning of this synchronization? What does it synchronize the
flow with? I just want to know more about this mechanism and if there's any
documents about this.

Thanks in advance for any help to clarify this.

--


Regards,

*Radit Panjapiyakul*

Reply via email to