<div dir="ltr">reverted r300249, new fix r300250<br></div><br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 13, 2017 at 11:20 AM Vitaly Buka <<a href="mailto:vitalybuka@google.com">vitalybuka@google.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Thanks, I'll update the test.</div><br><div class="gmail_quote"><div dir="ltr">On Thu, Apr 13, 2017 at 6:55 AM Hal Finkel <<a href="mailto:hfinkel@anl.gov" target="_blank">hfinkel@anl.gov</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Hi Vitaly,<br>
<br>
With further testing, I recommend that you revert this. It does not<br>
actually solve the problem. In short, I now see this failure mode:<br>
<br>
     MemorySanitizer-Unit ::<br>
Msan-x86_64-Test/IpTests/MemorySanitizerIpTest.accept/1<br>
     MemorySanitizer-Unit ::<br>
Msan-x86_64-Test/IpTests/MemorySanitizerIpTest.recvmsg/1<br>
     MemorySanitizer-Unit ::<br>
Msan-x86_64-with-call-Test/IpTests/MemorySanitizerIpTest.accept/1<br>
     MemorySanitizer-Unit ::<br>
Msan-x86_64-with-call-Test/IpTests/MemorySanitizerIpTest.recvmsg/1<br>
<br>
[ RUN      ] IpTests/MemorySanitizerIpTest.accept/1<br>
/home/hfinkel/public/src/llvm/projects/compiler-rt/lib/msan/tests/msan_test.cc:990:<br>
Failure<br>
       Expected: 115<br>
To be equal to: (*__errno_location ())<br>
       Which is: 113<br>
[  FAILED  ] IpTests/MemorySanitizerIpTest.accept/1, where GetParam() =<br>
10 (4 ms)<br>
[----------] 1 test from IpTests/MemorySanitizerIpTest (4 ms total)<br>
<br>
Meaning that, instead of returning EINPROGRESS, it returns EHOSTUNREACH<br>
(which is consistent with the lack of IPv6 on the interfaces).<br>
<br>
...<br>
<br>
[ RUN      ] IpTests/MemorySanitizerIpTest.recvmsg/1<br>
/home/hfinkel/public/src/llvm/projects/compiler-rt/lib/msan/tests/msan_test.cc:1046:<br>
Failure<br>
Expected: (0) < (res), actual: 0 vs -1<br>
[  FAILED  ] IpTests/MemorySanitizerIpTest.recvmsg/1, where GetParam() =<br>
10 (4 ms)<br>
[----------] 1 test from IpTests/MemorySanitizerIpTest (4 ms total)<br>
<br>
...<br>
<br>
(i.e. sendmsg did not actually send any data - we don't report errno in<br>
this case).<br>
<br>
Instead of making the tests robust to all of the ways that the socket<br>
calls might fail on a system that does not actually have IPv6 configured<br>
(even if the kernel supports it), I suggest just asking for the loopback<br>
interface and then dealing with the fact that the bind call might fail.<br>
On my system, binding to the loopback when it has no IPv6 assignment<br>
sets errno to EADDRNOTAVAIL.<br>
<br>
Thanks again,<br>
Hal<br>
<br>
On 04/12/2017 07:36 PM, Vitaly Buka via llvm-commits wrote:<br>
> Author: vitalybuka<br>
> Date: Wed Apr 12 19:36:03 2017<br>
> New Revision: 300150<br>
><br>
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=300150&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=300150&view=rev</a><br>
> Log:<br>
> [msan] Fix msan_test broken after r299884.<br>
><br>
> Bind to ANY as some machines may have IPv6 support but without IPv6 on loopback<br>
> interface.<br>
><br>
> Reviewers: eugenis<br>
><br>
> Subscribers: llvm-commits<br>
><br>
> Differential Revision: <a href="https://reviews.llvm.org/D31998" rel="noreferrer" target="_blank">https://reviews.llvm.org/D31998</a><br>
><br>
> Modified:<br>
>      compiler-rt/trunk/lib/msan/tests/msan_test.cc<br>
><br>
> Modified: compiler-rt/trunk/lib/msan/tests/msan_test.cc<br>
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=300150&r1=300149&r2=300150&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=300150&r1=300149&r2=300150&view=diff</a><br>
> ==============================================================================<br>
> --- compiler-rt/trunk/lib/msan/tests/msan_test.cc (original)<br>
> +++ compiler-rt/trunk/lib/msan/tests/msan_test.cc Wed Apr 12 19:36:03 2017<br>
> @@ -899,7 +899,7 @@ class SocketAddr4 : public SocketAddr {<br>
>       memset(&sai_, 0, sizeof(sai_));<br>
>       sai_.sin_family = AF_INET;<br>
>       sai_.sin_port = port;<br>
> -    sai_.sin_addr.s_addr = htonl(INADDR_LOOPBACK);<br>
> +    sai_.sin_addr.s_addr = htonl(INADDR_ANY);<br>
>     }<br>
><br>
>     sockaddr *ptr() override { return reinterpret_cast<sockaddr *>(&sai_); }<br>
> @@ -917,7 +917,7 @@ class SocketAddr6 : public SocketAddr {<br>
>       memset(&sai_, 0, sizeof(sai_));<br>
>       sai_.sin6_family = AF_INET6;<br>
>       sai_.sin6_port = port;<br>
> -    sai_.sin6_addr = in6addr_loopback;<br>
> +    sai_.sin6_addr = in6addr_any;<br>
>     }<br>
><br>
>     sockaddr *ptr() override { return reinterpret_cast<sockaddr *>(&sai_); }<br>
><br>
><br>
> _______________________________________________<br>
> llvm-commits mailing list<br>
> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
<br>
--<br>
Hal Finkel<br>
Lead, Compiler Technology and Programming Languages<br>
Leadership Computing Facility<br>
Argonne National Laboratory<br>
<br>
</blockquote></div></blockquote></div>