Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug] [Module Name] shell script #16830

Open
2 of 3 tasks
WYPOWLS opened this issue Nov 21, 2024 · 8 comments
Open
2 of 3 tasks

[Bug] [Module Name] shell script #16830

WYPOWLS opened this issue Nov 21, 2024 · 8 comments
Labels
bug Something isn't working need to verify

Comments

@WYPOWLS
Copy link

WYPOWLS commented Nov 21, 2024

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

image
image
When using shell nodes, same bash script, same output parameters, different results,version is 3.2.1

THIS IS LOG
[LOG-PATH]: /home/dolphinscheduler/dolphinscheduler/worker-server/logs/20241121/15711672610656/1/2850/9520.log, [HOST]: 10.244.3.1:1234
[INFO] 2024-11-21 16:31:14.656 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.658 +0800 - ********************************* Initialize task context ***********************************
[INFO] 2024-11-21 16:31:14.658 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.658 +0800 - Begin to initialize task
[INFO] 2024-11-21 16:31:14.658 +0800 - Set task startTime: 1732177874658
[INFO] 2024-11-21 16:31:14.658 +0800 - Set task appId: 2850_9520
[INFO] 2024-11-21 16:31:14.658 +0800 - End initialize task {
"taskInstanceId" : 9520,
"taskName" : "cs",
"firstSubmitTime" : 1732177874648,
"startTime" : 1732177874658,
"taskType" : "SHELL",
"workflowInstanceHost" : "10.244.3.1:5678",
"host" : "10.244.3.1:1234",
"logPath" : "/home/dolphinscheduler/dolphinscheduler/worker-server/logs/20241121/15711672610656/1/2850/9520.log",
"processId" : 0,
"processDefineCode" : 15711672610656,
"processDefineVersion" : 1,
"processInstanceId" : 2850,
"scheduleTime" : 1732118400000,
"executorId" : 2,
"cmdTypeIfComplement" : 5,
"tenantCode" : "dolphinscheduler",
"processDefineId" : 0,
"projectId" : 0,
"projectCode" : 14483060818400,
"taskParams" : "{"localParams":[],"rawScript":"#!/bin/bash\r\n# 显示当前时间\r\necho \"当前时间为 : ${ct}\"\r\n\r\n# 截取时间部分\r\nsub_time=$(echo $ct | cut -c 9-14)\r\necho \"日期部分为 : ${sub_time}\"\r\n# 判断时间部分\r\nif [ \"$sub_time\" == \"000000\" ]; then\r\n echo \"yes\"\r\nelse\r\n echo \"no\"\r\nfi","resourceList":[]}",
"environmentConfig" : "export DATAX_LAUNCHER=/home/dolphinscheduler/datax/bin/datax.py\nexport PYTHON_LAUNCHER=/home/dolphinscheduler/anaconda3/bin/python\nexport PATH=$PATH:$DATAX_LAUNCHER:$PYTHON_LAUNCHER",
"prepareParamsMap" : {
"system.task.definition.name" : {
"prop" : "system.task.definition.name",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "cs"
},
"system.project.name" : {
"prop" : "system.project.name",
"direct" : "IN",
"type" : "VARCHAR",
"value" : null
},
"pt" : {
"prop" : "pt",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241120"
},
"system.biz.curdate" : {
"prop" : "system.biz.curdate",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241121"
},
"system.task.instance.id" : {
"prop" : "system.task.instance.id",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "9520"
},
"system.task.definition.code" : {
"prop" : "system.task.definition.code",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "15711670763872"
},
"system.datetime" : {
"prop" : "system.datetime",
"direct" : null,
"type" : null,
"value" : "20241121000000"
},
"ct" : {
"prop" : "ct",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241121000000\t"
},
"system.project.code" : {
"prop" : "system.project.code",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "14483060818400"
},
"system.workflow.instance.id" : {
"prop" : "system.workflow.instance.id",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "2850"
},
"system.biz.date" : {
"prop" : "system.biz.date",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241120"
},
"system.workflow.definition.name" : {
"prop" : "system.workflow.definition.name",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "cs1"
},
"system.workflow.definition.code" : {
"prop" : "system.workflow.definition.code",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "15711672610656"
}
},
"taskAppId" : "2850_9520",
"taskTimeout" : 2147483647,
"workerGroup" : "default",
"delayTime" : 0,
"currentExecutionStatus" : "SUBMITTED_SUCCESS",
"endTime" : 0,
"dryRun" : 0,
"paramsMap" : {
"system.datetime" : {
"prop" : "system.datetime",
"direct" : null,
"type" : null,
"value" : "20241121000000"
}
},
"cpuQuota" : -1,
"memoryMax" : -1,
"testFlag" : 0,
"logBufferEnable" : false,
"dispatchFailTimes" : 0
}
[INFO] 2024-11-21 16:31:14.659 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.659 +0800 - ********************************* Load task instance plugin *********************************
[INFO] 2024-11-21 16:31:14.659 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.660 +0800 - Send task status RUNNING_EXECUTION master: 10.244.3.1:1234
[INFO] 2024-11-21 16:31:14.660 +0800 - TenantCode: dolphinscheduler check successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - WorkflowInstanceExecDir: /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520 check successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Create TaskChannel: org.apache.dolphinscheduler.plugin.task.shell.ShellTaskChannel successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Download resources successfully:
ResourceContext(resourceItemMap={})
[INFO] 2024-11-21 16:31:14.661 +0800 - Download upstream files: [] successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Task plugin instance: SHELL create successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Initialize shell task params {
"localParams" : [ ],
"varPool" : null,
"rawScript" : "#!/bin/bash\r\n# 显示当前时间\r\necho "当前时间为 : ${ct}"\r\n\r\n# 截取时间部分\r\nsub_time=$(echo $ct | cut -c 9-14)\r\necho "日期部分为 : ${sub_time}"\r\n# 判断时间部分\r\nif [ "$sub_time" == "000000" ]; then\r\n echo "yes"\r\nelse\r\n echo "no"\r\nfi",
"resourceList" : [ ]
}
[INFO] 2024-11-21 16:31:14.662 +0800 - Success initialized task plugin instance successfully
[INFO] 2024-11-21 16:31:14.662 +0800 - Set taskVarPool: null successfully
[INFO] 2024-11-21 16:31:14.662 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - ********************************* Execute task instance *************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - Final Shell file is:
[INFO] 2024-11-21 16:31:14.662 +0800 - ****************************** Script Content *****************************************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - #!/bin/bash
BASEDIR=$(cd dirname $0; pwd)
cd $BASEDIR
export DATAX_LAUNCHER=/home/dolphinscheduler/datax/bin/datax.py
export PYTHON_LAUNCHER=/home/dolphinscheduler/anaconda3/bin/python
export PATH=$PATH:$DATAX_LAUNCHER:$PYTHON_LAUNCHER
#!/bin/bash

