[
https://issues.apache.org/jira/browse/YARN-10019?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16995057#comment-16995057
]
Eric Badger commented on YARN-10019:
------------------------------------
bq. 1. If we're in the child code path and we detect an erroneous condition,
the usual way is just simply call _exit(). Normal exit() occurs in the parent.
Calling _exit() prevents flushing stdio buffers twice and any cleanup logic
registered with atexit() or on_exit() will run only once.
In what case would we not want to run atexit() or on_exit() in the child code?
From my cursory searching of the code base, we don't have any current instances
of atexit() or on_exit() in the container-executor outside of testing
frameworks such as gtest.
Is the flushing issue something that you see regularly? If this is a big issue,
couldn't we just call fflush() before forking?
> container-executor: misc improvements in child processes and exec() calls
> -------------------------------------------------------------------------
>
> Key: YARN-10019
> URL: https://issues.apache.org/jira/browse/YARN-10019
> Project: Hadoop YARN
> Issue Type: Bug
> Components: nodemanager
> Reporter: Peter Bacsko
> Assignee: Peter Bacsko
> Priority: Minor
> Attachments: YARN-10019-001.patch, YARN-10019-002.patch
>
>
> There are a couple of improvements that we can do in container-executor
> regarding how we exit from child processes and how we handle failed exec()
> calls:
> 1. If we're in the child code path and we detect an erroneous condition, the
> usual way is just simply call {{_exit()}}. Normal {{exit()}} occurs in the
> parent. Calling {{_exit()}} prevents flushing stdio buffers twice and any
> cleanup logic registered with {{atexit()}} or {{on_exit()}} will run only
> once.
> 2. There's code like {{if (execlp(script_file_dest, script_file_dest, NULL)
> != 0) ...}} which is not necessary. Exec functions are not supposed to
> return. If they do, it's definitely an error, so no need to check the return
> value.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]