I've successfully upgraded my DEV and TEST environments from NiFi 1.0.0 to NiFi
1.1.0. So I felt comfortable upgrading PROD until...
I completed all the work and went to start the server, but am receiving the
below stack trace. I dug through the code a bit and found that it's locking a
file named wali.lock, so I tried deleting that file and starting NiFi up again
but got the same stack dump. The lock file did get recreated on the next run.
Our version of NiFi 1.1.0 is a couple of commits newer than official due to a
merged branch (rather than a cherry pick). I don't have the exact commit we are
running, but we haven't had this issue in our other environments using the same
code.
---BEGIN STACK TRACE---
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:
java.nio.channels.OverlappingFileLockException
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
~[na:na]
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
~[na:na]
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
~[na:na]
at
org.apache.nifi.web.contextlistener.ApplicationStartupContextListener.contextDestroyed(ApplicationStartupContextListener.java:103)
~[na:na]
at
org.eclipse.jetty.server.handler.ContextHandler.callContextDestroyed(ContextHandler.java:845)
~[na:na]
at
org.eclipse.jetty.servlet.ServletContextHandler.callContextDestroyed(ServletContextHandler.java:546)
~[na:na]
at
org.eclipse.jetty.server.handler.ContextHandler.stopContext(ContextHandler.java:826)
~[na:na]
at
org.eclipse.jetty.servlet.ServletContextHandler.stopContext(ServletContextHandler.java:356)
~[na:na]
at
org.eclipse.jetty.webapp.WebAppContext.stopWebapp(WebAppContext.java:1410)
~[na:na]
at
org.eclipse.jetty.webapp.WebAppContext.stopContext(WebAppContext.java:1374)
~[na:na]
at
org.eclipse.jetty.server.handler.ContextHandler.doStop(ContextHandler.java:874)
~[na:na]
at
org.eclipse.jetty.servlet.ServletContextHandler.doStop(ServletContextHandler.java:272)
~[na:na]
at
org.eclipse.jetty.webapp.WebAppContext.doStop(WebAppContext.java:544) ~[na:na]
at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
~[na:na]
at
org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143)
~[na:na]
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161)
~[na:na]
at
org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73)
~[na:na]
at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
~[na:na]
at
org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143)
~[na:na]
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161)
~[na:na]
at
org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73)
~[na:na]
at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
~[na:na]
at
org.eclipse.jetty.util.component.ContainerLifeCycle.stop(ContainerLifeCycle.java:143)
~[na:na]
at
org.eclipse.jetty.util.component.ContainerLifeCycle.doStop(ContainerLifeCycle.java:161)
~[na:na]
at
org.eclipse.jetty.server.handler.AbstractHandler.doStop(AbstractHandler.java:73)
~[na:na]
at org.eclipse.jetty.server.Server.doStop(Server.java:482) ~[na:na]
at
org.eclipse.jetty.util.component.AbstractLifeCycle.stop(AbstractLifeCycle.java:89)
~[na:na]
at org.apache.nifi.web.server.JettyServer.stop(JettyServer.java:854)
~[na:na]
at org.apache.nifi.NiFi.shutdownHook(NiFi.java:187)
[nifi-runtime-1.1.0.jar:1.1.0]
at org.apache.nifi.NiFi$2.run(NiFi.java:88)
[nifi-runtime-1.1.0.jar:1.1.0]
at java.lang.Thread.run(Thread.java:745) [na:1.8.0_101]
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:
java.nio.channels.OverlappingFileLockException
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:175)
~[na:na]
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.getObjectFromFactoryBean(FactoryBeanRegistrySupport.java:103)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getObjectForBeanInstance(AbstractBeanFactory.java:1585)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:254)
~[na:na]
at
org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
~[na:na]
at
org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1060)
~[na:na]
at
org.apache.nifi.spring.StandardFlowServiceFactoryBean.getObject(StandardFlowServiceFactoryBean.java:48)
~[na:na]
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
~[na:na]
... 33 common frames omitted
Caused by: java.lang.RuntimeException:
java.nio.channels.OverlappingFileLockException
at
org.apache.nifi.controller.FlowController.createFlowFileRepository(FlowController.java:642)
~[na:na]
at
org.apache.nifi.controller.FlowController.<init>(FlowController.java:447)
~[na:na]
at
org.apache.nifi.controller.FlowController.createStandaloneInstance(FlowController.java:375)
~[na:na]
at
org.apache.nifi.spring.FlowControllerFactoryBean.getObject(FlowControllerFactoryBean.java:74)
~[na:na]
at
org.springframework.beans.factory.support.FactoryBeanRegistrySupport.doGetObjectFromFactoryBean(FactoryBeanRegistrySupport.java:168)
~[na:na]
... 40 common frames omitted
Caused by: java.nio.channels.OverlappingFileLockException: null
at sun.nio.ch.SharedFileLockTable.checkList(FileLockTable.java:255)
~[na:1.8.0_101]
at sun.nio.ch.SharedFileLockTable.add(FileLockTable.java:152)
~[na:1.8.0_101]
at sun.nio.ch.FileChannelImpl.lock(FileChannelImpl.java:1063)
~[na:1.8.0_101]
at java.nio.channels.FileChannel.lock(FileChannel.java:1053)
~[na:1.8.0_101]
at
org.wali.MinimalLockingWriteAheadLog.<init>(MinimalLockingWriteAheadLog.java:187)
~[na:na]
at
org.wali.MinimalLockingWriteAheadLog.<init>(MinimalLockingWriteAheadLog.java:112)
~[na:na]
at
org.apache.nifi.controller.repository.WriteAheadFlowFileRepository.initialize(WriteAheadFlowFileRepository.java:148)
~[na:na]
at
org.apache.nifi.controller.FlowController.createFlowFileRepository(FlowController.java:638)
~[na:na]
---END STACK TRACE---