Chen Zhang created HDFS-14756:
---------------------------------

             Summary: RBF: getQuotaUsage may ignore some folders
                 Key: HDFS-14756
                 URL: https://issues.apache.org/jira/browse/HDFS-14756
             Project: Hadoop HDFS
          Issue Type: Sub-task
            Reporter: Chen Zhang
            Assignee: Chen Zhang


{{getValidQuotaLocations}} want to filter duplicate subfolders, but it used 
wrong method to determine the parent folder. In this logic, if we have 2 
mountpoint like /miui and /miuiads, then /miuiads will be ignored.
{code:java}
private List<RemoteLocation> getValidQuotaLocations(String path)
    throws IOException {
  final List<RemoteLocation> locations = getQuotaRemoteLocations(path);

  // NameService -> Locations
  ListMultimap<String, RemoteLocation> validLocations =
      ArrayListMultimap.create();

  for (RemoteLocation loc : locations) {
    final String nsId = loc.getNameserviceId();
    final Collection<RemoteLocation> dests = validLocations.get(nsId);

    // Ensure the paths in the same nameservice is different.
    // Do not include parent-child paths.
    boolean isChildPath = false;

    for (RemoteLocation d : dests) {
      if (StringUtils.startsWith(loc.getDest(), d.getDest())) {
        isChildPath = true;
        break;
      }
    }

    if (!isChildPath) {
      validLocations.put(nsId, loc);
    }
  }

  return Collections
      .unmodifiableList(new ArrayList<>(validLocations.values()));
}
{code}



--
This message was sent by Atlassian Jira
(v8.3.2#803003)

---------------------------------------------------------------------
To unsubscribe, e-mail: hdfs-dev-unsubscr...@hadoop.apache.org
For additional commands, e-mail: hdfs-dev-h...@hadoop.apache.org

Reply via email to