<div dir="ltr"><div>I was able to reproduce both failures locally but only when using CLANG with ASAN on Ubuntu 20.04.<br></div><div><br></div><div>CC=clang make defconfig</div><div>CC=clang ASAN=1 make</div><div>VERBOSE=1 make tests</div><div><br></div><div>scripts/runtest.sh: line 130: warning: command substitution: ignored null byte in input</div><div>FAIL: grep match after NUL byte<br>echo -ne 'one\0and two three' | grep -a two<br>--- expected    2020-06-26 14:29:10.200000000 +0100<br>+++ actual      2020-06-26 14:29:10.210000000 +0100<br>@@ -1 +0,0 @@<br>-oneand two three<br></div><div><br></div><div>FAIL: sed megabyte s/x/y/g (5 sec timeout)<br></div><div><--- For the sake of sanity I've snipped the many lines of xxxxxx's ---></div><div>xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx\n' | timeout 5 sed 's/x/y/g' | sha1sum<br>--- expected    2020-06-26 14:29:14.750000000 +0100<br>+++ actual      2020-06-26 14:29:19.760000000 +0100<br>@@ -1 +1 @@<br>-138c1fa7c3f64186203b0192fb4abdb33cb4e98a  -<br>+da39a3ee5e6b4b0d3255bfef95601890afd80709  -<br></div><div><br></div><div>- Eric</div><div><br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, Jun 22, 2020 at 3:55 AM Rob Landley <<a href="mailto:rob@landley.net">rob@landley.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On 6/20/20 9:56 AM, Eric Molitor wrote:<br>
> I disabled builds on pull requests in the example which should discourage use.<br>
> By default only project members are notified but you can add non-project members<br>
> to the notifications. Currently the MacOS and GCC Ubuntu builds and tests are<br>
> completing fine but there are issues with the ASAN Clang Ubuntu and Alpine<br>
> builds. The latter is due to running in an unprivileged container.<br>
> <br>
> * ASAN Clang Ubuntu builds have two failures<br>
<br>
Unfortunately the ASAN ndk build breaks for me because when I set up the<br>
toolchain ala (3) in <a href="https://landley.net/toybox/faq.html#cross" rel="noreferrer" target="_blank">https://landley.net/toybox/faq.html#cross</a> and do:<br>
<br>
ASAN=1<br>
CROSS_COMPILE=/home/landley/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/x86_64-linux-android-<br>
LDFLAGS=--static make distclean defconfig toybox<br>
<br>
The static build breaks with:<br>
<br>
/home/landley/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/bin/../lib/gcc/x86_64-linux-android/4.9.x/../../../../x86_64-linux-android/bin/ld:<br>
error: cannot mix -static with dynamic object<br>
/home/landley/android/android-ndk-r21b/toolchains/llvm/prebuilt/linux-x86_64/lib64/clang/9.0.8/lib/linux/<a href="http://libclang_rt.asan-x86_64-android.so" rel="noreferrer" target="_blank">libclang_rt.asan-x86_64-android.so</a><br>
toys/lsb/md5sum.c:416: error: undefined reference to 'sin'<br>
<br>
> 2020-06-20T14:46:07.3520007Z PASS: grep -l trumps -C<br>
> 2020-06-20T14:46:07.3822941Z scripts/runtest.sh: line 130: warning: command<br>
> substitution: ignored null byte in input<br>
> 2020-06-20T14:46:07.3823566Z FAIL: grep match after NUL byte<br>
<br>
This one works for me with the android NDK-21b clang?<br>
<br>
It fails with the musl build though, because the first fixup in lib/portability.h:<br>
<br>
// For musl<br>
#define _ALL_SOURCE<br>
#ifndef REG_STARTEND<br>
#define REG_STARTEND 0<br>
#endif<br>
<br>
never got fixed in musl:<br>
<br>
<a href="https://www.openwall.com/lists/musl/2013/01/15/26" rel="noreferrer" target="_blank">https://www.openwall.com/lists/musl/2013/01/15/26</a><br>
<a href="https://www.gitmemory.com/issue/nicm/fdm/77/578155457" rel="noreferrer" target="_blank">https://www.gitmemory.com/issue/nicm/fdm/77/578155457</a><br>
<a href="https://github.com/yrutschle/sslh/issues/40" rel="noreferrer" target="_blank">https://github.com/yrutschle/sslh/issues/40</a><br>
<a href="https://savannah.gnu.org/bugs/?50447" rel="noreferrer" target="_blank">https://savannah.gnu.org/bugs/?50447</a><br>
<a href="https://github.com/tmux/tmux/issues/1994" rel="noreferrer" target="_blank">https://github.com/tmux/tmux/issues/1994</a><br>
<br>
But that's a known bug in musl.<br>
<br>
Ahem, "design choice Rich made that regularly breaks people's code and has to be<br>
worked around". He dislikes such things being called bugs because bug implies<br>
mistake when he did it intentionally and has defended its preservation for<br>
years, at length, over multiple objections:<br>
<br>
<a href="https://marc.info/?l=git&m=147560139529266&w=2" rel="noreferrer" target="_blank">https://marc.info/?l=git&m=147560139529266&w=2</a><br>
<br>
> 2020-06-20T14:46:07.4062489Z PASS: grep implicit BRE |<br>
> ...<br>
> 2020-06-20T14:46:18.8829033Z PASS: sed \n too high<br>
> 2020-06-20T14:46:23.9744710Z FAIL: sed megabyte s/x/y/g (5 sec timeout)<br>
> 2020-06-20T14:46:23.9993359Z PASS: sed s i and I<br>
<br>
Hmmm...<br>
<br>
$ bash -c 'X=x; Y=20; while [ $Y -gt 0 ]; do X=$X$X; Y=$(($Y-1)); done; echo $X<br>
| toybox time toybox sed s/x/y/g | sha1sum'<br>
real 0.513341<br>
user 0.376000<br>
sys 0.004000<br>
138c1fa7c3f64186203b0192fb4abdb33cb4e98a  -<br>
<br>
That's the musl binary...<br>
<br>
$ bash -c 'X=x; Y=20; while [ $Y -gt 0 ]; do X=$X$X; Y=$(($Y-1)); done; echo $X<br>
| ./toybox time ./toybox sed s/x/y/g | sha1sum'<br>
real 0.313839<br>
user 0.184000<br>
sys 0.000000<br>
138c1fa7c3f64186203b0192fb4abdb33cb4e98a  -<br>
<br>
glibc binary...<br>
<br>
$ bash -c 'X=x; Y=20; while [ $Y -gt 0 ]; do X=$X$X; Y=$(($Y-1)); done; echo $X<br>
| ./toybox time ./toybox sed s/x/y/g | sha1sum'<br>
real 0.555019<br>
user 0.424000<br>
sys 0.000000<br>
138c1fa7c3f64186203b0192fb4abdb33cb4e98a  -<br>
<br>
bionic/clang binary.<br>
<br>
Even with AOSP building in the background, it took half a second on my laptop<br>
and the timeout is 10x that.<br>
<br>
> * Quite a few of the Alpine tests are failing as some of the tests depend upon<br>
> privileges that are not available when running in a container. <br>
<br>
In which case what I need to do is set up this environment locally and reproduce<br>
the issues so I can debug and fix them. If container privileges are breaking the<br>
tests... I'd like to know more about that but am not 100% sure that isn't pilot<br>
error? But I definitely want to reproduce it to understand the issue.<br>
<br>
I should set up a "run test suite with the 3 toolchains I usually test with"<br>
wrapper script...<br>
<br>
And I agree that "macos regression test build" is not an environment I otherwise<br>
have access to, and if github's going to offer that when nothing else does, I<br>
need to figure out how to take advantage of that to at least make Elliott's life<br>
easier. Not happy about it, trying to figure out least ugly way of doing it, but<br>
you're right it needs to be done.<br>
<br>
Rob<br>
</blockquote></div>