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:46 UTC

(hadoop) branch revert-6960-YARN-11709 created (now 564850189ae)

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

bteke pushed a change to branch revert-6960-YARN-11709
in repository https://gitbox.apache.org/repos/asf/hadoop.git


      at 564850189ae Revert "YARN-11709. NodeManager should be shut down or blacklisted when it ca…"

This branch includes the following new commits:

     new 564850189ae Revert "YARN-11709. NodeManager should be shut down or blacklisted when it ca…"

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



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


(hadoop) 01/01: Revert "YARN-11709. NodeManager should be shut down or blacklisted when it ca…"

Posted by bt...@apache.org.
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