diff --git a/src/java/azkaban/execapp/FlowRunnerManager.java b/src/java/azkaban/execapp/FlowRunnerManager.java
index c45475f..127f3ff 100644
--- a/src/java/azkaban/execapp/FlowRunnerManager.java
+++ b/src/java/azkaban/execapp/FlowRunnerManager.java
@@ -136,7 +136,7 @@ public class FlowRunnerManager implements EventListener {
String fileName = new File(project.getAbsolutePath()).getName();
int projectId = Integer.parseInt(fileName.split("\\.")[0]);
int versionNum = Integer.parseInt(fileName.split("\\.")[1]);
- ProjectVersion version = new ProjectVersion(projectId, versionNum);
+ ProjectVersion version = new ProjectVersion(projectId, versionNum, project);
allProjects.put(new Pair<Integer, Integer>(projectId, versionNum), version);
}
catch (Exception e) {
@@ -223,6 +223,7 @@ public class FlowRunnerManager implements EventListener {
if (currentTime - OLD_PROJECT_DIR_INTERVAL_MS > lastOldProjectCleanTime) {
logger.info("Cleaning old projects");
cleanOlderProjects();
+
lastOldProjectCleanTime = currentTime;
}
@@ -324,6 +325,7 @@ public class FlowRunnerManager implements EventListener {
try {
logger.info("Removing old unused installed project " + version.getProjectId() + ":" + version.getVersion());
version.deleteDirectory();
+ installedProjects.remove(new Pair<Integer, Integer>(version.getProjectId(), version.getVersion()));
} catch (IOException e) {
e.printStackTrace();
}
diff --git a/src/java/azkaban/execapp/JobRunner.java b/src/java/azkaban/execapp/JobRunner.java
index 3c61f53..f49e144 100644
--- a/src/java/azkaban/execapp/JobRunner.java
+++ b/src/java/azkaban/execapp/JobRunner.java
@@ -279,9 +279,10 @@ public class JobRunner extends EventHandler implements Runnable {
try {
job.run();
} catch (Exception e) {
+ e.printStackTrace();
node.setStatus(Status.FAILED);
logError("Job run failed!");
- logError(e.getMessage());
+ logError(e.getMessage() + e.getCause());
return;
}
diff --git a/src/java/azkaban/execapp/ProjectVersion.java b/src/java/azkaban/execapp/ProjectVersion.java
index 7a9adac..18e6e58 100644
--- a/src/java/azkaban/execapp/ProjectVersion.java
+++ b/src/java/azkaban/execapp/ProjectVersion.java
@@ -23,6 +23,12 @@ public class ProjectVersion implements Comparable<ProjectVersion> {
this.projectId = projectId;
this.version = version;
}
+
+ public ProjectVersion(int projectId, int version, File installedDir) {
+ this.projectId = projectId;
+ this.version = version;
+ this.installedDir = installedDir;
+ }
public int getProjectId() {
return projectId;
@@ -77,6 +83,7 @@ public class ProjectVersion implements Comparable<ProjectVersion> {
}
public synchronized void deleteDirectory() throws IOException {
+ System.out.println("Deleting old unused project versin " + installedDir);
if (installedDir != null && installedDir.exists()) {
FileUtils.deleteDirectory(installedDir);
}