Uploaded image for project: 'Hadoop YARN'
  1. Hadoop YARN
  2. YARN-2608

FairScheduler: Potential deadlocks in loading alloc files and clock access

    XMLWordPrintableJSON

    Details

    • Type: Bug
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 2.6.0
    • Component/s: None
    • Labels:
      None
    • Hadoop Flags:
      Reviewed

      Description

      Two potential deadlocks exist inside the FairScheduler.
      1. AllocationFileLoaderService would reload the queue configuration, which calls FairScheduler.AllocationReloadListener.onReload() function. And require FairScheduler's lock;

        public void onReload(AllocationConfiguration queueInfo) {
            synchronized (FairScheduler.this) {
                ....
            }
        }
      

      after that, it would require the QueueManager's queues lock.

        private FSQueue getQueue(String name, boolean create, FSQueueType queueType) {
            name = ensureRootPrefix(name);
            synchronized (queues) {
                ....
            }
        }
      

      Another thread FairScheduler.assignToQueue may also need to create a new queue when a new job submitted. This thread would hold the QueueManager's queues lock firstly, and then would like to hold the FairScheduler's lock as it needs to call FairScheduler.getClock() function when creating a new FSLeafQueue. Deadlock may happen here.

      2. The AllocationFileLoaderService holds AllocationFileLoaderService's lock first, and then waits for FairScheduler's lock. Another thread (like AdminService.refreshQueues) may call FairScheduler's reinitialize function, which holds FairScheduler's lock first, and then waits for AllocationFileLoaderService's lock. Deadlock may happen here.

        Attachments

        1. YARN-2608-1.patch
          2 kB
          Wei Yan
        2. YARN-2608-2.patch
          2 kB
          Wei Yan
        3. YARN-2608-3.patch
          7 kB
          Wei Yan

          Activity

            People

            • Assignee:
              ywskycn Wei Yan
              Reporter:
              ywskycn Wei Yan
            • Votes:
              0 Vote for this issue
              Watchers:
              6 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: