From owner-svn-ports-head@FreeBSD.ORG Mon Jan 5 22:49:43 2015 Return-Path: Delivered-To: svn-ports-head@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by hub.freebsd.org (Postfix) with ESMTPS id C6625E66; Mon, 5 Jan 2015 22:49:43 +0000 (UTC) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:1900:2254:2068::e6a:0]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id B072866007; Mon, 5 Jan 2015 22:49:43 +0000 (UTC) Received: from svn.freebsd.org ([127.0.1.70]) by svn.freebsd.org (8.14.9/8.14.9) with ESMTP id t05MnhQM091095; Mon, 5 Jan 2015 22:49:43 GMT (envelope-from demon@FreeBSD.org) Received: (from demon@localhost) by svn.freebsd.org (8.14.9/8.14.9/Submit) id t05MngcW091090; Mon, 5 Jan 2015 22:49:42 GMT (envelope-from demon@FreeBSD.org) Message-Id: <201501052249.t05MngcW091090@svn.freebsd.org> X-Authentication-Warning: svn.freebsd.org: demon set sender to demon@FreeBSD.org using -f From: Dmitry Sivachenko Date: Mon, 5 Jan 2015 22:49:42 +0000 (UTC) To: ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org Subject: svn commit: r376366 - in head/devel/hadoop2: . files X-SVN-Group: ports-head MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-BeenThere: svn-ports-head@freebsd.org X-Mailman-Version: 2.1.18-1 Precedence: list List-Id: SVN commit messages for the ports tree for head List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 05 Jan 2015 22:49:43 -0000 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() + "\""); + }