[ https://issues.apache.org/jira/browse/YARN-7737?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16332614#comment-16332614 ]
Zhe Zhang commented on YARN-7737: --------------------------------- +1, looks to me a clear fix. Will wait for [~jhung] to take a look before committing. > prelaunch.err file not found exception on container failure > ----------------------------------------------------------- > > Key: YARN-7737 > URL: https://issues.apache.org/jira/browse/YARN-7737 > Project: Hadoop YARN > Issue Type: Bug > Reporter: Jonathan Hung > Assignee: Keqiu Hu > Priority: Major > Attachments: YARN-7737.001.patch > > > Hit this exception when a container failed:{noformat}2018-01-11 19:04:08,036 > ERROR > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch: > Failed to get tail of the container's prelaunch error log file > java.io.FileNotFoundException: File > /grid/b/tmp/userlogs/application_1515190594800_1766/container_e39_1515190594800_1766_01_000002/prelaunch.err > does not exist > at > org.apache.hadoop.fs.RawLocalFileSystem.deprecatedGetFileStatus(RawLocalFileSystem.java:641) > at > org.apache.hadoop.fs.RawLocalFileSystem.getFileLinkStatusInternal(RawLocalFileSystem.java:930) > at > org.apache.hadoop.fs.RawLocalFileSystem.getFileStatus(RawLocalFileSystem.java:631) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.handleContainerExitWithFailure(ContainerLaunch.java:545) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.handleContainerExitCode(ContainerLaunch.java:511) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:319) > at > org.apache.hadoop.yarn.server.nodemanager.containermanager.launcher.ContainerLaunch.call(ContainerLaunch.java:93) > at java.util.concurrent.FutureTask.run(FutureTask.java:266) > at > java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) > at > java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) > at java.lang.Thread.run(Thread.java:745){noformat} > containerLogDir is picked on container launch via > {{LocalDirAllocator#getLocalPathForWrite}}, which is where it looks for > {{prelaunch.err}} when the container fails. But prelaunch.err (and > prelaunch.out) are created in the first log dir (in {{ContainerLaunch#call}}: > {noformat} exec.writeLaunchEnv(containerScriptOutStream, environment, > localResources, launchContext.getCommands(), > new Path(containerLogDirs.get(0)), user);{noformat} -- This message was sent by Atlassian JIRA (v7.6.3#76005) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org