Henry Robinson created KUDU-2041:
------------------------------------

             Summary: Connection negotiation may deadlock
                 Key: KUDU-2041
                 URL: https://issues.apache.org/jira/browse/KUDU-2041
             Project: Kudu
          Issue Type: Bug
            Reporter: Henry Robinson
            Assignee: Henry Robinson
            Priority: Critical


Connection establishment may deadlock. Both client and server negotiation tasks 
are blocking. Assume there is only one thread available for negotiation 
processing. If servers A and B try to connect to each other, and submit the 
client-side task to their threads first, the server-side task required to 
complete those tasks will be blocked behind the client tasks, and will never be 
executed - hence the client tasks will never complete.

This happens in practice on a 20-node cluster which tries to connect the 
complete graph of connections between nodes in a burst, with 4 threads 
available for negotiation. 

An easy fix is to partition the resources for server and client negotiations, 
by using separate thread pools.



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

Reply via email to