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 zt...@apache.org on 2019/06/04 01:59:33 UTC

[hadoop] branch trunk updated: YARN-9595. FPGA plugin: NullPointerException in FpgaNodeResourceUpdateHandler.updateConfiguredResource(). Contributed by Peter Bacsko.

This is an automated email from the ASF dual-hosted git repository.

ztang pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/hadoop.git


The following commit(s) were added to refs/heads/trunk by this push:
     new 606061a  YARN-9595. FPGA plugin: NullPointerException in FpgaNodeResourceUpdateHandler.updateConfiguredResource(). Contributed by Peter Bacsko.
606061a is described below

commit 606061aa147dc6d619d6240b7ea31d8f8f220e5d
Author: Zhankun Tang <zt...@apache.org>
AuthorDate: Tue Jun 4 09:56:59 2019 +0800

    YARN-9595. FPGA plugin: NullPointerException in FpgaNodeResourceUpdateHandler.updateConfiguredResource(). Contributed by Peter Bacsko.
---
 .../resourceplugin/fpga/FpgaDiscoverer.java        |  5 ++--
 .../resourceplugin/fpga/TestFpgaDiscoverer.java    | 33 ++++++++++++++++++++++
 2 files changed, 36 insertions(+), 2 deletions(-)

diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/FpgaDiscoverer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/FpgaDiscoverer.java
index 185effa..180a011 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/FpgaDiscoverer.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/FpgaDiscoverer.java
@@ -124,6 +124,7 @@ public class FpgaDiscoverer {
 
     if (allowed == null || allowed.equalsIgnoreCase(
         YarnConfiguration.AUTOMATICALLY_DISCOVER_GPU_DEVICES)) {
+      currentFpgaInfo = ImmutableList.copyOf(list);
       return list;
     } else if (allowed.matches("(\\d,)*\\d")){
       Set<String> minors = Sets.newHashSet(allowed.split(","));
@@ -134,6 +135,8 @@ public class FpgaDiscoverer {
         .filter(dev -> minors.contains(String.valueOf(dev.getMinor())))
         .collect(Collectors.toList());
 
+      currentFpgaInfo = ImmutableList.copyOf(list);
+
       // if the count of user configured is still larger than actual
       if (list.size() != minors.size()) {
         LOG.warn("We continue although there're mistakes in user's configuration " +
@@ -145,8 +148,6 @@ public class FpgaDiscoverer {
           YarnConfiguration.NM_FPGA_ALLOWED_DEVICES + ":\"" + allowed + "\"");
     }
 
-    currentFpgaInfo = ImmutableList.copyOf(list);
-
     return list;
   }
 
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/TestFpgaDiscoverer.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/TestFpgaDiscoverer.java
index 92e9db2..6f570c6 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/TestFpgaDiscoverer.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/containermanager/resourceplugin/fpga/TestFpgaDiscoverer.java
@@ -288,6 +288,39 @@ public class TestFpgaDiscoverer {
     }
   }
 
+  @Test
+  public void testCurrentFpgaInfoWhenAllDevicesAreAllowed()
+      throws YarnException {
+    conf.set(YarnConfiguration.NM_FPGA_AVAILABLE_DEVICES,
+        "acl0/243:0,acl1/244:1");
+
+    fpgaDiscoverer.initialize(conf);
+    List<FpgaDevice> devices = fpgaDiscoverer.discover();
+    List<FpgaDevice> currentFpgaInfo = fpgaDiscoverer.getCurrentFpgaInfo();
+
+    assertEquals("Devices", devices, currentFpgaInfo);
+  }
+
+  @Test
+  public void testCurrentFpgaInfoWhenAllowedDevicesDefined()
+      throws YarnException {
+    conf.set(YarnConfiguration.NM_FPGA_AVAILABLE_DEVICES,
+        "acl0/243:0,acl1/244:1");
+    conf.set(YarnConfiguration.NM_FPGA_ALLOWED_DEVICES, "0");
+
+    fpgaDiscoverer.initialize(conf);
+    List<FpgaDevice> devices = fpgaDiscoverer.discover();
+    List<FpgaDevice> currentFpgaInfo = fpgaDiscoverer.getCurrentFpgaInfo();
+
+    assertEquals("Devices", devices, currentFpgaInfo);
+    assertEquals("List of devices", 1, currentFpgaInfo.size());
+
+    FpgaDevice device = currentFpgaInfo.get(0);
+    assertEquals("Device id", "acl0", device.getAliasDevName());
+    assertEquals("Minor number", 0, device.getMinor());
+    assertEquals("Major", 243, device.getMajor());
+  }
+
   private IntelFpgaOpenclPlugin.InnerShellExecutor mockPuginShell() {
     IntelFpgaOpenclPlugin.InnerShellExecutor shell = mock(IntelFpgaOpenclPlugin.InnerShellExecutor.class);
     when(shell.runDiagnose(anyString(),anyInt())).thenReturn("");


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