Uploaded image for project: 'Apache NiFi'
  1. Apache NiFi
  2. NIFI-5098

NiFi fails to start if invalid NiFi Registry URI is configured in a controller service.

    XMLWordPrintableJSON

Details

    • Bug
    • Status: Open
    • Major
    • Resolution: Unresolved
    • None
    • None
    • None

    Description

      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

      Attachments

        Activity

          People

            SatwikB Satwik Bhandiwad
            jeremy.dyer Jeremy Dyer
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

            Dates

              Created:
              Updated: