Переглянути джерело

HDFS-11966. [SPS] Correct the log in BlockStorageMovementAttemptedItems#blockStorageMovementResultCheck. Contributed by Surendra Singh Lilhore.

Rakesh Radhakrishnan 8 роки тому
батько
коміт
46f7523eb8

+ 20 - 19
hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/namenode/BlockStorageMovementAttemptedItems.java

@@ -296,19 +296,17 @@ public class BlockStorageMovementAttemptedItems {
             .next();
         synchronized (storageMovementAttemptedItems) {
           Status status = storageMovementAttemptedResult.getStatus();
+          long trackId = storageMovementAttemptedResult.getTrackId();
           ItemInfo itemInfo;
           switch (status) {
           case FAILURE:
-            blockStorageMovementNeeded
-                .add(storageMovementAttemptedResult.getTrackId());
+            blockStorageMovementNeeded.add(trackId);
             LOG.warn("Blocks storage movement results for the tracking id: {}"
                 + " is reported from co-ordinating datanode, but result"
-                + " status is FAILURE. So, added for retry",
-                storageMovementAttemptedResult.getTrackId());
+                + " status is FAILURE. So, added for retry", trackId);
             break;
           case SUCCESS:
-            itemInfo = storageMovementAttemptedItems
-                .get(storageMovementAttemptedResult.getTrackId());
+            itemInfo = storageMovementAttemptedItems.get(trackId);
 
             // ItemInfo could be null. One case is, before the blocks movements
             // result arrives the attempted trackID became timed out and then
@@ -318,20 +316,23 @@ public class BlockStorageMovementAttemptedItems {
             // following condition. If all the block locations under the trackID
             // are attempted and failed to find matching target nodes to satisfy
             // storage policy in previous SPS iteration.
-            if (itemInfo != null
-                && !itemInfo.isAllBlockLocsAttemptedToSatisfy()) {
-              blockStorageMovementNeeded
-                  .add(storageMovementAttemptedResult.getTrackId());
-              LOG.warn("Blocks storage movement is SUCCESS for the track id: {}"
-                  + " reported from co-ordinating datanode. But adding trackID"
-                  + " back to retry queue as some of the blocks couldn't find"
-                  + " matching target nodes in previous SPS iteration.",
-                  storageMovementAttemptedResult.getTrackId());
+            String msg = "Blocks storage movement is SUCCESS for the track id: "
+                + trackId + " reported from co-ordinating datanode.";
+            if (itemInfo != null) {
+              if (!itemInfo.isAllBlockLocsAttemptedToSatisfy()) {
+                blockStorageMovementNeeded.add(trackId);
+                LOG.warn("{} But adding trackID back to retry queue as some of"
+                    + " the blocks couldn't find matching target nodes in"
+                    + " previous SPS iteration.", msg);
+              } else {
+                LOG.info(msg);
+                // Remove xattr for the track id.
+                this.sps.postBlkStorageMovementCleanup(
+                    storageMovementAttemptedResult.getTrackId());
+              }
             } else {
-              LOG.info("Blocks storage movement is SUCCESS for the track id: {}"
-                  + " reported from co-ordinating datanode. But the trackID "
-                  + "doesn't exists in storageMovementAttemptedItems list",
-                  storageMovementAttemptedResult.getTrackId());
+              LOG.info("{} But the trackID doesn't exists in "
+                  + "storageMovementAttemptedItems list", msg);
               // Remove xattr for the track id.
               this.sps.postBlkStorageMovementCleanup(
                   storageMovementAttemptedResult.getTrackId());