weixin_39753397
2021-01-12 04:19 阅读 7

Process shows success,when the task of the process is killed in the terminal

重现步骤: 1、有两个工作流AA和BB,BB依赖AA。 2、AA中有test1和test2任务,test2任务依赖test1。 3、BB中有dependent和test3任务,dependent配置AA的test2,test3依赖dependent。 4、现在手工运行AA,(test1任务可以配置shell,shell中运行一个test1.sh文件,该文件中可以写个sleep 60s),在执行worker的终端kill掉该任务(这种情况是手工kill,实际生产中服务器压力大时很有可能被其他服务kill掉)。 5、此时显示工作流AA运行成功,AA中test1任务kill状态,test2任务没有运行。 6、手工运行BB,可以看到BB中dependent和test3任务都运行成功。

正确的场景是AA中test1被kill后,AA应该是失败状态而不是成功状态,BB因dependent失败而失败

Reproduction steps: 1. There are two workflows AA and BB, and BB depends on AA. 2. There are test1 and test2 tasks in AA, and test2 tasks depend on test1. 3. There are DEPENDENCT and test3 tasks in BB. DEPENDENCT configures test2 of AA, and test3 depends on the DEPENDENCT. 4. Now run AA manually (test1 task can configure the shell, and a test1.sh file can be run in the shell, and a sleep 60s can be written in the file). Kill the task at the terminal executing the worker (in this case, kill manually. In actual production, when the server is under great pressure, it is likely to be killed by other services). 5. At this time, the workflow AA runs successfully, the test1 task in AA is in kill status, and the test2 task is not running. 6. Run BB manually, and you can see that the DEPENDENCT and test3 tasks in BB run successfully.

I think the correct scenario is that after test1 in AA is killed, AA should be in failure state instead of success state. BB fails due to the DEPENDENCT failure

该提问来源于开源项目:apache/incubator-dolphinscheduler

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享

5条回答 默认 最新

相关推荐