svn commit: r376366 - in head/devel/hadoop2: . files
Dmitry Sivachenko
demon at FreeBSD.org
Mon Jan 5 22:49:43 UTC 2015
Author: demon
Date: Mon Jan 5 22:49:41 2015
New Revision: 376366
URL: https://svnweb.freebsd.org/changeset/ports/376366
QAT: https://qat.redports.org/buildarchive/r376366/
Log:
Use ssid instead of Linux setsid(1): without it if task process spawns a
subprocess (common case if task process is a shell script) and job is being
killed with mapred job -kill <...>, then subprocess will not die and remain
running orphaned.
Added:
head/devel/hadoop2/files/patch-hadoop-common-project-hadoop-common-src-main-java-org-apache-hadoop-util-Shell.java (contents, props changed)
head/devel/hadoop2/files/patch-hadoop-mapreduce-client-core-src-main-java-org-apache-hadoop-mapred-TaskLog.java (contents, props changed)
head/devel/hadoop2/files/patch-hadoop-mapreduce-client-core-src-main-java-org-apache-hadoop-mapreduce-util-ProcessTree.java (contents, props changed)
head/devel/hadoop2/files/patch-src-main-java-org-apache-hadoop-yarn-server-nodemanager-DefaultContainerExecutor.java (contents, props changed)
Modified:
head/devel/hadoop2/Makefile
Modified: head/devel/hadoop2/Makefile
==============================================================================
--- head/devel/hadoop2/Makefile Mon Jan 5 22:36:15 2015 (r376365)
+++ head/devel/hadoop2/Makefile Mon Jan 5 22:49:41 2015 (r376366)
@@ -7,7 +7,7 @@
# no problems encountered so far. Thanks.
PORTNAME= hadoop
PORTVERSION= 2.4.1
-PORTREVISION= 4
+PORTREVISION= 5
CATEGORIES= devel java
MASTER_SITES= ${MASTER_SITE_APACHE} \
LOCAL/demon/ \
@@ -28,7 +28,8 @@ BUILD_DEPENDS= ${LOCALBASE}/share/java/m
cmake:${PORTSDIR}/devel/cmake \
${LOCALBASE}/protobuf25/bin/protoc:${PORTSDIR}/devel/protobuf25
LIB_DEPENDS= libsnappy.so:${PORTSDIR}/archivers/snappy
-RUN_DEPENDS= bash:${PORTSDIR}/shells/bash
+RUN_DEPENDS= bash:${PORTSDIR}/shells/bash \
+ ssid:${PORTSDIR}/sysutils/ssid
CONFLICTS_INSTALL= apache-hadoop-1*
Added: head/devel/hadoop2/files/patch-hadoop-common-project-hadoop-common-src-main-java-org-apache-hadoop-util-Shell.java
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/hadoop2/files/patch-hadoop-common-project-hadoop-common-src-main-java-org-apache-hadoop-util-Shell.java Mon Jan 5 22:49:41 2015 (r376366)
@@ -0,0 +1,21 @@
+--- ./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java.orig 2014-06-21 09:40:07.000000000 +0400
++++ ./hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/Shell.java 2015-01-06 01:21:22.000000000 +0300
+@@ -348,15 +348,15 @@ abstract public class Shell {
+ ShellCommandExecutor shexec = null;
+ boolean setsidSupported = true;
+ try {
+- String[] args = {"setsid", "bash", "-c", "echo $$"};
++ String[] args = {"ssid", "bash", "-c", "echo $$"};
+ shexec = new ShellCommandExecutor(args);
+ shexec.execute();
+ } catch (IOException ioe) {
+- LOG.debug("setsid is not available on this machine. So not using it.");
++ LOG.debug("ssid is not available on this machine. So not using it.");
+ setsidSupported = false;
+ } finally { // handle the exit code
+ if (LOG.isDebugEnabled()) {
+- LOG.debug("setsid exited with exit code "
++ LOG.debug("ssid exited with exit code "
+ + (shexec != null ? shexec.getExitCode() : "(null executor)"));
+ }
+ }
Added: head/devel/hadoop2/files/patch-hadoop-mapreduce-client-core-src-main-java-org-apache-hadoop-mapred-TaskLog.java
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/hadoop2/files/patch-hadoop-mapreduce-client-core-src-main-java-org-apache-hadoop-mapred-TaskLog.java Mon Jan 5 22:49:41 2015 (r376366)
@@ -0,0 +1,11 @@
+--- ./hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java.orig 2015-01-06 01:14:31.000000000 +0300
++++ ./hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapred/TaskLog.java 2015-01-06 01:14:47.000000000 +0300
+@@ -538,7 +538,7 @@ public class TaskLog {
+ mergedCmd.append("(");
+ } else if(ProcessTree.isSetsidAvailable && useSetsid &&
+ !Shell.WINDOWS) {
+- mergedCmd.append("exec setsid ");
++ mergedCmd.append("exec ssid ");
+ } else {
+ mergedCmd.append("exec ");
+ }
Added: head/devel/hadoop2/files/patch-hadoop-mapreduce-client-core-src-main-java-org-apache-hadoop-mapreduce-util-ProcessTree.java
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/hadoop2/files/patch-hadoop-mapreduce-client-core-src-main-java-org-apache-hadoop-mapreduce-util-ProcessTree.java Mon Jan 5 22:49:41 2015 (r376366)
@@ -0,0 +1,20 @@
+--- ./hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/util/ProcessTree.java.orig 2015-01-06 01:16:49.000000000 +0300
++++ ./hadoop-mapreduce-project/hadoop-mapreduce-client/hadoop-mapreduce-client-core/src/main/java/org/apache/hadoop/mapreduce/util/ProcessTree.java 2015-01-06 01:17:24.000000000 +0300
+@@ -54,14 +54,14 @@ public class ProcessTree {
+ ShellCommandExecutor shexec = null;
+ boolean setsidSupported = true;
+ try {
+- String[] args = {"setsid", "bash", "-c", "echo $$"};
++ String[] args = {"ssid", "bash", "-c", "echo $$"};
+ shexec = new ShellCommandExecutor(args);
+ shexec.execute();
+ } catch (IOException ioe) {
+- LOG.warn("setsid is not available on this machine. So not using it.");
++ LOG.warn("ssid is not available on this machine. So not using it.");
+ setsidSupported = false;
+ } finally { // handle the exit code
+- LOG.info("setsid exited with exit code " + shexec.getExitCode());
++ LOG.info("ssid exited with exit code " + shexec.getExitCode());
+ }
+ return setsidSupported;
+ }
Added: head/devel/hadoop2/files/patch-src-main-java-org-apache-hadoop-yarn-server-nodemanager-DefaultContainerExecutor.java
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ head/devel/hadoop2/files/patch-src-main-java-org-apache-hadoop-yarn-server-nodemanager-DefaultContainerExecutor.java Mon Jan 5 22:49:41 2015 (r376366)
@@ -0,0 +1,11 @@
+--- ./hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java.orig 2015-01-06 01:28:53.000000000 +0300
++++ ./hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/src/main/java/org/apache/hadoop/yarn/server/nodemanager/DefaultContainerExecutor.java 2015-01-06 01:29:32.000000000 +0300
+@@ -277,7 +277,7 @@ public class DefaultContainerExecutor ex
+ pout.println();
+ pout.println("echo $$ > " + pidFile.toString() + ".tmp");
+ pout.println("/bin/mv -f " + pidFile.toString() + ".tmp " + pidFile);
+- String exec = Shell.isSetsidAvailable? "exec setsid" : "exec";
++ String exec = Shell.isSetsidAvailable? "exec ssid" : "exec";
+ pout.println(exec + " /bin/bash \"" +
+ launchDst.toUri().getPath().toString() + "\"");
+ }
More information about the svn-ports-head
mailing list