[
https://issues.apache.org/jira/browse/NIFI-13688?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Pierre Villard updated NIFI-13688:
----------------------------------
Fix Version/s: 2.0.0-M5
Resolution: Fixed
Status: Resolved (was: Patch Available)
> 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)