Skip to content

Commit 5ce3f8c

Browse files
committed
Fix task instance working directory not been cleaned up
1 parent 627c76b commit 5ce3f8c

File tree

5 files changed

+10
-43
lines changed

5 files changed

+10
-43
lines changed

dolphinscheduler-common/src/main/java/org/apache/dolphinscheduler/common/utils/FileUtils.java

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -84,29 +84,11 @@ public static String getUploadFileLocalTmpAbsolutePath() {
8484
/**
8585
* directory of process execution
8686
*
87-
* @param tenant tenant
88-
* @param projectCode project code
89-
* @param processDefineCode process definition Code
90-
* @param processDefineVersion process definition version
91-
* @param processInstanceId process instance id
9287
* @param taskInstanceId task instance id
9388
* @return directory of process execution
9489
*/
95-
public static String getTaskInstanceWorkingDirectory(String tenant,
96-
long projectCode,
97-
long processDefineCode,
98-
int processDefineVersion,
99-
int processInstanceId,
100-
int taskInstanceId) {
101-
return String.format(
102-
"%s/exec/process/%s/%d/%d_%d/%d/%d",
103-
DATA_BASEDIR,
104-
tenant,
105-
projectCode,
106-
processDefineCode,
107-
processDefineVersion,
108-
processInstanceId,
109-
taskInstanceId);
90+
public static String getTaskInstanceWorkingDirectory(int taskInstanceId) {
91+
return String.format("%s/exec/process/%d", DATA_BASEDIR, taskInstanceId);
11092
}
11193

11294
/**

dolphinscheduler-common/src/test/java/org/apache/dolphinscheduler/common/utils/FileUtilsTest.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@ public void testGetUploadFilename() {
4848

4949
@Test
5050
public void testGetProcessExecDir() {
51-
String dir = FileUtils.getTaskInstanceWorkingDirectory("test", 1L, 2L, 1, 3, 4);
52-
Assertions.assertEquals("/tmp/dolphinscheduler/exec/process/test/1/2_1/3/4", dir);
51+
String dir = FileUtils.getTaskInstanceWorkingDirectory(4);
52+
Assertions.assertEquals("/tmp/dolphinscheduler/exec/process/4", dir);
5353
}
5454

5555
@Test

dolphinscheduler-service/src/main/java/org/apache/dolphinscheduler/service/utils/ProcessUtils.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -54,13 +54,8 @@ public class ProcessUtils {
5454
taskExecutionContext.setAppIds(String.join(TaskConstants.COMMA, appIds));
5555
if (StringUtils.isEmpty(taskExecutionContext.getExecutePath())) {
5656
taskExecutionContext
57-
.setExecutePath(FileUtils.getTaskInstanceWorkingDirectory(
58-
taskExecutionContext.getTenantCode(),
59-
taskExecutionContext.getProjectCode(),
60-
taskExecutionContext.getWorkflowDefinitionCode(),
61-
taskExecutionContext.getWorkflowDefinitionVersion(),
62-
taskExecutionContext.getWorkflowInstanceId(),
63-
taskExecutionContext.getTaskInstanceId()));
57+
.setExecutePath(FileUtils
58+
.getTaskInstanceWorkingDirectory(taskExecutionContext.getTaskInstanceId()));
6459
}
6560
FileUtils.createDirectoryWith755(Paths.get(taskExecutionContext.getExecutePath()));
6661
org.apache.dolphinscheduler.plugin.task.api.utils.ProcessUtils.cancelApplication(taskExecutionContext);

dolphinscheduler-worker/src/main/java/org/apache/dolphinscheduler/server/worker/utils/TaskExecutionContextUtils.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -42,13 +42,8 @@ public class TaskExecutionContextUtils {
4242

4343
public static void createTaskInstanceWorkingDirectory(TaskExecutionContext taskExecutionContext) throws TaskException {
4444
// local execute path
45-
String taskInstanceWorkingDirectory = FileUtils.getTaskInstanceWorkingDirectory(
46-
taskExecutionContext.getTenantCode(),
47-
taskExecutionContext.getProjectCode(),
48-
taskExecutionContext.getWorkflowDefinitionCode(),
49-
taskExecutionContext.getWorkflowDefinitionVersion(),
50-
taskExecutionContext.getWorkflowInstanceId(),
51-
taskExecutionContext.getTaskInstanceId());
45+
String taskInstanceWorkingDirectory =
46+
FileUtils.getTaskInstanceWorkingDirectory(taskExecutionContext.getTaskInstanceId());
5247
try {
5348
if (new File(taskInstanceWorkingDirectory).exists()) {
5449
FileUtils.deleteFile(taskInstanceWorkingDirectory);

dolphinscheduler-worker/src/test/java/org/apache/dolphinscheduler/server/worker/utils/TaskExecutionContextUtilsTest.java

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,8 @@ void createTaskInstanceWorkingDirectory() throws IOException {
3939
taskExecutionContext.setWorkflowInstanceId(1);
4040
taskExecutionContext.setTaskInstanceId(1);
4141

42-
String taskWorkingDirectory = FileUtils.getTaskInstanceWorkingDirectory(
43-
taskExecutionContext.getTenantCode(),
44-
taskExecutionContext.getProjectCode(),
45-
taskExecutionContext.getWorkflowDefinitionCode(),
46-
taskExecutionContext.getWorkflowDefinitionVersion(),
47-
taskExecutionContext.getWorkflowInstanceId(),
48-
taskExecutionContext.getTaskInstanceId());
42+
String taskWorkingDirectory =
43+
FileUtils.getTaskInstanceWorkingDirectory(taskExecutionContext.getTaskInstanceId());
4944
try {
5045
// Test if the working directory is exist
5146
// will delete it and recreate

0 commit comments

Comments
 (0)