[
https://issues.apache.org/jira/browse/YARN-2934?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Naganarasimha G R updated YARN-2934:
------------------------------------
Attachment: YARN-2934.v2.001.patch
Thanks for the review comments and opinions [~jira.shegalov] & [~vvasudev],
bq. Seeing as Gera Shegalov feels strongly about this, I'll defer to him
unless you have an example app log file that a glob can't catch but a regex
would.
Well i don't have a strong case to back my hunch and neither could i get a
better example to show advantages of regex over glob. Most of the cases(MR,
Distributed shell, Spark etc...) are all using *stderr*, so i am attaching a
patch with modifications incorporating [~jira.shegalov]'s suggestion along
with fixes for other issues.
{code}
diagnosticInfo
.append("Error files: ")
.append(Arrays.toString(listStatus))
.append("\n")
.append("Last ").append(tailBytes).append(" bytes of
").append(listStatus[0])
.append(new String(tailBytes, UTF_8));
{code} was providing a result as
{code}
Container exited with a non-zero exit code 127. Error file(s):
[DeprecatedRawLocalFileStatus{path=file:/opt/git/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/TestContainerLaunch-localLogDir/application_1450367986801_0001/container_1450367986801_0001_01_000001/error.log;
isDirectory=false; length=60; replication=1; blocksize=33554432;
modification_time=1450367987000; access_time=1450367987000; owner=; group=;
permission=rw-rw-rw-; isSymlink=false}]
Last [B@78a7f540 bytes of
DeprecatedRawLocalFileStatus{path=file:/opt/git/trunk/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-nodemanager/target/TestContainerLaunch-localLogDir/application_1450367986801_0001/container_1450367986801_0001_01_000001/error.log;
isDirectory=false; length=60; replication=1; blocksize=33554432;
modification_time=1450367987000; access_time=1450367987000; owner=; group=;
permission=rw-rw-rw-; isSymlink=false} :
/bin/bash: /no/jvm/here/bin/java: No such file or directory
{code}
so have modified it to be
{code}
diagnosticInfo
.append("Last ").append(tailSizeInBytes).append(" bytes of ")
.append(listStatus[0].getPath().getName())
.append(" :\n")
.append(new String(tailBytes, UTF_8));
{code}
Hope its fine else can revert it as per your suggestion.
> Improve handling of container's stderr
> ---------------------------------------
>
> Key: YARN-2934
> URL: https://issues.apache.org/jira/browse/YARN-2934
> Project: Hadoop YARN
> Issue Type: Improvement
> Reporter: Gera Shegalov
> Assignee: Naganarasimha G R
> Priority: Critical
> Attachments: YARN-2934.v1.001.patch, YARN-2934.v1.002.patch,
> YARN-2934.v1.003.patch, YARN-2934.v1.004.patch, YARN-2934.v1.005.patch,
> YARN-2934.v1.006.patch, YARN-2934.v1.007.patch, YARN-2934.v1.008.patch,
> YARN-2934.v2.001.patch
>
>
> Most YARN applications redirect stderr to some file. That's why when
> container launch fails with {{ExitCodeException}} the message is empty.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)