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

Oleg Zhurakousky updated NIFI-3523:
-----------------------------------
    Resolution: Fixed
        Status: Resolved  (was: Patch Available)

> WriteAheadProvenanceRepository fails to initialize properly if it contains an 
> invalid Provenance Event
> ------------------------------------------------------------------------------------------------------
>
>                 Key: NIFI-3523
>                 URL: https://issues.apache.org/jira/browse/NIFI-3523
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>            Reporter: Mark Payne
>            Assignee: Mark Payne
>             Fix For: 1.2.0
>
>
> With the new WriteAheadProvenanceRepository, when trying to initialize 
> itself, the repository will throw an Exception preventing NiFi from starting 
> if it encounters an invalid Provenance Event. While it can properly handle 
> IOExceptions that are thrown, other Exceptions (such as those thrown by 
> NIFI-3522) will still cause problems. While such events should not be 
> generated, the Provenance Repository should be resilient enough to handle 
> them and continue on.
> 2017-02-22 15:47:11,896 WARN [main] org.apache.nifi.web.server.JettyServer 
> Failed to start web server... shutting down.
> org.apache.nifi.web.NiFiCoreException: Unable to start Flow Controller.
>       at 
> org.apache.nifi.web.contextlistener.ApplicationStartupContextListener.contextInitialized(ApplicationStartupContextListener.java:85)
>  ~[na:na]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.callContextInitialized(ContextHandler.java:837)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.callContextInitialized(ServletContextHandler.java:533)
>  ~[jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.startContext(ContextHandler.java:810)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.startContext(ServletContextHandler.java:345)
>  ~[jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.webapp.WebAppContext.startWebapp(WebAppContext.java:1404) 
> ~[jetty-webapp-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1366) 
> ~[jetty-webapp-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.server.handler.ContextHandler.doStart(ContextHandler.java:772)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.servlet.ServletContextHandler.doStart(ServletContextHandler.java:262)
>  ~[jetty-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.webapp.WebAppContext.doStart(WebAppContext.java:520) 
> ~[jetty-webapp-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:114)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.server.handler.gzip.GzipHandler.doStart(GzipHandler.java:231)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.start(ContainerLifeCycle.java:132)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at org.eclipse.jetty.server.Server.start(Server.java:411) 
> ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.ContainerLifeCycle.doStart(ContainerLifeCycle.java:106)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.server.handler.AbstractHandler.doStart(AbstractHandler.java:61)
>  ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at org.eclipse.jetty.server.Server.doStart(Server.java:378) 
> ~[jetty-server-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at 
> org.eclipse.jetty.util.component.AbstractLifeCycle.start(AbstractLifeCycle.java:68)
>  ~[jetty-util-9.3.9.v20160517.jar:9.3.9.v20160517]
>       at org.apache.nifi.web.server.JettyServer.start(JettyServer.java:736) 
> ~[nifi-jetty-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at org.apache.nifi.NiFi.<init>(NiFi.java:157) 
> [nifi-runtime-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at org.apache.nifi.NiFi.main(NiFi.java:264) 
> [nifi-runtime-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
> Caused by: org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'flowService': FactoryBean threw exception on object 
> creation; nested exception is 
> org.springframework.beans.factory.BeanCreationException: Error creating bean 
> with name 'flowController': FactoryBean threw exception on object creation; 
> nested exception is java.lang.RuntimeException: Unable to create Provenance 
> Repository
>       at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
>  ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.apache.nifi.web.contextlistener.ApplicationStartupContextListener.contextInitialized(ApplicationStartupContextListener.java:53)
>  ~[na:na]
>       ... 28 common frames omitted
> Caused by: org.springframework.beans.factory.BeanCreationException: Error 
> creating bean with name 'flowController': FactoryBean threw exception on 
> object creation; nested exception is java.lang.RuntimeException: Unable to 
> create Provenance Repository
>       at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:317)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
>  ~[spring-context-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       at 
> org.apache.nifi.spring.StandardFlowServiceFactoryBean.getObject(StandardFlowServiceFactoryBean.java:48)
>  ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       ... 34 common frames omitted
> Caused by: java.lang.RuntimeException: Unable to create Provenance Repository
>       at 
> org.apache.nifi.controller.FlowController.<init>(FlowController.java:462) 
> ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at 
> org.apache.nifi.controller.FlowController.createStandaloneInstance(FlowController.java:378)
>  ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at 
> org.apache.nifi.spring.FlowControllerFactoryBean.getObject(FlowControllerFactoryBean.java:74)
>  ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at 
> org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
>  ~[spring-beans-4.2.4.RELEASE.jar:4.2.4.RELEASE]
>       ... 41 common frames omitted
> Caused by: java.lang.IllegalStateException: Cannot create Provenance Event 
> Record because FlowFile UUID is not set
>       at 
> org.apache.nifi.provenance.StandardProvenanceEventRecord$Builder.assertSet(StandardProvenanceEventRecord.java:770)
>  ~[nifi-data-provenance-utils-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at 
> org.apache.nifi.provenance.StandardProvenanceEventRecord$Builder.build(StandardProvenanceEventRecord.java:791)
>  ~[nifi-data-provenance-utils-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       at 
> org.apache.nifi.provenance.schema.LookupTableEventRecord.getEvent(LookupTableEventRecord.java:331)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.EventIdFirstSchemaRecordReader.readRecord(EventIdFirstSchemaRecordReader.java:111)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.EventIdFirstSchemaRecordReader.nextRecord(EventIdFirstSchemaRecordReader.java:100)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.serialization.CompressableRecordReader.nextRecord(CompressableRecordReader.java:286)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.serialization.CompressableRecordReader.getMaxEventId(CompressableRecordReader.java:218)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.store.WriteAheadStorePartition.initialize(WriteAheadStorePartition.java:126)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.store.PartitionedEventStore.initialize(PartitionedEventStore.java:68)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.store.PartitionedWriteAheadEventStore.initialize(PartitionedWriteAheadEventStore.java:97)
>  ~[na:na]
>       at 
> org.apache.nifi.provenance.WriteAheadProvenanceRepository.initialize(WriteAheadProvenanceRepository.java:141)
>  ~[na:na]
>       at 
> org.apache.nifi.controller.FlowController.<init>(FlowController.java:460) 
> ~[nifi-framework-core-1.2.0-SNAPSHOT.jar:1.2.0-SNAPSHOT]
>       ... 44 common frames omitted



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to