[ 
https://issues.apache.org/jira/browse/YARN-5121?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15400237#comment-15400237
 ] 

Allen Wittenauer commented on YARN-5121:
----------------------------------------

bq.  I just want to double-check with you that the fchmodat.h and fdopendir.h 
implementations are not BSD-licensed, and that's why they're not listed in 
LICENSE.txt and instead have an Apache license header. Is that correct?

I wrote them based upon the other functions' implementations so I put an ASF 
license on them.  

bq. Chris D mentioned previously that this might have been a leftover from 
debugging. Did you intend to keep it.

I did remove some other debugging code, but that one I thought was useful due 
to aggressive use of ternary operators.  (UGH!  Yes, the code is compact, but 
nearly unreadable, when nested!  I probably should have rewrote them too but...)

bq. Please check the indentation on the return statement.

Argh. Yes, I'll fix.  The formatting of the C code is pretty awful and 
definitely caused me issues. haha.

bq. Is "/proc/self/path/a.out" correct? ...  Is that a.out like the default gcc 
binary output path? 

a.out was the file name before gcc existed... ;)  Anyway, here's some backing 
evidence:

http://docs.oracle.com/cd/E23824_01/html/821-1473/proc-4.html#

Solaris' proc works a bit differently than what one might be used to under 
Linux.  The keys here are /proc/pid/object and /proc/pid/path.  object gives 
you access to any mapped or page data that came from file system objects. path 
contains symbolic links to all open files and the source files of the content 
of the object dir.  object/a.out is the executable. Therefore path/a.out is a 
symbolic link to the executable itself.  With that context, it probably makes a 
lot more sense, since there are *two* ways to get to the data, depending upon 
your needs.

Anyway, from my home machine (skipping object, since the file names are present 
in path):

{code}
sunos/i386 ryoko$ pwd
/proc/6956/path

sunos/i386 ryoko$ ls -l
total 0
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 0 -> /dev/pts/3
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 1 -> /dev/pts/3
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 2 -> /dev/pts/3
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 255 -> /dev/pts/3
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 3 -> 
/var/run/ldap_cache_door
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 a.out -> /usr/bin/bash
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 cwd -> /home/allenw
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 root -> /
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.11300 -> 
/usr/lib/mps/libnspr4.so
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18905 -> 
/lib/libmd.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18918 -> 
/lib/libgen.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18920 -> 
/lib/libsocket.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18942 -> 
/lib/libresolv.so.2
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18950 -> 
/lib/nss_files.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18956 -> 
/lib/libmp.so.2
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18957 -> 
/lib/nss_dns.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18961 -> 
/lib/libpthread.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.18964 -> 
/lib/libnsl.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.6054 -> 
/lib/ld.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.6085 -> 
/lib/libcurses.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.6088 -> 
/lib/libdl.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.9190 -> 
/usr/lib/libc/libc_hwcap1.so.1
lrwxrwxrwx   1 allenw   users          0 Jun 21 08:05 zfs.122.65594.9233 -> 
/usr/lib/libldap.so.5
{code}

You'll note that a.out points to the bash executable.

(This whole conversation is rather timely, given that Roger Faulkner just 
passed away recently.)

I'll do a quick update and post a new patch.  Thanks for the review!

> fix some container-executor portability issues
> ----------------------------------------------
>
>                 Key: YARN-5121
>                 URL: https://issues.apache.org/jira/browse/YARN-5121
>             Project: Hadoop YARN
>          Issue Type: Bug
>          Components: nodemanager
>    Affects Versions: 3.0.0-alpha1
>            Reporter: Allen Wittenauer
>            Assignee: Allen Wittenauer
>            Priority: Blocker
>         Attachments: YARN-5121.00.patch, YARN-5121.01.patch, 
> YARN-5121.02.patch, YARN-5121.03.patch, YARN-5121.04.patch, YARN-5121.06.patch
>
>
> container-executor has some issues that are preventing it from even compiling 
> on the OS X jenkins instance.  Let's fix those.  While we're there, let's 
> also try to take care of some of the other portability problems that have 
> crept in over the years, since it used to work great on Solaris but now 
> doesn't.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to