1
1

Merge pull request #7153 from mcoil1/pr/fix-misleading-error-message

fix misleading error message with missing #! interpreter
Этот коммит содержится в:
Jeff Squyres 2019-11-27 06:53:08 -05:00 коммит произвёл GitHub
родитель b50d568004 9b73f6ac83
Коммит 37d70a6213
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: 4AEE18F83AFDEB23

Просмотреть файл

@ -454,11 +454,22 @@ static int do_child(orte_odls_spawn_caddy_t *cd, int write_fd)
/* Exec the new executable */
execve(cd->cmd, cd->argv, cd->env);
getcwd(dir, sizeof(dir));
/* If we get here, an error has occurred. */
(void) getcwd(dir, sizeof(dir));
struct stat stats;
char* msg;
/* If errno is ENOENT, that indicates either cd->cmd does not exist, or
* cd->cmd is a script, but has a bad interpreter specified. */
if (ENOENT == errno && 0 == stat(cd->app->app, &stats)) {
asprintf(&msg, "%s has a bad interpreter on the first line.",
cd->app->app);
} else {
msg = strdup(strerror(errno));
}
send_error_show_help(write_fd, 1,
"help-orte-odls-default.txt", "execve error",
orte_process_info.nodename, dir, cd->app->app, strerror(errno));
/* Does not return */
orte_process_info.nodename, dir, cd->app->app, msg);
free(msg);
}