显示当前时间

echo "当前时间为 : 20241121000000 "

截取时间部分

sub_time=$(echo $ct | cut -c 9-14)
echo "日期部分为 : ${sub_time}"

判断时间部分

if [ "$sub_time" == "000000" ]; then
echo "yes"
else
echo "no"
fi
[INFO] 2024-11-21 16:31:14.663 +0800 - ****************************** Script Content *****************************************************************
[INFO] 2024-11-21 16:31:14.663 +0800 - Executing shell command : sudo -u dolphinscheduler -i /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520/2850_9520.sh
[INFO] 2024-11-21 16:31:14.666 +0800 - process start, process id is: 87985
[INFO] 2024-11-21 16:31:16.666 +0800 - ->
当前时间为 : 20241121000000
日期部分为 :
no
[INFO] 2024-11-21 16:31:16.668 +0800 - process has exited. execute path:/tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520, processId:87985 ,exitStatusCode:0 ,processWaitForStatus:true ,processExitValue:0
[INFO] 2024-11-21 16:31:16.669 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:16.669 +0800 - ********************************* Finalize task instance ************************************
[INFO] 2024-11-21 16:31:16.669 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:16.669 +0800 - Upload output files: [] successfully
[INFO] 2024-11-21 16:31:16.670 +0800 - Send task execute status: SUCCESS to master : 10.244.3.1:1234
[INFO] 2024-11-21 16:31:16.670 +0800 - Remove the current task execute context from worker cache
[INFO] 2024-11-21 16:31:16.670 +0800 - The current execute mode isn't develop mode, will clear the task execute file: /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520
[INFO] 2024-11-21 16:31:16.671 +0800 - Success clear the task execute file: /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520
[INFO] 2024-11-21 16:31:16.671 +0800 - FINALIZE_SESSION

