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 bt...@apache.org on 2024/09/05 14:44:47 UTC
(hadoop) 01/01: Revert "YARN-11709. NodeManager should be shut down or blacklisted when it ca…"
This is an automated email from the ASF dual-hosted git repository.
bteke pushed a commit to branch revert-6960-YARN-11709
in repository https://gitbox.apache.org/repos/asf/hadoop.git
commit 564850189aefd9a4a115f32bdf37934d21d1c0a1
Author: Benjamin Teke <br...@users.noreply.github.com>
AuthorDate: Thu Sep 5 16:44:32 2024 +0200
Revert "YARN-11709. NodeManager should be shut down or blacklisted when it ca…"
This reverts commit f00094203bf40a8c3f2216cf22eaa5599e3b9b4d.
---
.../server/nodemanager/LinuxContainerExecutor.java | 6 ++--
.../TestLinuxContainerExecutorWithMocks.java | 35 ++--------------------
2 files changed, 5 insertions(+), 36 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/LinuxContainerExecutor.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java
index 19c06736035..19335045c86 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/LinuxContainerExecutor.java
@@ -451,10 +451,8 @@ public class LinuxContainerExecutor extends ContainerExecutor {
} catch (PrivilegedOperationException e) {
int exitCode = e.getExitCode();
- LOG.error("Unrecoverable issue occurred. Marking the node as unhealthy to prevent "
- + "further containers to get scheduled on the node and cause application failures. " +
- "Exit code from the container " + locId + "startLocalizer is : " + exitCode, e);
- nmContext.getNodeStatusUpdater().reportException(e);
+ LOG.warn("Exit code from container {} startLocalizer is : {}",
+ locId, exitCode, e);
throw new IOException("Application " + appId + " initialization failed" +
" (exitCode=" + exitCode + ") with output: " + e.getOutput(), e);
diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java
index 7d49cab4a86..3d9d33c5a10 100644
--- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java
+++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/TestLinuxContainerExecutorWithMocks.java
@@ -26,7 +26,6 @@ import static org.junit.Assert.assertTrue;
import static org.mockito.ArgumentMatchers.any;
import static org.mockito.ArgumentMatchers.anyBoolean;
import static org.mockito.Mockito.doAnswer;
-import static org.mockito.Mockito.doNothing;
import static org.mockito.Mockito.doThrow;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.spy;
@@ -38,7 +37,6 @@ import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.LineNumberReader;
-import java.lang.reflect.Field;
import java.net.InetSocketAddress;
import java.net.URI;
import java.net.URISyntaxException;
@@ -347,8 +345,7 @@ public class TestLinuxContainerExecutorWithMocks {
@Test
public void testContainerLaunchError()
- throws IOException, ContainerExecutionException, URISyntaxException, IllegalAccessException,
- NoSuchFieldException {
+ throws IOException, ContainerExecutionException, URISyntaxException {
final String[] expecetedMessage = {"badcommand", "Exit code: 24"};
final String[] executor = {
@@ -390,14 +387,6 @@ public class TestLinuxContainerExecutorWithMocks {
dirsHandler.init(conf);
mockExec.setConf(conf);
- //set the private nmContext field without initing the LinuxContainerExecutor
- NodeManager nodeManager = new NodeManager();
- NodeManager.NMContext nmContext =
- nodeManager.createNMContext(null, null, null, false, conf);
- Field lceNmContext = LinuxContainerExecutor.class.getDeclaredField("nmContext");
- lceNmContext.setAccessible(true);
- lceNmContext.set(mockExec, nmContext);
-
String appSubmitter = "nobody";
String cmd = String
.valueOf(PrivilegedOperation.RunAsUserCommand.LAUNCH_CONTAINER.
@@ -612,6 +601,8 @@ public class TestLinuxContainerExecutorWithMocks {
LinuxContainerRuntime runtime = new DefaultLinuxContainerRuntime(
spyPrivilegedExecutor);
runtime.initialize(conf, null);
+ mockExec = new LinuxContainerExecutor(runtime);
+ mockExec.setConf(conf);
LinuxContainerExecutor lce = new LinuxContainerExecutor(runtime) {
@Override
protected PrivilegedOperationExecutor getPrivilegedOperationExecutor() {
@@ -619,23 +610,6 @@ public class TestLinuxContainerExecutorWithMocks {
}
};
lce.setConf(conf);
-
- //set the private nmContext field without initing the LinuxContainerExecutor
- NodeManager nodeManager = new NodeManager();
- NodeManager.NMContext nmContext =
- nodeManager.createNMContext(null, null, null, false, conf);
- NodeManager.NMContext spyNmContext = spy(nmContext);
-
- //initialize a mock NodeStatusUpdater
- NodeStatusUpdaterImpl nodeStatusUpdater = mock(NodeStatusUpdaterImpl.class);
- nmContext.setNodeStatusUpdater(nodeStatusUpdater);
- //imitate a void method call on the NodeStatusUpdater when setting NM unhealthy.
- doNothing().when(nodeStatusUpdater).reportException(any());
-
- Field lceNmContext = LinuxContainerExecutor.class.getDeclaredField("nmContext");
- lceNmContext.setAccessible(true);
- lceNmContext.set(lce, nmContext);
-
InetSocketAddress address = InetSocketAddress.createUnresolved(
"localhost", 8040);
Path nmPrivateCTokensPath= new Path("file:///bin/nmPrivateCTokensPath");
@@ -698,9 +672,6 @@ public class TestLinuxContainerExecutorWithMocks {
assertTrue("Unexpected exception " + e,
e.getMessage().contains("exit code"));
}
-
- //verify that the NM was set unhealthy on PrivilegedOperationException
- verify(nodeStatusUpdater, times(1)).reportException(any());
}
@Test
---------------------------------------------------------------------
To unsubscribe, e-mail: common-commits-unsubscribe@hadoop.apache.org
For additional commands, e-mail: common-commits-help@hadoop.apache.org