HDFS-11883: [SPS] : Handle NPE in BlockStorageMovementTracker when dropSPSWork() called. Contributed by Surendra Singh Lilhore.
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/dacec33f Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/dacec33f Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/dacec33f Branch: refs/heads/HDFS-10285 Commit: dacec33faf46552295250c2873f8b5099051815a Parents: a61e1f3 Author: Uma Maheswara Rao G <uma.ganguma...@intel.com> Authored: Tue May 30 18:12:17 2017 -0700 Committer: Rakesh Radhakrishnan <rake...@apache.org> Committed: Thu Jul 12 17:00:41 2018 +0530 ---------------------------------------------------------------------- .../hdfs/server/datanode/BlockStorageMovementTracker.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/dacec33f/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockStorageMovementTracker.java ---------------------------------------------------------------------- diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockStorageMovementTracker.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockStorageMovementTracker.java index 99858bc..c7e952b 100644 --- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockStorageMovementTracker.java +++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/BlockStorageMovementTracker.java @@ -88,13 +88,17 @@ public class BlockStorageMovementTracker implements Runnable { long trackId = result.getTrackId(); List<Future<BlockMovementResult>> blocksMoving = moverTaskFutures .get(trackId); + if (blocksMoving == null) { + LOG.warn("Future task doesn't exist for trackId " + trackId); + continue; + } blocksMoving.remove(future); List<BlockMovementResult> resultPerTrackIdList = addMovementResultToTrackIdList(result); // Completed all the scheduled blocks movement under this 'trackId'. - if (blocksMoving.isEmpty()) { + if (blocksMoving.isEmpty() || moverTaskFutures.get(trackId) == null) { synchronized (moverTaskFutures) { moverTaskFutures.remove(trackId); } --------------------------------------------------------------------- To unsubscribe, e-mail: common-commits-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-commits-h...@hadoop.apache.org