What you expected to happen

Both outputs are consistent

How to reproduce

image
image
image
Create a new shell script, then only output the following text in the script's text box, and then use the supplemental data directly to perform the task
The ct variable is ${system.datetime}

#!/bin/bash

显示当前时间

echo "当前时间为 : ${ct}"

截取时间部分

sub_time=$(echo $ct | cut -c 9-14)
echo "日期部分为 : ${sub_time}"

判断时间部分

if [ "$sub_time" == "000000" ]; then
echo "yes"
else
echo "no"
fi

Anything else

No response

Version

3.2.x

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@WYPOWLS WYPOWLS added bug Something isn't working Waiting for reply Waiting for reply labels Nov 21, 2024
Copy link

Search before asking

  • I had searched in the issues and found no similar issues.

What happened

image
image
When using shell nodes, same bash script, same output parameters, different results,version is 3.2.1

THIS IS LOG
[LOG-PATH]: /home/dolphinscheduler/dolphinscheduler/worker-server/logs/20241121/15711672610656/1/2850/9520.log, [HOST]: 10.244.3.1:1234
[INFO] 2024-11-21 16:31:14.656 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.658 +0800 - ********************************* Initialize task context ***********************************
[INFO] 2024-11-21 16:31:14.658 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.658 +0800 - Begin to initialize task
[INFO] 2024-11-21 16:31:14.658 +0800 - Set task startTime: 1732177874658
[INFO] 2024-11-21 16:31:14.658 +0800 - Set task appId: 2850_9520
[INFO] 2024-11-21 16:31:14.658 +0800 - End initialize task {
"taskInstanceId" : 9520,
"taskName" : "cs",
"firstSubmitTime" : 1732177874648,
"startTime" : 1732177874658,
"taskType" : "SHELL",
"workflowInstanceHost" : "10.244.3.1:5678",
"host" : "10.244.3.1:1234",
"logPath" : "/home/dolphinscheduler/dolphinscheduler/worker-server/logs/20241121/15711672610656/1/2850/9520.log",
"processId" : 0,
"processDefineCode" : 15711672610656,
"processDefineVersion" : 1,
"processInstanceId" : 2850,
"scheduleTime" : 1732118400000,
"executorId" : 2,
"cmdTypeIfComplement" : 5,
"tenantCode" : "dolphinscheduler",
"processDefineId" : 0,
"projectId" : 0,
"projectCode" : 14483060818400,
"taskParams" : "{"localParams":[],"rawScript":"#!/bin/bash\r\n# 显示当前时间\r\necho \"当前时间为 : ${ct}\"\r\n\r\n# 截取时间部分\r\nsub_time=$(echo $ct | cut -c 9-14)\r\necho \"日期部分为 : ${sub_time}\"\r\n# 判断时间部分\r\nif [ \"$sub_time\" == \"000000\" ]; then\r\n echo \"yes\"\r\nelse\r\n echo \"no\"\r\nfi","resourceList":[]}",
"environmentConfig" : "export DATAX_LAUNCHER=/home/dolphinscheduler/datax/bin/datax.py\nexport PYTHON_LAUNCHER=/home/dolphinscheduler/anaconda3/bin/python\nexport PATH=$PATH:$DATAX_LAUNCHER:$PYTHON_LAUNCHER",
"prepareParamsMap" : {
"system.task.definition.name" : {
"prop" : "system.task.definition.name",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "cs"
},
"system.project.name" : {
"prop" : "system.project.name",
"direct" : "IN",
"type" : "VARCHAR",
"value" : null
},
"pt" : {
"prop" : "pt",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241120"
},
"system.biz.curdate" : {
"prop" : "system.biz.curdate",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241121"
},
"system.task.instance.id" : {
"prop" : "system.task.instance.id",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "9520"
},
"system.task.definition.code" : {
"prop" : "system.task.definition.code",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "15711670763872"
},
"system.datetime" : {
"prop" : "system.datetime",
"direct" : null,
"type" : null,
"value" : "20241121000000"
},
"ct" : {
"prop" : "ct",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241121000000\t"
},
"system.project.code" : {
"prop" : "system.project.code",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "14483060818400"
},
"system.workflow.instance.id" : {
"prop" : "system.workflow.instance.id",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "2850"
},
"system.biz.date" : {
"prop" : "system.biz.date",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "20241120"
},
"system.workflow.definition.name" : {
"prop" : "system.workflow.definition.name",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "cs1"
},
"system.workflow.definition.code" : {
"prop" : "system.workflow.definition.code",
"direct" : "IN",
"type" : "VARCHAR",
"value" : "15711672610656"
}
},
"taskAppId" : "2850_9520",
"taskTimeout" : 2147483647,
"workerGroup" : "default",
"delayTime" : 0,
"currentExecutionStatus" : "SUBMITTED_SUCCESS",
"endTime" : 0,
"dryRun" : 0,
"paramsMap" : {
"system.datetime" : {
"prop" : "system.datetime",
"direct" : null,
"type" : null,
"value" : "20241121000000"
}
},
"cpuQuota" : -1,
"memoryMax" : -1,
"testFlag" : 0,
"logBufferEnable" : false,
"dispatchFailTimes" : 0
}
[INFO] 2024-11-21 16:31:14.659 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.659 +0800 - ********************************* Load task instance plugin *********************************
[INFO] 2024-11-21 16:31:14.659 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.660 +0800 - Send task status RUNNING_EXECUTION master: 10.244.3.1:1234
[INFO] 2024-11-21 16:31:14.660 +0800 - TenantCode: dolphinscheduler check successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - WorkflowInstanceExecDir: /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520 check successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Create TaskChannel: org.apache.dolphinscheduler.plugin.task.shell.ShellTaskChannel successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Download resources successfully:
ResourceContext(resourceItemMap={})
[INFO] 2024-11-21 16:31:14.661 +0800 - Download upstream files: [] successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Task plugin instance: SHELL create successfully
[INFO] 2024-11-21 16:31:14.661 +0800 - Initialize shell task params {
"localParams" : [ ],
"varPool" : null,
"rawScript" : "#!/bin/bash\r\n# 显示当前时间\r\necho "当前时间为 : ${ct}"\r\n\r\n# 截取时间部分\r\nsub_time=$(echo $ct | cut -c 9-14)\r\necho "日期部分为 : ${sub_time}"\r\n# 判断时间部分\r\nif [ "$sub_time" == "000000" ]; then\r\n echo "yes"\r\nelse\r\n echo "no"\r\nfi",
"resourceList" : [ ]
}
[INFO] 2024-11-21 16:31:14.662 +0800 - Success initialized task plugin instance successfully
[INFO] 2024-11-21 16:31:14.662 +0800 - Set taskVarPool: null successfully
[INFO] 2024-11-21 16:31:14.662 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - ********************************* Execute task instance *************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - Final Shell file is:
[INFO] 2024-11-21 16:31:14.662 +0800 - ****************************** Script Content *****************************************************************
[INFO] 2024-11-21 16:31:14.662 +0800 - #!/bin/bash
BASEDIR=$(cd dirname $0; pwd)
cd $BASEDIR
export DATAX_LAUNCHER=/home/dolphinscheduler/datax/bin/datax.py
export PYTHON_LAUNCHER=/home/dolphinscheduler/anaconda3/bin/python
export PATH=$PATH:$DATAX_LAUNCHER:$PYTHON_LAUNCHER
#!/bin/bash

