YARN-9072. Send exit command to terminate docker exec on connection close. Contributed by Eric Yang
Project: http://git-wip-us.apache.org/repos/asf/hadoop/repo Commit: http://git-wip-us.apache.org/repos/asf/hadoop/commit/c5c73182 Tree: http://git-wip-us.apache.org/repos/asf/hadoop/tree/c5c73182 Diff: http://git-wip-us.apache.org/repos/asf/hadoop/diff/c5c73182 Branch: refs/heads/HDFS-12943 Commit: c5c73182e5adab2299bfb27886bfd3ecc229009c Parents: 99b5061 Author: Billie Rinaldi <[email protected]> Authored: Tue Dec 18 08:43:09 2018 -0800 Committer: Billie Rinaldi <[email protected]> Committed: Tue Dec 18 10:06:33 2018 -0800 ---------------------------------------------------------------------- .../yarn/server/nodemanager/webapp/ContainerShellWebSocket.java | 4 ++++ .../hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java | 2 +- 2 files changed, 5 insertions(+), 1 deletion(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5c73182/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java index 2fc1d16..ade1211 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/webapp/ContainerShellWebSocket.java @@ -113,6 +113,7 @@ public class ContainerShellWebSocket { .fromString(cId)); if (!checkAuthorization(session, container)) { session.close(1008, "Forbidden"); + return; } LOG.info(session.getRemoteAddress().getHostString() + " connected!"); LOG.info( @@ -135,6 +136,9 @@ public class ContainerShellWebSocket { public void onClose(Session session, int status, String reason) { try { LOG.info(session.getRemoteAddress().getHostString() + " closed!"); + String exit = "exit\r\n"; + pair.out.write(exit.getBytes(Charset.forName("UTF-8"))); + pair.out.flush(); pair.in.close(); pair.out.close(); } catch (IOException e) { http://git-wip-us.apache.org/repos/asf/hadoop/blob/c5c73182/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java ---------------------------------------------------------------------- diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java index 8589b94..ec7d62c 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/test/java/org/apache/hadoop/yarn/server/nodemanager/webapp/TestNMWebTerminal.java @@ -48,7 +48,7 @@ import com.sun.jersey.api.client.WebResource.Builder; public class TestNMWebTerminal { private static final File TESTROOTDIR = new File("target", TestNMWebServer.class.getSimpleName()); - private static File TESTLOGDIR = new File("target", + private static final File TESTLOGDIR = new File("target", TestNMWebServer.class.getSimpleName() + "LogDir"); private NodeHealthCheckerService healthChecker; private WebServer server; --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
