[ https://issues.apache.org/jira/browse/YARN-9667?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16897190#comment-16897190 ]
Szilard Nemeth edited comment on YARN-9667 at 7/31/19 1:44 PM: --------------------------------------------------------------- Hi [~adam.antal]! The most important one is this: There's a function called create_container_directories in container-executor.c. You should place a log line like this: {code:java} fprintf(LOGFILE, "Creating directory: %s, user: %s", container_dir, user); {code} Before we're calling: {code:java} if (mkdirs(container_dir, perms) == 0) { result = 0; } {code} This way, CE at least prints the directory itself if we have any permission issue while trying to create a subdirectory or file under it. If you want to be very precise, you can add some logging into the mkdirs function as well, alternatively, before every call of mkdirs but I'd prefer the former approach! Thanks! was (Author: snemeth): Hi [~adam.antal]! The most important one is this: There's a function called create_container_directories in container-executor.c. You should place a log line like this: {code:java} fprintf(LOGFILE, "**Creating directory: %s, user: %s", container_dir, user); {code} Before we're calling: {code:java} if (mkdirs(container_dir, perms) == 0) { result = 0; } {code} This way, CE at least prints the directory itself if we have any permission issue while trying to create a subdirectory or file under it. If you want to be very precise, you can add some logging into the mkdirs function as well, alternatively, before every call of mkdirs but I'd prefer the former approach! Thanks! > Container-executor.c duplicates messages to stdout > -------------------------------------------------- > > Key: YARN-9667 > URL: https://issues.apache.org/jira/browse/YARN-9667 > Project: Hadoop YARN > Issue Type: Improvement > Components: nodemanager, yarn > Affects Versions: 3.2.0 > Reporter: Adam Antal > Assignee: Peter Bacsko > Priority: Major > > When a container is killed by its AM we get a similar error message like this: > {noformat} > 2019-06-30 12:09:04,412 WARN > org.apache.hadoop.yarn.server.nodemanager.containermanager.linux.privileged.PrivilegedOperationExecutor: > Shell execution returned exit code: 143. Privileged Execution Operation > Stderr: > Stdout: main : command provided 1 > main : run as user is systest > main : requested yarn user is systest > Getting exit code file... > Creating script paths... > Writing pid file... > Writing to tmp file > /yarn/nm/nmPrivate/application_1561921629886_0001/container_e84_1561921629886_0001_01_000019/container_e84_1561921629886_0001_01_000019.pid.tmp > Writing to cgroup task files... > Creating local dirs... > Launching container... > Getting exit code file... > Creating script paths... > {noformat} > In container-executor.c the fork point is right after the "Creating script > paths..." part, though in the Stdout log we can clearly see it has been > written there twice. After consulting with [~pbacsko] it seems like there's a > missing flush in container-executor.c before the fork and that causes the > duplication. > I suggest to add a flush there so that it won't be duplicated: it's a bit > misleading that the child process writes out "Getting exit code file" and > "Creating script paths" even though it is clearly not doing that. > A more appealing solution could be to revisit the fprintf-fflush pairs in the > code and change them to a single call, so that the fflush calls would not be > forgotten accidentally. (It can cause problems in every place where it's > used). > Note: this issue probably affects every occasion of fork(), not just the one > from {{launch_container_as_user}} in {{main.c}}. -- This message was sent by Atlassian JIRA (v7.6.14#76016) --------------------------------------------------------------------- To unsubscribe, e-mail: yarn-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: yarn-issues-h...@hadoop.apache.org