显示当前时间

echo "当前时间为 : 20241121000000 "

截取时间部分

sub_time=$(echo $ct | cut -c 9-14)
echo "日期部分为 : ${sub_time}"

判断时间部分

if [ "$sub_time" == "000000" ]; then
echo "yes"
else
echo "no"
fi
[INFO] 2024-11-21 16:31:14.663 +0800 - ****************************** Script Content *****************************************************************
[INFO] 2024-11-21 16:31:14.663 +0800 - Executing shell command : sudo -u dolphinscheduler -i /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520/2850_9520.sh
[INFO] 2024-11-21 16:31:14.666 +0800 - process start, process id is: 87985
[INFO] 2024-11-21 16:31:16.666 +0800 - ->
当前时间为 : 20241121000000
日期部分为 :
no
[INFO] 2024-11-21 16:31:16.668 +0800 - process has exited. execute path:/tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520, processId:87985 ,exitStatusCode:0 ,processWaitForStatus:true ,processExitValue:0
[INFO] 2024-11-21 16:31:16.669 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:16.669 +0800 - ********************************* Finalize task instance ************************************
[INFO] 2024-11-21 16:31:16.669 +0800 - ***********************************************************************************************
[INFO] 2024-11-21 16:31:16.669 +0800 - Upload output files: [] successfully
[INFO] 2024-11-21 16:31:16.670 +0800 - Send task execute status: SUCCESS to master : 10.244.3.1:1234
[INFO] 2024-11-21 16:31:16.670 +0800 - Remove the current task execute context from worker cache
[INFO] 2024-11-21 16:31:16.670 +0800 - The current execute mode isn't develop mode, will clear the task execute file: /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520
[INFO] 2024-11-21 16:31:16.671 +0800 - Success clear the task execute file: /tmp/dolphinscheduler/exec/process/dolphinscheduler/14483060818400/15711672610656_1/2850/9520
[INFO] 2024-11-21 16:31:16.671 +0800 - FINALIZE_SESSION

