You are viewing a plain text version of this content. The canonical link for it is here.
Posted to common-commits@hadoop.apache.org by in...@apache.org on 2018/01/05 17:11:52 UTC

hadoop git commit: HDFS-12988. RBF: Mount table entries not properly updated in the local cache. Contributed by Inigo Goiri.

Repository: hadoop
Updated Branches:
  refs/heads/trunk 0c75d0634 -> 83b513ac6


HDFS-12988. RBF: Mount table entries not properly updated in the local cache. Contributed by Inigo Goiri.


Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo
Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/83b513ac
Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/83b513ac
Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/83b513ac

Branch: refs/heads/trunk
Commit: 83b513ac6d5448f3771b0b95f91e7aa7961ae2cc
Parents: 0c75d06
Author: Inigo Goiri <in...@apache.org>
Authored: Fri Jan 5 09:11:38 2018 -0800
Committer: Inigo Goiri <in...@apache.org>
Committed: Fri Jan 5 09:11:38 2018 -0800

----------------------------------------------------------------------
 .../federation/resolver/MountTableResolver.java |  4 ++-
 .../resolver/TestMountTableResolver.java        | 32 ++++++++++++++++++++
 2 files changed, 35 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/hadoop/blob/83b513ac/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
index 4457cba..24082d4 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/federation/resolver/MountTableResolver.java
@@ -267,7 +267,9 @@ public class MountTableResolver
           // Node exists, check for updates
           MountTable existingEntry = this.tree.get(srcPath);
           if (existingEntry != null && !existingEntry.equals(entry)) {
-            // Entry has changed
+            LOG.info("Entry has changed from \"{}\" to \"{}\"",
+                existingEntry, entry);
+            this.tree.put(srcPath, entry);
             invalidateLocationCache(srcPath);
             LOG.info("Updated mount point {} in resolver");
           }

http://git-wip-us.apache.org/repos/asf/hadoop/blob/83b513ac/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
----------------------------------------------------------------------
diff --git a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
index c92e92c..7a596c1 100644
--- a/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
+++ b/hadoop-hdfs-project/hadoop-hdfs/src/test/java/org/apache/hadoop/hdfs/server/federation/resolver/TestMountTableResolver.java
@@ -24,6 +24,8 @@ import static org.junit.Assert.fail;
 
 import java.io.IOException;
 import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -409,4 +411,34 @@ public class TestMountTableResolver {
     assertEquals(numRootTrees, mountTable.getMountPoints("/").size());
     assertEquals(100000, mountTable.getMounts("/").size());
   }
+
+  @Test
+  public void testUpdate() throws IOException {
+
+    // Add entry to update later
+    Map<String, String> map = getMountTableEntry("1", "/");
+    mountTable.addEntry(MountTable.newInstance("/testupdate", map));
+
+    MountTable entry = mountTable.getMountPoint("/testupdate");
+    List<RemoteLocation> dests = entry.getDestinations();
+    assertEquals(1, dests.size());
+    RemoteLocation dest = dests.get(0);
+    assertEquals("1", dest.getNameserviceId());
+
+    // Update entry
+    Collection<MountTable> entries = Collections.singletonList(
+        MountTable.newInstance("/testupdate", getMountTableEntry("2", "/")));
+    mountTable.refreshEntries(entries);
+
+    MountTable entry1 = mountTable.getMountPoint("/testupdate");
+    List<RemoteLocation> dests1 = entry1.getDestinations();
+    assertEquals(1, dests1.size());
+    RemoteLocation dest1 = dests1.get(0);
+    assertEquals("2", dest1.getNameserviceId());
+
+    // Remove the entry to test updates and check
+    mountTable.removeEntry("/testupdate");
+    MountTable entry2 = mountTable.getMountPoint("/testupdate");
+    assertNull(entry2);
+  }
 }
\ No newline at end of file


---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org