dailidong commented on issue #2407: how does ds check if a process failed ? URL: https://github.com/apache/incubator-dolphinscheduler/issues/2407#issuecomment-612792524 you can see the AbstractCommandExecutor.java. public CommandExecuteResult run(String execCommand) throws Exception{ CommandExecuteResult result = new CommandExecuteResult(); if (StringUtils.isEmpty(execCommand)) { return result; } String commandFilePath = buildCommandFilePath(); // create command file if not exists createCommandFileIfNotExists(execCommand, commandFilePath); //build process buildProcess(commandFilePath); // parse process output parseProcessOutput(process); Integer processId = getProcessId(process); result.setProcessId(processId); // cache processId taskExecutionContext.setProcessId(processId); taskExecutionContextCacheManager.cacheTaskExecutionContext(taskExecutionContext); // print process id logger.info("process start, process id is: {}", processId); // if timeout occurs, exit directly long remainTime = getRemaintime(); // waiting for the run to finish boolean status = process.waitFor(remainTime, TimeUnit.SECONDS); logger.info("process has exited, execute path:{}, processId:{} ,exitStatusCode:{}", taskExecutionContext.getExecutePath(), processId , result.getExitStatusCode()); // if SHELL task exit if (status) { // set appIds List<String> appIds = getAppIds(taskExecutionContext.getLogPath()); result.setAppIds(String.join(Constants.COMMA, appIds)); // SHELL task state result.setExitStatusCode(process.exitValue()); // if yarn task , yarn state is final state if (process.exitValue() == 0){ result.setExitStatusCode(isSuccessOfYarnState(appIds) ? EXIT_CODE_SUCCESS : EXIT_CODE_FAILURE); } } else { logger.error("process has failure , exitStatusCode : {} , ready to kill ...", result.getExitStatusCode()); ProcessUtils.kill(taskExecutionContext); result.setExitStatusCode(EXIT_CODE_FAILURE); } return result; }
---------------------------------------------------------------- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. For queries about this service, please contact Infrastructure at: [email protected] With regards, Apache Git Services