What you expected to happen

Both outputs are consistent

How to reproduce

image
image
image
Create a new shell script, then only output the following text in the script's text box, and then use the supplemental data directly to perform the task
The ct variable is ${system.datetime}

#!/bin/bash

显示当前时间

echo "当前时间为 : ${ct}"

截取时间部分

sub_time=$(echo $ct | cut -c 9-14)
echo "日期部分为 : ${sub_time}"

判断时间部分

if [ "$sub_time" == "000000" ]; then
echo "yes"
else
echo "no"
fi

Anything else

No response

Version

3.2.x

Are you willing to submit PR?

  • Yes I am willing to submit a PR!

Code of Conduct

@WYPOWLS
Copy link
Author

WYPOWLS commented Nov 21, 2024

image
this is result

@SbloodyS
Copy link
Member

You can test it locally without DS.

@SbloodyS SbloodyS added need to verify and removed Waiting for reply Waiting for reply labels Nov 22, 2024
@WYPOWLS
Copy link
Author

WYPOWLS commented Nov 22, 2024

You can test it locally without DS.

Tested locally with no problems

@WYPOWLS
Copy link
Author

WYPOWLS commented Nov 22, 2024

image

@SbloodyS
Copy link
Member

It works fine in dev. I've noticed that your shell task log is different from mine. Which version are you using? Have you carried out secondary development?
7bjpriGP5Cl4xw9.png

@WYPOWLS
Copy link
Author

WYPOWLS commented Nov 25, 2024

It works fine in dev. I've noticed that your shell task log is different from mine. Which version are you using? Have you carried out secondary development? 7bjpriGP5Cl4xw9.png

No secondary development
I am using 3.2.1 version

@WYPOWLS
Copy link
Author

WYPOWLS commented Dec 5, 2024

help

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working need to verify
Projects
None yet
Development

No branches or pull requests

2 participants