On 2020-Apr-02, at 13:10, Duncan Exon Smith via libcxx-dev libcxx-dev@lists.llvm.org wrote:
On 2020-Apr-02, at 11:23, Louis Dionne <ldionne@apple.com mailto:ldionne@apple.com> wrote:
On Apr 2, 2020, at 14:05, Duncan Exon Smith <dexonsmith@apple.com mailto:dexonsmith@apple.com> wrote:
It looks like the following bots assigned to you started failing recently:
I agree the bots should be fixed, but...
I strongly suspect this is due to the fact that your builder is running as root. Libc++'s filesystem tests are known to fail when run as root, because some of them need to check for failure to access some files for which there's no permission. This doesn't seem to work when run as root.
It seems like these tests could have a line like:
REQUIRES: -user=root
and libcxx's lit target could export a `user=root` feature when tests were being run as root. WDYT?
WDYT?
I think you mean `// UNSUPPORTED: -user=root`? Yes, I think it would make sense. Either that or actually spend the time to make them work as root.
I meant `REQUIRES: !user=root`, I used the wrong negation.
Although UNSUPPORTED is maybe more clear.
FWIW, I think the root cause of the issue is that "traverse" permissions in directories are not honoured when run as root:
root $ d=$(mktemp -d) root $ touch $d/foo root $ chmod 000 $d root $ stat $d/foo 16777221 234259215 -rw-r--r-- 1 root wheel 0 0 <...>
When I would expect:
ldionne $ d=$(mktemp -d) ldionne $ touch $d/foo ldionne $ chmod 000 $d ldionne $ stat $d/foo stat: <...>/tmp.JoY6Ixmo/foo: stat: Permission denied
Does that make sense? I didn't know 'root' had a free pass like that.
Louis
libcxx-dev mailing list libcxx-dev@lists.llvm.org mailto:libcxx-dev@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev https://lists.llvm.org/cgi-bin/mailman/listinfo/libcxx-dev