Mark Payne created NIFI-8038:
--------------------------------

             Summary: Potential deadlock when updating parameter contexts
                 Key: NIFI-8038
                 URL: https://issues.apache.org/jira/browse/NIFI-8038
             Project: Apache NiFi
          Issue Type: Bug
          Components: Core Framework
            Reporter: Mark Payne
            Assignee: Mark Payne


Ran into the following deadlock when starting NiFi Stateless but can occur in 
traditional NiFi as well:
{code:java}
Java stack information for the threads listed above:
===================================================
"Component Validation Thread-1":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000000f8492308> (a 
java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.doAcquireShared(AbstractQueuedSynchronizer.java:967)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireShared(AbstractQueuedSynchronizer.java:1283)
        at 
java.util.concurrent.locks.ReentrantReadWriteLock$ReadLock.lock(ReentrantReadWriteLock.java:727)
        at 
org.apache.nifi.parameter.StandardParameterContext.getVersion(StandardParameterContext.java:197)
        at 
org.apache.nifi.controller.PropertyConfiguration$ComputedEffectiveValue.matches(PropertyConfiguration.java:122)
        at 
org.apache.nifi.controller.PropertyConfiguration.getEffectiveValue(PropertyConfiguration.java:60)
        at 
org.apache.nifi.processor.StandardValidationContext.<init>(StandardValidationContext.java:89)
        at 
org.apache.nifi.processor.StandardValidationContextFactory.newValidationContext(StandardValidationContextFactory.java:42)
        at 
org.apache.nifi.controller.AbstractComponentNode.getValidationContext(AbstractComponentNode.java:1098)
        at 
org.apache.nifi.controller.AbstractComponentNode.performValidation(AbstractComponentNode.java:587)
        at 
org.apache.nifi.components.validation.StandardValidationTrigger.trigger(StandardValidationTrigger.java:52)
        at 
org.apache.nifi.components.validation.StandardValidationTrigger.lambda$triggerAsync$0(StandardValidationTrigger.java:45)
        at 
org.apache.nifi.components.validation.StandardValidationTrigger$$Lambda$306/401130380.run(Unknown
 Source)
        at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
        at 
java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
        at java.util.concurrent.FutureTask.run(FutureTask.java:266)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)
        at 
java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
"main":
        at sun.misc.Unsafe.park(Native Method)
        - parking to wait for  <0x00000000f864bf70> (a 
java.util.concurrent.locks.ReentrantLock$NonfairSync)
        at java.util.concurrent.locks.LockSupport.park(LockSupport.java:175)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.parkAndCheckInterrupt(AbstractQueuedSynchronizer.java:836)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquireQueued(AbstractQueuedSynchronizer.java:870)
        at 
java.util.concurrent.locks.AbstractQueuedSynchronizer.acquire(AbstractQueuedSynchronizer.java:1199)
        at 
java.util.concurrent.locks.ReentrantLock$NonfairSync.lock(ReentrantLock.java:209)
        at java.util.concurrent.locks.ReentrantLock.lock(ReentrantLock.java:285)
        at 
org.apache.nifi.controller.AbstractComponentNode.resetValidationState(AbstractComponentNode.java:999)
        at 
org.apache.nifi.controller.AbstractComponentNode.onParametersModified(AbstractComponentNode.java:908)
        at 
org.apache.nifi.groups.StandardProcessGroup.lambda$onParameterContextUpdated$20(StandardProcessGroup.java:3081)
        at 
org.apache.nifi.groups.StandardProcessGroup$$Lambda$289/1815079573.accept(Unknown
 Source)
        at java.util.ArrayList.forEach(ArrayList.java:1259)
        at 
org.apache.nifi.groups.StandardProcessGroup.onParameterContextUpdated(StandardProcessGroup.java:3081)
        at 
org.apache.nifi.parameter.StandardParameterContext.setParameters(StandardParameterContext.java:142)
        at 
org.apache.nifi.stateless.engine.StandardStatelessEngine.overrideParameters(StandardStatelessEngine.java:385)
        at 
org.apache.nifi.stateless.engine.StandardStatelessEngine.createFlow(StandardStatelessEngine.java:164)
        at 
org.apache.nifi.stateless.flow.StandardStatelessDataflowFactory.createDataflow(StandardStatelessDataflowFactory.java:201)
        at 
org.apache.nifi.stateless.bootstrap.StatelessBootstrap.createDataflow(StatelessBootstrap.java:60)
        at 
org.apache.nifi.stateless.bootstrap.RunStatelessFlow.createDataflow(RunStatelessFlow.java:97)
        at 
org.apache.nifi.stateless.bootstrap.RunStatelessFlow.main(RunStatelessFlow.java:48)Found
 1 deadlock. {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to