YARN-8587. Added retries for fetching docker exit code.
Contributed by Charo Zhang
This commit is contained in:
parent
e374584479
commit
c16c49b8c3
@ -2006,20 +2006,22 @@ int launch_docker_container_as_user(const char * user, const char *app_id,
|
|||||||
docker_binary, container_id);
|
docker_binary, container_id);
|
||||||
fprintf(LOGFILE, "Obtaining the exit code...\n");
|
fprintf(LOGFILE, "Obtaining the exit code...\n");
|
||||||
fprintf(LOGFILE, "Docker inspect command: %s\n", docker_inspect_exitcode_command);
|
fprintf(LOGFILE, "Docker inspect command: %s\n", docker_inspect_exitcode_command);
|
||||||
FILE* inspect_exitcode_docker = popen(docker_inspect_exitcode_command, "r");
|
int count = 0;
|
||||||
if(inspect_exitcode_docker == NULL) {
|
int max_retries = get_max_retries(&CFG);
|
||||||
fprintf(ERRORFILE, "Done with inspect_exitcode, inspect_exitcode_docker is null\n");
|
while (count < max_retries) {
|
||||||
fflush(ERRORFILE);
|
FILE* inspect_exitcode_docker = popen(docker_inspect_exitcode_command, "r");
|
||||||
exit_code = -1;
|
res = fscanf (inspect_exitcode_docker, "%d", &exit_code);
|
||||||
goto cleanup;
|
if (pclose (inspect_exitcode_docker) != 0 || res <= 0) {
|
||||||
}
|
fprintf (ERRORFILE, "Could not inspect docker to get Exit code %s.\n", docker_inspect_exitcode_command);
|
||||||
res = fscanf (inspect_exitcode_docker, "%d", &exit_code);
|
fflush(ERRORFILE);
|
||||||
if (pclose (inspect_exitcode_docker) != 0 || res <= 0) {
|
exit_code = -1;
|
||||||
fprintf (ERRORFILE,
|
} else {
|
||||||
"Could not inspect docker to get exitcode: %s.\n", docker_inspect_exitcode_command);
|
if (exit_code != 0) {
|
||||||
fflush(ERRORFILE);
|
break;
|
||||||
exit_code = -1;
|
}
|
||||||
goto cleanup;
|
}
|
||||||
|
sleep(3);
|
||||||
|
count++;
|
||||||
}
|
}
|
||||||
fprintf(LOGFILE, "Exit code from docker inspect: %d\n", exit_code);
|
fprintf(LOGFILE, "Exit code from docker inspect: %d\n", exit_code);
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user