private void waitForFetchToFinish() throws InterruptedException {
    synchronized (fetchInProgress) {
      while (fetchInProgress.get()) {
        // We don't want the fetches to block forever, for example if there are bugs
        // of missing notifications.
        fetchInProgress.wait(MAX_FETCH_TIMEOUT_MS);
      }
    }
  }
Attempts to fetch the cluster ID from the file system. If no attempt is already in progress,
synchronously fetches the cluster ID and sets it. If an attempt is already in progress, returns
right away and the caller is expected to wait for the fetch to finish.
@return true if the attempt is done, false if another thread is already fetching it.
hbase-server/src/main/java/org/apache/hadoop/hbase/master/CachedClusterId.java