[
https://issues.apache.org/jira/browse/YARN-4594?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15124248#comment-15124248
]
Colin Patrick McCabe commented on YARN-4594:
--------------------------------------------
Thanks for the review, [~jlowe].
bq. I noticed we're using openat, fchmodat, and unlinkat for the first time. I
suspect most other POSIX-like distributions support this, but I think these
were only recently added to MacOS X (in 10.9 Yosemite). I'm not sure if anyone
uses container-executor for MacOS X (or if container-executor even
compiles/works for MacOS X today). but adding these could break the native
build for those using older MacOS X versions.
Hmm. Correct me if I'm wrong, but I don't think {{container-executor}} is
supported at all on MacOS. I can see places in the code that rely on cgroups,
which is a kernel feature that MacOS just doesn't have (and may never have).
You can see a bunch of code in {{container-executor.c}} dealing with very linux
specific files in {{/proc}}, and so forth. My thinking is that if we ever do
support MacOS in {{container-executor}}, we will support a new enough version
that using the newer POSIX functions is not a problem.
bq. I think this needs to use strerror(-fd):
Fixed
bq. There's no check for an error being encountered by readdir and therefore no
logging if it does occur
Fixed
bq. Sometimes recursive_unlink_helper is returning errno and sometimes it is
returning -errno. For example, the "failed to stat" path will set ret=errno and
return -ret as -errno, but the "failed to unlink" path will set ret=-errno and
thus return errno.
Good catch. Let's return positive error codes everywhere, except in the very
specific case of {{open_helper}} where non-negative returns mean "file
descriptor".
> container-executor fails to remove directory tree when chmod required
> ---------------------------------------------------------------------
>
> Key: YARN-4594
> URL: https://issues.apache.org/jira/browse/YARN-4594
> Project: Hadoop YARN
> Issue Type: Bug
> Components: nodemanager
> Reporter: Colin Patrick McCabe
> Assignee: Colin Patrick McCabe
> Attachments: YARN-4594.001.patch
>
>
> test-container-executor.c doesn't work:
> * It assumes that realpath(/bin/ls) will be /bin/ls, whereas it is actually
> /usr/bin/ls on many systems.
> * The recursive delete logic in container-executor.c fails -- nftw does the
> wrong thing when confronted with directories with the wrong mode (permission
> bits), leading to an attempt to run rmdir on a non-empty directory.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)