Jeremy Dyer created NIFIREG-167:
-----------------------------------

             Summary: NiFi fails to start if invalid NiFi Registry URI is 
configured in a controller service.
                 Key: NIFIREG-167
                 URL: https://issues.apache.org/jira/browse/NIFIREG-167
             Project: NiFi Registry
          Issue Type: Bug
    Affects Versions: 0.1.0
            Reporter: Jeremy Dyer
             Fix For: 0.2.0


When configuring a NiFi-registry client within NiFi the user can enter whatever 
URI they desire. However if the user enters a URI that does not contain 
http/https the URI is not validated. I typed "htp://" for example instead of 
"http://";. I restarted nifi and nifi would not restart giving an error in the 
logs that is included below. This prevented NiFi from starting without first 
manually fixing the controller service entry for the nifi-registry. This seems 
to only happen when you "update" the URI for the NiFi-Registry. It seems that 
client side validation is not occuring when updating the URI. This allows for 
the system to get in an invalid state if someone updates the URI incorrectly.

 

 

org.apache.nifi.controller.serialization.FlowSynchronizationException: 
java.lang.IllegalArgumentException: Cannot create Flow Registry with URI of 
localhost:18080 because there are no known implementations of Flow Registries 
that can handle URIs of scheme localhost
 at 
org.apache.nifi.controller.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:474)
 at 
org.apache.nifi.controller.FlowController.synchronize(FlowController.java:1622)
 at 
org.apache.nifi.persistence.StandardXMLFlowConfigurationDAO.load(StandardXMLFlowConfigurationDAO.java:84)
 at 
org.apache.nifi.controller.StandardFlowService.loadFromBytes(StandardFlowService.java:723)
 at 
org.apache.nifi.controller.StandardFlowService.load(StandardFlowService.java:534)
 at 
org.apache.nifi.web.contextlistener.ApplicationStartupContextListener.contextInitialized(ApplicationStartupContextListener.java:72)
 at 
org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:876)
 at 
org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:532)
 at 
org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:839)
 at 
org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:344)
 at org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1480)
 at org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1442)
 at 
org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:799)
 at 
org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:261)
 at org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:540)
 at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
 at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
 at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
 at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
 at 
org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:290)
 at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:113)
 at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
 at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:131)
 at org.eclipse.jetty.server.Server.start(Server.java:452)
 at 
org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:105)
 at 
org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:113)
 at org.eclipse.jetty.server.Server.doStart(Server.java:419)
 at 
org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
 at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:798)
 at org.apache.nifi.NiFi.<init>(NiFi.java:160)
 at org.apache.nifi.NiFi.main(NiFi.java:268)
Caused by: java.lang.IllegalArgumentException: Cannot create Flow Registry with 
URI of localhost:18080 because there are no known implementations of Flow 
Registries that can handle URIs of scheme localhost
 at 
org.apache.nifi.registry.flow.StandardFlowRegistryClient.addFlowRegistry(StandardFlowRegistryClient.java:86)
 at 
org.apache.nifi.controller.StandardFlowSynchronizer.sync(StandardFlowSynchronizer.java:349)
 ... 37 common frames omitted



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to