Uploaded image for project: 'Kudu'
  1. Kudu
  2. KUDU-2041

Connection negotiation may deadlock

    Details

    • Type: Bug
    • Status: Resolved
    • Priority: Critical
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.5.0
    • Component/s: None
    • Labels:
      None

      Description

      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.

        Attachments

          Activity

            People

            • Assignee:
              henryr Henry Robinson
              Reporter:
              henryr Henry Robinson
            • Votes:
              0 Vote for this issue
              Watchers:
              5 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: