YARN-9595. FPGA plugin: NullPointerException in FpgaNodeResourceUpdateHandler.updateConfiguredResource(). Contributed by Peter Bacsko.
This commit is contained in:
parent
277e9a835b
commit
606061aa14
@ -124,6 +124,7 @@ public List<FpgaDevice> discover()
|
||||
|
||||
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 List<FpgaDevice> discover()
|
||||
.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 List<FpgaDevice> discover()
|
||||
YarnConfiguration.NM_FPGA_ALLOWED_DEVICES + ":\"" + allowed + "\"");
|
||||
}
|
||||
|
||||
currentFpgaInfo = ImmutableList.copyOf(list);
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
|
@ -288,6 +288,39 @@ public void testDiscoveryWhenExternalScriptCannotBeExecuted()
|
||||
}
|
||||
}
|
||||
|
||||
@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("");
|
||||
|
Loading…
Reference in New Issue
Block a user