Mark Payne created NIFI-9217:
--------------------------------
Summary: Possible deadlock when node is disconnected
Key: NIFI-9217
URL: https://issues.apache.org/jira/browse/NIFI-9217
Project: Apache NiFi
Issue Type: Bug
Components: Core Framework
Reporter: Mark Payne
Assignee: Mark Payne
When offloading a node, I encountered a deadlock. Grabbing a thread dump shows
the following two threads are in a deadlock:
{code}
"Disconnect from Cluster" Id=167 BLOCKED on
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$ElectionListener@1f9bfb51
** DEADLOCKED THREAD ** ** MONITOR-DEADLOCKED THREAD **
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$ElectionListener.setLeader(CuratorLeaderElectionManager.java:530)
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$ElectionListener.disable(CuratorLeaderElectionManager.java:497)
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager.unregister(CuratorLeaderElectionManager.java:182)
- waiting on
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager@7aa4e8dc
at
org.apache.nifi.controller.FlowController.onClusterDisconnect(FlowController.java:2456)
at
org.apache.nifi.controller.FlowController.setClustered(FlowController.java:2434)
at
org.apache.nifi.controller.StandardFlowService.disconnect(StandardFlowService.java:771)
at
org.apache.nifi.controller.StandardFlowService.handleDisconnectionRequest(StandardFlowService.java:752)
at
org.apache.nifi.controller.StandardFlowService.access$400(StandardFlowService.java:112)
at
org.apache.nifi.controller.StandardFlowService$3.run(StandardFlowService.java:425)
at java.lang.Thread.run(Thread.java:748)
Number of Locked Synchronizers: 2
- java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@3d3a1057
- java.util.concurrent.locks.ReentrantReadWriteLock$NonfairSync@3d3cb514
"Process Cluster Protocol Request-3" Id=165 BLOCKED on
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager@7aa4e8dc
** DEADLOCKED THREAD ** ** MONITOR-DEADLOCKED THREAD **
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager.registerPollTime(CuratorLeaderElectionManager.java:304)
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager.getLeader(CuratorLeaderElectionManager.java:293)
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$ElectionListener.verifyLeader(CuratorLeaderElectionManager.java:556)
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$ElectionListener.isLeader(CuratorLeaderElectionManager.java:510)
- waiting on
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$ElectionListener@1f9bfb51
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager$LeaderRole.isLeader(CuratorLeaderElectionManager.java:451)
at
org.apache.nifi.controller.leader.election.CuratorLeaderElectionManager.isLeader(CuratorLeaderElectionManager.java:261)
at
org.apache.nifi.cluster.coordination.node.NodeClusterCoordinator.isActiveClusterCoordinator(NodeClusterCoordinator.java:823)
at
org.apache.nifi.cluster.coordination.node.NodeClusterCoordinator.handleNodeStatusChange(NodeClusterCoordinator.java:1168)
at
org.apache.nifi.cluster.coordination.node.NodeClusterCoordinator.handle(NodeClusterCoordinator.java:1097)
at
org.apache.nifi.cluster.protocol.impl.SocketProtocolListener.dispatchRequest(SocketProtocolListener.java:176)
at
org.apache.nifi.io.socket.SocketListener$2$1.run(SocketListener.java:131)
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)
Number of Locked Synchronizers: 1
- java.util.concurrent.ThreadPoolExecutor$Worker@c4ecdba
{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)