YARN-9602. Use logger format in Container Executor. Contributed by Abhishek Modi.
This commit is contained in:
parent
b05747901f
commit
f7df55f4a8
@ -290,7 +290,7 @@ public int reacquireContainer(ContainerReacquisitionContext ctx)
|
||||
Path pidPath = getPidFilePath(containerId);
|
||||
|
||||
if (pidPath == null) {
|
||||
LOG.warn(containerId + " is not active, returning terminated error");
|
||||
LOG.warn("{} is not active, returning terminated error", containerId);
|
||||
|
||||
return ExitCode.TERMINATED.getExitCode();
|
||||
}
|
||||
@ -301,7 +301,7 @@ public int reacquireContainer(ContainerReacquisitionContext ctx)
|
||||
throw new IOException("Unable to determine pid for " + containerId);
|
||||
}
|
||||
|
||||
LOG.info("Reacquiring " + containerId + " with pid " + pid);
|
||||
LOG.info("Reacquiring {} with pid {}", containerId, pid);
|
||||
|
||||
ContainerLivenessContext livenessContext = new ContainerLivenessContext
|
||||
.Builder()
|
||||
@ -322,7 +322,7 @@ public int reacquireContainer(ContainerReacquisitionContext ctx)
|
||||
|
||||
while (!file.exists() && msecLeft >= 0) {
|
||||
if (!isContainerActive(containerId)) {
|
||||
LOG.info(containerId + " was deactivated");
|
||||
LOG.info("{} was deactivated", containerId);
|
||||
|
||||
return ExitCode.TERMINATED.getExitCode();
|
||||
}
|
||||
@ -754,7 +754,7 @@ public static String[] getLocalIpAndHost(Container container) {
|
||||
ipAndHost[0] = address.getHostAddress();
|
||||
ipAndHost[1] = address.getHostName();
|
||||
} catch (UnknownHostException e) {
|
||||
LOG.error("Unable to get Local hostname and ip for " + container
|
||||
LOG.error("Unable to get Local hostname and ip for {}", container
|
||||
.getContainerId(), e);
|
||||
}
|
||||
return ipAndHost;
|
||||
@ -782,7 +782,7 @@ public void deactivateContainer(ContainerId containerId) {
|
||||
* the Container
|
||||
*/
|
||||
public void pauseContainer(Container container) {
|
||||
LOG.warn(container.getContainerId() + " doesn't support pausing.");
|
||||
LOG.warn("{} doesn't support pausing.", container.getContainerId());
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@ -793,7 +793,7 @@ public void pauseContainer(Container container) {
|
||||
* the Container
|
||||
*/
|
||||
public void resumeContainer(Container container) {
|
||||
LOG.warn(container.getContainerId() + " doesn't support resume.");
|
||||
LOG.warn("{} doesn't support resume.", container.getContainerId());
|
||||
throw new UnsupportedOperationException();
|
||||
}
|
||||
|
||||
@ -835,7 +835,7 @@ public String getProcessId(ContainerId containerID) {
|
||||
try {
|
||||
pid = ProcessIdFileReader.getProcessId(pidFile);
|
||||
} catch (IOException e) {
|
||||
LOG.error("Got exception reading pid from pid-file " + pidFile, e);
|
||||
LOG.error("Got exception reading pid from pid-file {}", pidFile, e);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -167,16 +167,15 @@ public void startLocalizer(LocalizerStartContext ctx)
|
||||
String tokenFn = String.format(TOKEN_FILE_NAME_FMT, locId);
|
||||
Path tokenDst = new Path(appStorageDir, tokenFn);
|
||||
copyFile(nmPrivateContainerTokensPath, tokenDst, user);
|
||||
LOG.info("Copying from " + nmPrivateContainerTokensPath
|
||||
+ " to " + tokenDst);
|
||||
LOG.info("Copying from {} to {}", nmPrivateContainerTokensPath, tokenDst);
|
||||
|
||||
|
||||
FileContext localizerFc =
|
||||
FileContext.getFileContext(lfs.getDefaultFileSystem(), getConf());
|
||||
localizerFc.setUMask(lfs.getUMask());
|
||||
localizerFc.setWorkingDirectory(appStorageDir);
|
||||
LOG.info("Localizer CWD set to " + appStorageDir + " = "
|
||||
+ localizerFc.getWorkingDirectory());
|
||||
LOG.info("Localizer CWD set to {} = {}", appStorageDir,
|
||||
localizerFc.getWorkingDirectory());
|
||||
|
||||
ContainerLocalizer localizer =
|
||||
createContainerLocalizer(user, appId, locId, tokenFn, localDirs,
|
||||
@ -292,8 +291,8 @@ public int launchContainer(ContainerStartContext ctx)
|
||||
if (pidFile != null) {
|
||||
sb.writeLocalWrapperScript(launchDst, pidFile);
|
||||
} else {
|
||||
LOG.info("Container " + containerIdStr
|
||||
+ " pid file not set. Returning terminated error");
|
||||
LOG.info("Container {} pid file not set. Returning terminated error",
|
||||
containerIdStr);
|
||||
return ExitCode.TERMINATED.getExitCode();
|
||||
}
|
||||
|
||||
@ -312,8 +311,8 @@ public int launchContainer(ContainerStartContext ctx)
|
||||
if (isContainerActive(containerId)) {
|
||||
shExec.execute();
|
||||
} else {
|
||||
LOG.info("Container " + containerIdStr +
|
||||
" was marked as inactive. Returning terminated error");
|
||||
LOG.info("Container {} was marked as inactive. "
|
||||
+ "Returning terminated error", containerIdStr);
|
||||
return ExitCode.TERMINATED.getExitCode();
|
||||
}
|
||||
} catch (IOException e) {
|
||||
@ -321,14 +320,14 @@ public int launchContainer(ContainerStartContext ctx)
|
||||
return -1;
|
||||
}
|
||||
int exitCode = shExec.getExitCode();
|
||||
LOG.warn("Exit code from container " + containerId + " is : " + exitCode);
|
||||
LOG.warn("Exit code from container {} is : {}", containerId, exitCode);
|
||||
// 143 (SIGTERM) and 137 (SIGKILL) exit codes means the container was
|
||||
// terminated/killed forcefully. In all other cases, log the
|
||||
// container-executor's output
|
||||
if (exitCode != ExitCode.FORCE_KILLED.getExitCode()
|
||||
&& exitCode != ExitCode.TERMINATED.getExitCode()) {
|
||||
LOG.warn("Exception from container-launch with container ID: "
|
||||
+ containerId + " and exit code: " + exitCode , e);
|
||||
LOG.warn("Exception from container-launch with container ID: {}"
|
||||
+ " and exit code: {}", containerId, exitCode, e);
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("Exception from container-launch.\n")
|
||||
@ -386,7 +385,7 @@ protected CommandExecutor buildCommandExecutor(String wrapperScriptPath,
|
||||
String[] command = getRunCommand(wrapperScriptPath,
|
||||
containerIdStr, user, pidFile, this.getConf(), resource);
|
||||
|
||||
LOG.info("launchContainer: " + Arrays.toString(command));
|
||||
LOG.info("launchContainer: {}", Arrays.toString(command));
|
||||
return new ShellCommandExecutor(
|
||||
command,
|
||||
workDir,
|
||||
@ -648,19 +647,19 @@ public void deleteAsUser(DeletionAsUserContext ctx)
|
||||
List<Path> baseDirs = ctx.getBasedirs();
|
||||
|
||||
if (baseDirs == null || baseDirs.size() == 0) {
|
||||
LOG.info("Deleting absolute path : " + subDir);
|
||||
LOG.info("Deleting absolute path : {}", subDir);
|
||||
if (!lfs.delete(subDir, true)) {
|
||||
//Maybe retry
|
||||
LOG.warn("delete returned false for path: [" + subDir + "]");
|
||||
LOG.warn("delete returned false for path: [{}]", subDir);
|
||||
}
|
||||
return;
|
||||
}
|
||||
for (Path baseDir : baseDirs) {
|
||||
Path del = subDir == null ? baseDir : new Path(baseDir, subDir);
|
||||
LOG.info("Deleting path : " + del);
|
||||
LOG.info("Deleting path : {}", del);
|
||||
try {
|
||||
if (!lfs.delete(del, true)) {
|
||||
LOG.warn("delete returned false for path: [" + del + "]");
|
||||
LOG.warn("delete returned false for path: [{}]", del);
|
||||
}
|
||||
} catch (FileNotFoundException e) {
|
||||
continue;
|
||||
@ -743,7 +742,7 @@ protected Path getWorkingDir(List<String> localDirs, String user,
|
||||
try {
|
||||
space = getDiskFreeSpace(curBase);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to get Free Space for " + curBase.toString(), e);
|
||||
LOG.warn("Unable to get Free Space for {}", curBase, e);
|
||||
}
|
||||
availableOnDisk[i++] = space;
|
||||
totalAvailable += space;
|
||||
@ -823,7 +822,7 @@ void createUserLocalDirs(List<String> localDirs, String user)
|
||||
createDir(getUserCacheDir(new Path(localDir), user), userperms, true,
|
||||
user);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to create the user directory : " + localDir, e);
|
||||
LOG.warn("Unable to create the user directory : {}", localDir, e);
|
||||
continue;
|
||||
}
|
||||
userDirStatus = true;
|
||||
@ -850,7 +849,7 @@ void createUserLocalDirs(List<String> localDirs, String user)
|
||||
*/
|
||||
void createUserCacheDirs(List<String> localDirs, String user)
|
||||
throws IOException {
|
||||
LOG.info("Initializing user " + user);
|
||||
LOG.info("Initializing user {}", user);
|
||||
|
||||
boolean appcacheDirStatus = false;
|
||||
boolean distributedCacheDirStatus = false;
|
||||
@ -865,7 +864,7 @@ void createUserCacheDirs(List<String> localDirs, String user)
|
||||
createDir(appDir, appCachePerms, true, user);
|
||||
appcacheDirStatus = true;
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to create app cache directory : " + appDir, e);
|
||||
LOG.warn("Unable to create app cache directory : {}", appDir, e);
|
||||
}
|
||||
// create $local.dir/usercache/$user/filecache
|
||||
final Path distDir = getFileCacheDir(localDirPath, user);
|
||||
@ -873,7 +872,7 @@ void createUserCacheDirs(List<String> localDirs, String user)
|
||||
createDir(distDir, fileperms, true, user);
|
||||
distributedCacheDirStatus = true;
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to create file cache directory : " + distDir, e);
|
||||
LOG.warn("Unable to create file cache directory : {}", distDir, e);
|
||||
}
|
||||
}
|
||||
if (!appcacheDirStatus) {
|
||||
@ -911,7 +910,8 @@ void createAppDirs(List<String> localDirs, String user, String appId)
|
||||
createDir(fullAppDir, appperms, true, user);
|
||||
initAppDirStatus = true;
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to create app directory " + fullAppDir.toString(), e);
|
||||
LOG.warn("Unable to create app directory {}",
|
||||
fullAppDir, e);
|
||||
}
|
||||
}
|
||||
if (!initAppDirStatus) {
|
||||
@ -942,7 +942,7 @@ void createAppLogDirs(String appId, List<String> logDirs, String user)
|
||||
try {
|
||||
createDir(appLogDir, appLogDirPerms, true, user);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to create the app-log directory : " + appLogDir, e);
|
||||
LOG.warn("Unable to create the app-log directory : {}", appLogDir, e);
|
||||
continue;
|
||||
}
|
||||
appLogDirStatus = true;
|
||||
@ -976,8 +976,8 @@ void createContainerLogDirs(String appId, String containerId,
|
||||
try {
|
||||
createDir(containerLogDir, containerLogDirPerms, true, user);
|
||||
} catch (IOException e) {
|
||||
LOG.warn("Unable to create the container-log directory : "
|
||||
+ appLogDir, e);
|
||||
LOG.warn("Unable to create the container-log directory : {}",
|
||||
appLogDir, e);
|
||||
continue;
|
||||
}
|
||||
containerLogDirStatus = true;
|
||||
|
@ -210,8 +210,8 @@ public void setConf(Configuration conf) {
|
||||
YarnConfiguration.NM_NONSECURE_MODE_LIMIT_USERS,
|
||||
YarnConfiguration.DEFAULT_NM_NONSECURE_MODE_LIMIT_USERS);
|
||||
if (!containerLimitUsers) {
|
||||
LOG.warn(YarnConfiguration.NM_NONSECURE_MODE_LIMIT_USERS +
|
||||
": impersonation without authentication enabled");
|
||||
LOG.warn("{}: impersonation without authentication enabled",
|
||||
YarnConfiguration.NM_NONSECURE_MODE_LIMIT_USERS);
|
||||
}
|
||||
}
|
||||
|
||||
@ -304,8 +304,8 @@ public void init(Context context) throws IOException {
|
||||
false);
|
||||
} catch (PrivilegedOperationException e) {
|
||||
int exitCode = e.getExitCode();
|
||||
LOG.warn("Exit code from container executor initialization is : "
|
||||
+ exitCode, e);
|
||||
LOG.warn("Exit code from container executor initialization is : {}",
|
||||
exitCode, e);
|
||||
|
||||
throw new IOException("Linux container executor not configured properly"
|
||||
+ " (error=" + exitCode + ")", e);
|
||||
@ -406,8 +406,8 @@ public void startLocalizer(LocalizerStartContext ctx)
|
||||
|
||||
} catch (PrivilegedOperationException e) {
|
||||
int exitCode = e.getExitCode();
|
||||
LOG.warn("Exit code from container " + locId + " startLocalizer is : "
|
||||
+ exitCode, e);
|
||||
LOG.warn("Exit code from container {} startLocalizer is : {}",
|
||||
locId, exitCode, e);
|
||||
|
||||
throw new IOException("Application " + appId + " initialization failed" +
|
||||
" (exitCode=" + exitCode + ") with output: " + e.getOutput(), e);
|
||||
@ -530,8 +530,8 @@ private int handleLaunchForLaunchType(ContainerStartContext ctx,
|
||||
numaArgs = op.getArguments();
|
||||
break;
|
||||
default:
|
||||
LOG.warn("PrivilegedOperation type unsupported in launch: "
|
||||
+ op.getOperationType());
|
||||
LOG.warn("PrivilegedOperation type unsupported in launch: {}",
|
||||
op.getOperationType());
|
||||
}
|
||||
}
|
||||
|
||||
@ -585,14 +585,14 @@ private int handleLaunchForLaunchType(ContainerStartContext ctx,
|
||||
private int handleExitCode(ContainerExecutionException e, Container container,
|
||||
ContainerId containerId) throws ConfigurationException {
|
||||
int exitCode = e.getExitCode();
|
||||
LOG.warn("Exit code from container " + containerId + " is : " + exitCode);
|
||||
LOG.warn("Exit code from container {} is : {}", containerId, exitCode);
|
||||
// 143 (SIGTERM) and 137 (SIGKILL) exit codes means the container was
|
||||
// terminated/killed forcefully. In all other cases, log the
|
||||
// output
|
||||
if (exitCode != ContainerExecutor.ExitCode.FORCE_KILLED.getExitCode()
|
||||
&& exitCode != ContainerExecutor.ExitCode.TERMINATED.getExitCode()) {
|
||||
LOG.warn("Exception from container-launch with container ID: "
|
||||
+ containerId + " and exit code: " + exitCode, e);
|
||||
LOG.warn("Exception from container-launch with container ID: {} "
|
||||
+ "and exit code: {}", containerId, exitCode, e);
|
||||
|
||||
StringBuilder builder = new StringBuilder();
|
||||
builder.append("Exception from container-launch.\n")
|
||||
@ -703,7 +703,7 @@ public int reacquireContainer(ContainerReacquisitionContext ctx)
|
||||
resourceHandlerChain.reacquireContainer(containerId);
|
||||
} catch (ResourceHandlerException e) {
|
||||
LOG.warn("ResourceHandlerChain.reacquireContainer failed for " +
|
||||
"containerId: " + containerId + " Exception: " + e);
|
||||
"containerId: {} Exception: ", containerId, e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -741,8 +741,8 @@ public boolean signalContainer(ContainerSignalContext ctx)
|
||||
.getValue()) {
|
||||
return false;
|
||||
}
|
||||
LOG.warn("Error in signalling container " + pid + " with " + signal
|
||||
+ "; exit = " + retCode, e);
|
||||
LOG.warn("Error in signalling container {} with {}; exit = {}",
|
||||
pid, signal, retCode, e);
|
||||
logOutput(e.getOutput());
|
||||
throw new IOException("Problem signalling container " + pid + " with "
|
||||
+ signal + "; output: " + e.getOutput() + " and exitCode: "
|
||||
@ -775,8 +775,8 @@ public boolean reapContainer(ContainerReapContext ctx) throws IOException {
|
||||
if (retCode != 0) {
|
||||
return false;
|
||||
}
|
||||
LOG.warn("Error in reaping container "
|
||||
+ container.getContainerId().toString() + " exit = " + retCode, e);
|
||||
LOG.warn("Error in reaping container {} exit = {}",
|
||||
container.getContainerId(), retCode, e);
|
||||
logOutput(e.getOutput());
|
||||
throw new IOException("Error in reaping container "
|
||||
+ container.getContainerId().toString() + " exit = " + retCode, e);
|
||||
@ -804,8 +804,8 @@ public IOStreamPair execContainer(ContainerExecContext ctx)
|
||||
if (retCode != 0) {
|
||||
return new IOStreamPair(null, null);
|
||||
}
|
||||
LOG.warn("Error in executing container interactive shell"
|
||||
+ ctx + " exit = " + retCode, e);
|
||||
LOG.warn("Error in executing container interactive shell {} exit = {}",
|
||||
ctx, retCode, e);
|
||||
logOutput(e.getOutput());
|
||||
throw new ContainerExecutionException(
|
||||
"Error in executing container interactive shel" + ctx.getContainer()
|
||||
@ -837,12 +837,12 @@ public void deleteAsUser(DeletionAsUserContext ctx) {
|
||||
|
||||
List<String> pathsToDelete = new ArrayList<String>();
|
||||
if (baseDirs == null || baseDirs.size() == 0) {
|
||||
LOG.info("Deleting absolute path : " + dir);
|
||||
LOG.info("Deleting absolute path : {}", dir);
|
||||
pathsToDelete.add(dirString);
|
||||
} else {
|
||||
for (Path baseDir : baseDirs) {
|
||||
Path del = dir == null ? baseDir : new Path(baseDir, dir);
|
||||
LOG.info("Deleting path : " + del);
|
||||
LOG.info("Deleting path : {}", del);
|
||||
pathsToDelete.add(del.toString());
|
||||
deleteAsUserOp.appendArgs(baseDir.toUri().getPath());
|
||||
}
|
||||
@ -857,8 +857,8 @@ public void deleteAsUser(DeletionAsUserContext ctx) {
|
||||
false);
|
||||
} catch (PrivilegedOperationException e) {
|
||||
int exitCode = e.getExitCode();
|
||||
LOG.error("DeleteAsUser for " + StringUtils.join(" ", pathsToDelete)
|
||||
+ " returned with exit code: " + exitCode, e);
|
||||
LOG.error("DeleteAsUser for {} returned with exit code: {}",
|
||||
StringUtils.join(" ", pathsToDelete), exitCode, e);
|
||||
}
|
||||
}
|
||||
|
||||
@ -894,8 +894,8 @@ protected File[] readDirAsUser(String user, Path dir) {
|
||||
}
|
||||
}
|
||||
} catch (PrivilegedOperationException e) {
|
||||
LOG.error("ListAsUser for " + dir + " returned with exit code: "
|
||||
+ e.getExitCode(), e);
|
||||
LOG.error("ListAsUser for {} returned with exit code: {}",
|
||||
dir, e.getExitCode(), e);
|
||||
}
|
||||
|
||||
return files.toArray(new File[files.size()]);
|
||||
@ -971,14 +971,14 @@ public void removeDockerContainer(String containerId) {
|
||||
if (DockerCommandExecutor.isRemovable(
|
||||
DockerCommandExecutor.getContainerStatus(containerId, privOpExecutor,
|
||||
nmContext))) {
|
||||
LOG.info("Removing Docker container : " + containerId);
|
||||
LOG.info("Removing Docker container : {}", containerId);
|
||||
DockerRmCommand dockerRmCommand = new DockerRmCommand(containerId,
|
||||
ResourceHandlerModule.getCgroupsRelativeRoot());
|
||||
DockerCommandExecutor.executeDockerCommand(dockerRmCommand, containerId,
|
||||
null, privOpExecutor, false, nmContext);
|
||||
}
|
||||
} catch (ContainerExecutionException e) {
|
||||
LOG.warn("Unable to remove docker container: " + containerId);
|
||||
LOG.warn("Unable to remove docker container: {}", containerId);
|
||||
}
|
||||
}
|
||||
|
||||
@ -1005,7 +1005,7 @@ public synchronized void updateYarnSysFS(Context ctx, String user,
|
||||
List<String> localDirs = dirsHandler.getLocalDirs();
|
||||
if (file.exists()) {
|
||||
if (!file.delete()) {
|
||||
LOG.warn("Unable to delete " + sysFSPath.toString());
|
||||
LOG.warn("Unable to delete {}", sysFSPath);
|
||||
}
|
||||
}
|
||||
if (file.createNewFile()) {
|
||||
|
Loading…
Reference in New Issue
Block a user