azkaban-aplcache
Changes
build.gradle 16(+16 -0)
Details
diff --git a/azkaban-common/src/main/c/execute-as-user.c b/azkaban-common/src/main/c/execute-as-user.c
index 117fd88..f27d5a1 100644
--- a/azkaban-common/src/main/c/execute-as-user.c
+++ b/azkaban-common/src/main/c/execute-as-user.c
@@ -76,7 +76,7 @@ int change_user(uid_t user, gid_t group) {
int main(int argc, char **argv){
-// set up the logging stream
+ // set up the logging stream
if (!LOGFILE){
LOGFILE=stdout;
}
diff --git a/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java b/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java
index 5532ac1..a6e4f30 100644
--- a/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java
+++ b/azkaban-common/src/main/java/azkaban/jobExecutor/ProcessJob.java
@@ -135,7 +135,7 @@ public class ProcessJob extends AbstractProcessJob {
builder =
new AzkabanProcessBuilder(partitionCommandLine(command))
.setEnv(envVars).setWorkingDir(getCwd()).setLogger(getLog())
- .setExecuteAsUser().setExecuteAsUserBinaryPath(executeAsUserBinaryPath)
+ .enableExecuteAsUser().setExecuteAsUserBinaryPath(executeAsUserBinaryPath)
.setEffectiveUser(effectiveUser);
} else {
info("Command: " + command);
diff --git a/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java b/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java
index cbe6ec3..9ad88d3 100644
--- a/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java
+++ b/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcess.java
@@ -40,6 +40,9 @@ import com.google.common.base.Joiner;
* loggers.
*/
public class AzkabanProcess {
+
+ public static String KILL_COMMAND = "kill";
+
private final String workingDir;
private final List<String> cmd;
private final Map<String, String> env;
@@ -120,7 +123,12 @@ public class AzkabanProcess {
errorGobbler.awaitCompletion(5000);
if (exitCode != 0) {
- throw new ProcessFailureException(exitCode, errorGobbler.getRecentLog());
+ String output =
+ new StringBuilder().append("Stdout:\n")
+ .append(outputGobbler.getRecentLog()).append("\n\n")
+ .append("Stderr:\n").append(errorGobbler.getRecentLog())
+ .append("\n").toString();
+ throw new ProcessFailureException(exitCode, output);
}
} finally {
@@ -172,11 +180,12 @@ public class AzkabanProcess {
try {
if (isExecuteAsUser) {
String cmd =
- String.format("%s %s kill %d", executeAsUserBinary,
- effectiveUser, processId);
+ String.format("%s %s %s %d", executeAsUserBinary,
+ effectiveUser, KILL_COMMAND, processId);
Runtime.getRuntime().exec(cmd);
} else {
- Runtime.getRuntime().exec("kill " + processId);
+ String cmd = String.format("%s %d", KILL_COMMAND, processId);
+ Runtime.getRuntime().exec(cmd);
}
return completeLatch.await(time, unit);
} catch (IOException e) {
@@ -197,11 +206,12 @@ public class AzkabanProcess {
try {
if (isExecuteAsUser) {
String cmd =
- String.format("%s %s kill -9 %d", executeAsUserBinary,
- effectiveUser, processId);
+ String.format("%s %s %s -9 %d", executeAsUserBinary,
+ effectiveUser, KILL_COMMAND, processId);
Runtime.getRuntime().exec(cmd);
} else {
- Runtime.getRuntime().exec("kill -9 " + processId);
+ String cmd = String.format("%s -9 %d", KILL_COMMAND, processId);
+ Runtime.getRuntime().exec(cmd);
}
} catch (IOException e) {
logger.error("Kill attempt failed.", e);
diff --git a/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcessBuilder.java b/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcessBuilder.java
index 91561bc..9e2c2f7 100644
--- a/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcessBuilder.java
+++ b/azkaban-common/src/main/java/azkaban/jobExecutor/utils/process/AzkabanProcessBuilder.java
@@ -125,7 +125,7 @@ public class AzkabanProcessBuilder {
+ env + ", cwd = " + workingDir + ")";
}
- public AzkabanProcessBuilder setExecuteAsUser() {
+ public AzkabanProcessBuilder enableExecuteAsUser() {
this.isExecuteAsUser = true;
return this;
}
diff --git a/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java b/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java
index ccb74c1..f1cf351 100644
--- a/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java
+++ b/azkaban-common/src/main/java/azkaban/jobtype/JobTypeManager.java
@@ -355,7 +355,11 @@ public class JobTypeManager {
if (pluginLoadProps != null) {
pluginLoadProps = PropsUtils.resolveProps(pluginLoadProps);
} else {
+ // pluginSet.getCommonPluginLoadProps() will return null if there is no plugins directory.
+ // hence assigning default Props() if that's the case
pluginLoadProps = pluginSet.getCommonPluginLoadProps();
+ if(pluginJobProps == null)
+ pluginJobProps = new Props();
}
job =
build.gradle 16(+16 -0)
diff --git a/build.gradle b/build.gradle
index 332e717..51e4a15 100644
--- a/build.gradle
+++ b/build.gradle
@@ -92,6 +92,22 @@ project(':azkaban-common') {
}
}
+ apply plugin: 'c'
+ model {
+ components {
+ main(NativeExecutableSpec) {
+ sources {
+ c {
+ source {
+ srcDir "src/main"
+ include "**/*.c"
+ }
+ }
+ }
+ }
+ }
+ }
+
dependencies {
compile('com.google.guava:guava:13.0.1')
compile('com.h2database:h2:1.3.170')