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

Pierre Villard reopened NIFI-13688:
-----------------------------------

After further testing it appears that the change is introducing an issue for 
Parameter Providers that do not depend on other controller services as those 
ones would be in VALIDATING status mode unless performValidation is explicitly 
called. This causes the parameter context to only have parameters with no 
value. The validation should be executed before checking the status and 
fetching the parameter values.

> NiFi can't start when Parameter Provider depends on controller service
> ----------------------------------------------------------------------
>
>                 Key: NIFI-13688
>                 URL: https://issues.apache.org/jira/browse/NIFI-13688
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework, Extensions
>    Affects Versions: 2.0.0-M5
>            Reporter: Pierre Villard
>            Assignee: David Handermann
>            Priority: Major
>             Fix For: 2.0.0-M5
>
>          Time Spent: 0.5h
>  Remaining Estimate: 0h
>
> Following NIFI-13560, it appears that NiFi can't start when a Parameter 
> Provider is configured and this parameter provider depends on a controller 
> service. In this case, fetching parameters will fail because the referenced 
> controller service is still enabling. This is the case with the HashiCorp 
> parameter provider.
> {code:java}
> 2024-08-28 15:17:15,752 ERROR [main] org.apache.nifi.web.server.JettyServer 
> Failed to start Server
> org.apache.nifi.controller.serialization.FlowSynchronizationException: 
> java.lang.IllegalStateException: Error fetching parameters for 
> ParameterProvider[id=98c9d5c5-0191-1000-624e-84083ed8842e]: Cannot invoke 
> method public abstract 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultCommunicationService 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultClientService.getHashiCorpVaultCommunicationService()
>  on Controller Service with identifier 98cab32e-0191-1000-4aa7-fda19202e9c5 
> because the Controller Service's State is currently ENABLING
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.synchronizeFlow(VersionedFlowSynchronizer.java:465)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.sync(VersionedFlowSynchronizer.java:229)
>     at 
> org.apache.nifi.controller.FlowController.synchronize(FlowController.java:1800)
>     at 
> org.apache.nifi.persistence.StandardFlowConfigurationDAO.load(StandardFlowConfigurationDAO.java:91)
>     at 
> org.apache.nifi.controller.StandardFlowService.loadFromBytes(StandardFlowService.java:817)
>     at 
> org.apache.nifi.controller.StandardFlowService.load(StandardFlowService.java:538)
>     at 
> org.apache.nifi.web.contextlistener.ApplicationStartupContextListener.contextInitialized(ApplicationStartupContextListener.java:67)
>     at 
> org.eclipse.jetty.ee10.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:1591)
>     at 
> org.eclipse.jetty.ee10.servlet.ServletContextHandler.contextInitialized(ServletContextHandler.java:497)
>     at 
> org.eclipse.jetty.ee10.servlet.ServletHandler.initialize(ServletHandler.java:670)
>     at 
> org.eclipse.jetty.ee10.servlet.ServletContextHandler.startContext(ServletContextHandler.java:1325)
>     at 
> org.eclipse.jetty.ee10.webapp.WebAppContext.startWebapp(WebAppContext.java:1342)
>     at 
> org.eclipse.jetty.ee10.webapp.WebAppContext.startContext(WebAppContext.java:1300)
>     at 
> org.eclipse.jetty.ee10.servlet.ServletContextHandler.lambda$doStart$0(ServletContextHandler.java:1047)
>     at 
> org.eclipse.jetty.server.handler.ContextHandler$ScopedContext.call(ContextHandler.java:1446)
>     at 
> org.eclipse.jetty.ee10.servlet.ServletContextHandler.doStart(ServletContextHandler.java:1044)
>     at 
> org.eclipse.jetty.ee10.webapp.WebAppContext.doStart(WebAppContext.java:499)
>     at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>     at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
>     at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
>     at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
>     at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>     at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
>     at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
>     at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
>     at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>     at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:169)
>     at org.eclipse.jetty.server.Server.start(Server.java:624)
>     at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:120)
>     at org.eclipse.jetty.server.Handler$Abstract.doStart(Handler.java:491)
>     at org.eclipse.jetty.server.Server.doStart(Server.java:565)
>     at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:93)
>     at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:878)
>     at org.apache.nifi.NiFi.<init>(NiFi.java:155)
>     at org.apache.nifi.NiFi.<init>(NiFi.java:86)
>     at org.apache.nifi.NiFi.main(NiFi.java:284)
> Caused by: java.lang.IllegalStateException: Error fetching parameters for 
> ParameterProvider[id=98c9d5c5-0191-1000-624e-84083ed8842e]: Cannot invoke 
> method public abstract 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultCommunicationService 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultClientService.getHashiCorpVaultCommunicationService()
>  on Controller Service with identifier 98cab32e-0191-1000-4aa7-fda19202e9c5 
> because the Controller Service's State is currently ENABLING
>     at 
> org.apache.nifi.controller.parameter.StandardParameterProviderNode.fetchParameters(StandardParameterProviderNode.java:286)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.getProvidedParameters(VersionedFlowSynchronizer.java:1064)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.getProvidedParameters(VersionedFlowSynchronizer.java:1057)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.createParameterMap(VersionedFlowSynchronizer.java:867)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.addParameterContext(VersionedFlowSynchronizer.java:816)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.inheritParameterContext(VersionedFlowSynchronizer.java:803)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.lambda$inheritParameterContexts$4(VersionedFlowSynchronizer.java:788)
>     at 
> org.apache.nifi.controller.flow.AbstractFlowManager.withParameterContextResolution(AbstractFlowManager.java:668)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.inheritParameterContexts(VersionedFlowSynchronizer.java:780)
>     at 
> org.apache.nifi.controller.serialization.VersionedFlowSynchronizer.synchronizeFlow(VersionedFlowSynchronizer.java:410)
>     ... 35 common frames omitted
> Caused by: 
> org.apache.nifi.controller.service.ControllerServiceDisabledException: Cannot 
> invoke method public abstract 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultCommunicationService 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultClientService.getHashiCorpVaultCommunicationService()
>  on Controller Service with identifier 98cab32e-0191-1000-4aa7-fda19202e9c5 
> because the Controller Service's State is currently ENABLING
>     at 
> org.apache.nifi.controller.service.StandardControllerServiceInvocationHandler.invoke(StandardControllerServiceInvocationHandler.java:97)
>     at 
> jdk.proxy13/jdk.proxy13.$Proxy106.getHashiCorpVaultCommunicationService(Unknown
>  Source)
>     at 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultParameterProvider.getVaultCommunicationService(HashiCorpVaultParameterProvider.java:163)
>     at 
> org.apache.nifi.vault.hashicorp.HashiCorpVaultParameterProvider.fetchParameters(HashiCorpVaultParameterProvider.java:85)
>     at 
> org.apache.nifi.controller.parameter.StandardParameterProviderNode.fetchParameters(StandardParameterProviderNode.java:284)
>     ... 44 common frames omitted {code}



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

Reply via email to