YARN-10593. Fix incorrect string comparison in GpuDiscoverer. Contributed by Peter Bacsko
This commit is contained in:
parent
798df6d699
commit
cacc870389
|
@ -284,11 +284,12 @@ public class GpuDiscoverer extends Configured {
|
|||
binaryPath = configuredBinaryFile;
|
||||
// If path exists but file name is incorrect don't execute the file
|
||||
String fileName = binaryPath.getName();
|
||||
if (DEFAULT_BINARY_NAME.equals(fileName)) {
|
||||
if (!DEFAULT_BINARY_NAME.equals(fileName)) {
|
||||
String msg = String.format("Please check the configuration value of"
|
||||
+" %s. It should point to an %s binary.",
|
||||
+" %s. It should point to an %s binary, which is now %s",
|
||||
YarnConfiguration.NM_GPU_PATH_TO_EXEC,
|
||||
DEFAULT_BINARY_NAME);
|
||||
DEFAULT_BINARY_NAME,
|
||||
fileName);
|
||||
throwIfNecessary(new YarnException(msg), config);
|
||||
LOG.warn(msg);
|
||||
}
|
||||
|
|
|
@ -79,12 +79,23 @@ public class TestGpuDiscoverer {
|
|||
}
|
||||
|
||||
private File setupFakeBinary(Configuration conf) {
|
||||
return setupFakeBinary(conf,
|
||||
GpuDiscoverer.DEFAULT_BINARY_NAME, false);
|
||||
}
|
||||
|
||||
private File setupFakeBinary(Configuration conf, String filename,
|
||||
boolean useFullPath) {
|
||||
File fakeBinary;
|
||||
try {
|
||||
fakeBinary = new File(getTestParentFolder(),
|
||||
GpuDiscoverer.DEFAULT_BINARY_NAME);
|
||||
filename);
|
||||
touchFile(fakeBinary);
|
||||
conf.set(YarnConfiguration.NM_GPU_PATH_TO_EXEC, getTestParentFolder());
|
||||
if (useFullPath) {
|
||||
conf.set(YarnConfiguration.NM_GPU_PATH_TO_EXEC,
|
||||
fakeBinary.getAbsolutePath());
|
||||
} else {
|
||||
conf.set(YarnConfiguration.NM_GPU_PATH_TO_EXEC, getTestParentFolder());
|
||||
}
|
||||
} catch (Exception e) {
|
||||
throw new RuntimeException("Failed to init fake binary", e);
|
||||
}
|
||||
|
@ -513,4 +524,18 @@ public class TestGpuDiscoverer {
|
|||
|
||||
verify(gpuSpy, never()).getGpuDeviceInformation();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBinaryIsNotNvidiaSmi() throws YarnException {
|
||||
exception.expect(YarnException.class);
|
||||
exception.expectMessage(String.format(
|
||||
"It should point to an %s binary, which is now %s",
|
||||
"nvidia-smi", "badfile"));
|
||||
|
||||
Configuration conf = new Configuration(false);
|
||||
setupFakeBinary(conf, "badfile", true);
|
||||
|
||||
GpuDiscoverer plugin = new GpuDiscoverer();
|
||||
plugin.initialize(conf, binaryHelper);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue