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)