<div dir="ltr">Thanks Hal. I'll try to fix this. I guess ANY is OK there.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Apr 12, 2017 at 5:04 PM Hal Finkel <<a href="mailto:hfinkel@anl.gov">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"><div bgcolor="#FFFFFF" text="#000000">
<p><br>
</p>
<div class="m_-4321072554037880018moz-cite-prefix">On 04/12/2017 06:31 PM, Vitaly Buka
wrote:<br>
</div>
<blockquote type="cite">
<div dir="ltr">Does this fail on just before? E.g. on r299883
<div>It's weird that it fails <span style="color:rgb(33,33,33)">IpTests/MemorySanitizerIpTest.</span><span style="color:rgb(33,33,33)">accept/<b>0</b> which suppose to
be IPv4 as before.</span></div>
</div>
</blockquote>
<br></div><div bgcolor="#FFFFFF" text="#000000">
Both the /0 test which fail, and the /1 tests which fail, say where
GetParam() = 10. The 10 is AF_INET6 (it would say 2 for AF_INET). So
it is just the IPv6 tests that are failing.<br>
<br>
Heh; actually, I think the problem here is the code:</div><div bgcolor="#FFFFFF" text="#000000"><br>
<br>
 for (int i : std::vector<int>(AF_INET, AF_INET6)) {<br>
   int s = socket(i, SOCK_STREAM, 0);<br></div><div bgcolor="#FFFFFF" text="#000000">
   if (s > 0) {<br>
     result.push_back(i);<br>
     close(s);<br>
   }<br>
 }<br>
<br>
std::vector<int>(AF_INET, AF_INET6) creates a vector of size 2
(because AF_INET == 2) where each element is initialized to
AF_INET6. This is not what you intended.<br>
<br>
Also, it seems that the systems in my build cluster don't have valid
IPv6 loopback addresses. I did some quick tests and a bind on an
IPv6 socket succeeds with in6addr_any but fails with
in6addr_loopback. I suppose this makes sense because the lo
interface does not seem to have an IPv6 address:<br>
<br>
$ ifconfig lo<br>
lo: flags=73<UP,LOOPBACK,RUNNING>Â mtu 65536<br>
       inet 127.0.0.1 netmask 255.255.255.0<br>
       loop txqueuelen 1 (Local Loopback)<br>
       RX packets ...<br>
<br>
I suspect this explains why the IPv6 tests, which want to bind to
in6addr_loopback, fail.<br>
<br>
Thanks again,<br>
Hal</div><div bgcolor="#FFFFFF" text="#000000"><br>
<br>
<blockquote type="cite"><br>
<div class="gmail_quote">
<div dir="ltr">On Wed, Apr 12, 2017 at 4:22 PM Vitaly Buka <<a href="mailto:vitalybuka@google.com" target="_blank">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" class="m_-4321072554037880018gmail_msg">Oh, my mistake squashing
local git commits.Â
<div class="m_-4321072554037880018gmail_msg">This CL reverts nothing.</div>
</div>
<br class="m_-4321072554037880018gmail_msg">
<div class="gmail_quote m_-4321072554037880018gmail_msg">
<div dir="ltr" class="m_-4321072554037880018gmail_msg">On Wed, Apr 12, 2017 at
4:07 PM Hal Finkel <<a href="mailto:hfinkel@anl.gov" class="m_-4321072554037880018gmail_msg" target="_blank">hfinkel@anl.gov</a>> wrote:<br class="m_-4321072554037880018gmail_msg">
</div>
<blockquote class="gmail_quote m_-4321072554037880018gmail_msg" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">FYI:
This is failing on my build cluster. I see output like
this:<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
[ RUNÂ Â Â ] IpTests/MemorySanitizerIpTest.accept/0<br class="m_-4321072554037880018gmail_msg">
/home/hfinkel/public/src/llvm/projects/compiler-rt/lib/msan/tests/msan_test.cc:972:<br class="m_-4321072554037880018gmail_msg">
Failure<br class="m_-4321072554037880018gmail_msg">
    Expected: 0<br class="m_-4321072554037880018gmail_msg">
To be equal to: res<br class="m_-4321072554037880018gmail_msg">
    Which is: -1<br class="m_-4321072554037880018gmail_msg">
[Â FAILEDÂ ] IpTests/MemorySanitizerIpTest.accept/0, where
GetParam() =<br class="m_-4321072554037880018gmail_msg">
10 (3 ms)<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
...<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-Test/IpTests/MemorySanitizerIpTest.accept/0<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-Test/IpTests/MemorySanitizerIpTest.accept/1<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-Test/IpTests/MemorySanitizerIpTest.recvmsg/0<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-Test/IpTests/MemorySanitizerIpTest.recvmsg/1<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-with-call-Test/IpTests/MemorySanitizerIpTest.accept/0<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-with-call-Test/IpTests/MemorySanitizerIpTest.accept/1<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-with-call-Test/IpTests/MemorySanitizerIpTest.recvmsg/0<br class="m_-4321072554037880018gmail_msg">
   MemorySanitizer-Unit ::<br class="m_-4321072554037880018gmail_msg">
Msan-x86_64-with-call-Test/IpTests/MemorySanitizerIpTest.recvmsg/1<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
The call to bind() is failing (i.e. returning -1).<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
On 04/10/2017 04:03 PM, Vitaly Buka via llvm-commits
wrote:<br class="m_-4321072554037880018gmail_msg">
> Author: vitalybuka<br class="m_-4321072554037880018gmail_msg">
> Date: Mon Apr 10 16:03:18 2017<br class="m_-4321072554037880018gmail_msg">
> New Revision: 299884<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=299884&view=rev" rel="noreferrer" class="m_-4321072554037880018gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project?rev=299884&view=rev</a><br class="m_-4321072554037880018gmail_msg">
> Log:<br class="m_-4321072554037880018gmail_msg">
> [msan] Choose in runtime if IPv4 or IPv6 are
supported.<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Summary: This reverts commit
cab5051c691ce27a7ffac41e8e76ceb222ad9549.<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
Which commit is this?<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
 -Hal<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Reviewers: eugenis<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Subscribers: mgorny, llvm-commits<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Differential Revision: <a href="https://reviews.llvm.org/D31894" rel="noreferrer" class="m_-4321072554037880018gmail_msg" target="_blank">https://reviews.llvm.org/D31894</a><br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Modified:<br class="m_-4321072554037880018gmail_msg">
>Â Â Â compiler-rt/trunk/lib/msan/tests/CMakeLists.txt<br class="m_-4321072554037880018gmail_msg">
>Â Â Â compiler-rt/trunk/lib/msan/tests/msan_test.cc<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Modified:
compiler-rt/trunk/lib/msan/tests/CMakeLists.txt<br class="m_-4321072554037880018gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/CMakeLists.txt?rev=299884&r1=299883&r2=299884&view=diff" rel="noreferrer" class="m_-4321072554037880018gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/CMakeLists.txt?rev=299884&r1=299883&r2=299884&view=diff</a><br class="m_-4321072554037880018gmail_msg">
>
==============================================================================<br class="m_-4321072554037880018gmail_msg">
> --- compiler-rt/trunk/lib/msan/tests/CMakeLists.txt
(original)<br class="m_-4321072554037880018gmail_msg">
> +++ compiler-rt/trunk/lib/msan/tests/CMakeLists.txt
Mon Apr 10 16:03:18 2017<br class="m_-4321072554037880018gmail_msg">
> @@ -35,6 +35,7 @@ set(MSAN_UNITTEST_COMMON_CFLAGS<br class="m_-4321072554037880018gmail_msg">
>Â Â Â -Wno-zero-length-array<br class="m_-4321072554037880018gmail_msg">
>Â Â Â -Wno-uninitialized<br class="m_-4321072554037880018gmail_msg">
>Â Â Â -Werror=sign-compare<br class="m_-4321072554037880018gmail_msg">
> +Â -Wno-gnu-zero-variadic-macro-arguments<br class="m_-4321072554037880018gmail_msg">
>Â Â )<br class="m_-4321072554037880018gmail_msg">
>Â Â set(MSAN_UNITTEST_INSTRUMENTED_CFLAGS<br class="m_-4321072554037880018gmail_msg">
>Â Â Â ${MSAN_UNITTEST_COMMON_CFLAGS}<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> Modified:
compiler-rt/trunk/lib/msan/tests/msan_test.cc<br class="m_-4321072554037880018gmail_msg">
> URL: <a href="http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=299884&r1=299883&r2=299884&view=diff" rel="noreferrer" class="m_-4321072554037880018gmail_msg" target="_blank">http://llvm.org/viewvc/llvm-project/compiler-rt/trunk/lib/msan/tests/msan_test.cc?rev=299884&r1=299883&r2=299884&view=diff</a><br class="m_-4321072554037880018gmail_msg">
>
==============================================================================<br class="m_-4321072554037880018gmail_msg">
> --- compiler-rt/trunk/lib/msan/tests/msan_test.cc
(original)<br class="m_-4321072554037880018gmail_msg">
> +++ compiler-rt/trunk/lib/msan/tests/msan_test.cc Mon
Apr 10 16:03:18 2017<br class="m_-4321072554037880018gmail_msg">
> @@ -902,9 +902,7 @@ class SocketAddr4 : public
SocketAddr {<br class="m_-4321072554037880018gmail_msg">
>Â Â Â Â sai_.sin_addr.s_addr = htonl(INADDR_LOOPBACK);<br class="m_-4321072554037880018gmail_msg">
>Â Â Â }<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> -Â sockaddr *ptr() override {<br class="m_-4321072554037880018gmail_msg">
> -Â Â return reinterpret_cast<sockaddr
*>(&sai_);<br class="m_-4321072554037880018gmail_msg">
> -Â }<br class="m_-4321072554037880018gmail_msg">
> +Â sockaddr *ptr() override { return
reinterpret_cast<sockaddr *>(&sai_); }<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
>Â Â Â size_t size() const override { return
sizeof(sai_); }<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> @@ -912,14 +910,60 @@ class SocketAddr4 : public
SocketAddr {<br class="m_-4321072554037880018gmail_msg">
>Â Â Â sockaddr_in sai_;<br class="m_-4321072554037880018gmail_msg">
>Â Â };<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> -template <class... Args><br class="m_-4321072554037880018gmail_msg">
> -std::unique_ptr<SocketAddr>
CreateSockAddr(Args... args) {<br class="m_-4321072554037880018gmail_msg">
> -Â return std::unique_ptr<SocketAddr>(new
SocketAddr4(args...));<br class="m_-4321072554037880018gmail_msg">
> +class SocketAddr6 : public SocketAddr {<br class="m_-4321072554037880018gmail_msg">
> + public:<br class="m_-4321072554037880018gmail_msg">
> +Â SocketAddr6() { EXPECT_POISONED(sai_); }<br class="m_-4321072554037880018gmail_msg">
> +Â explicit SocketAddr6(uint16_t port) {<br class="m_-4321072554037880018gmail_msg">
> +Â Â memset(&sai_, 0, sizeof(sai_));<br class="m_-4321072554037880018gmail_msg">
> +Â Â sai_.sin6_family = AF_INET6;<br class="m_-4321072554037880018gmail_msg">
> +Â Â sai_.sin6_port = port;<br class="m_-4321072554037880018gmail_msg">
> +Â Â sai_.sin6_addr = in6addr_loopback;<br class="m_-4321072554037880018gmail_msg">
> +Â }<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +Â sockaddr *ptr() override { return
reinterpret_cast<sockaddr *>(&sai_); }<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +Â size_t size() const override { return
sizeof(sai_); }<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> + private:<br class="m_-4321072554037880018gmail_msg">
> +Â sockaddr_in6 sai_;<br class="m_-4321072554037880018gmail_msg">
> +};<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +class MemorySanitizerIpTest : public
::testing::TestWithParam<int> {<br class="m_-4321072554037880018gmail_msg">
> + public:<br class="m_-4321072554037880018gmail_msg">
> +Â void SetUp() override {<br class="m_-4321072554037880018gmail_msg">
> +Â Â ASSERT_TRUE(GetParam() == AF_INET || GetParam()
== AF_INET6);<br class="m_-4321072554037880018gmail_msg">
> +Â }<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +Â template <class... Args><br class="m_-4321072554037880018gmail_msg">
> +Â std::unique_ptr<SocketAddr>
CreateSockAddr(Args... args) const {<br class="m_-4321072554037880018gmail_msg">
> +Â Â if (GetParam() == AF_INET)<br class="m_-4321072554037880018gmail_msg">
> +Â Â Â return std::unique_ptr<SocketAddr>(new
SocketAddr4(args...));<br class="m_-4321072554037880018gmail_msg">
> +Â Â return std::unique_ptr<SocketAddr>(new
SocketAddr6(args...));<br class="m_-4321072554037880018gmail_msg">
> +Â }<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +Â int CreateSocket(int socket_type) const {<br class="m_-4321072554037880018gmail_msg">
> +Â Â return socket(GetParam(), socket_type, 0);<br class="m_-4321072554037880018gmail_msg">
> +Â }<br class="m_-4321072554037880018gmail_msg">
> +};<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +std::vector<int>
GetAvailableIpSocketFamilies() {<br class="m_-4321072554037880018gmail_msg">
> +Â std::vector<int> result;<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +Â for (int i : std::vector<int>(AF_INET,
AF_INET6)) {<br class="m_-4321072554037880018gmail_msg">
> +Â Â int s = socket(i, SOCK_STREAM, 0);<br class="m_-4321072554037880018gmail_msg">
> +Â Â if (s > 0) {<br class="m_-4321072554037880018gmail_msg">
> +Â Â Â result.push_back(i);<br class="m_-4321072554037880018gmail_msg">
> +Â Â Â close(s);<br class="m_-4321072554037880018gmail_msg">
> +Â Â }<br class="m_-4321072554037880018gmail_msg">
> +Â }<br class="m_-4321072554037880018gmail_msg">
> +<br class="m_-4321072554037880018gmail_msg">
> +Â return result;<br class="m_-4321072554037880018gmail_msg">
>Â Â }<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> -int CreateSocket(int socket_type) { return
socket(AF_INET, socket_type, 0); }<br class="m_-4321072554037880018gmail_msg">
> +INSTANTIATE_TEST_CASE_P(IpTests,
MemorySanitizerIpTest,<br class="m_-4321072554037880018gmail_msg">
> +Â Â Â Â Â Â Â Â Â Â Â Â
::testing::ValuesIn(GetAvailableIpSocketFamilies()));<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> -TEST(MemorySanitizer, accept) {<br class="m_-4321072554037880018gmail_msg">
> +TEST_P(MemorySanitizerIpTest, accept) {<br class="m_-4321072554037880018gmail_msg">
>Â Â Â int listen_socket = CreateSocket(SOCK_STREAM);<br class="m_-4321072554037880018gmail_msg">
>Â Â Â ASSERT_LT(0, listen_socket);<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> @@ -963,7 +1007,7 @@ TEST(MemorySanitizer, accept) {<br class="m_-4321072554037880018gmail_msg">
>Â Â Â close(listen_socket);<br class="m_-4321072554037880018gmail_msg">
>Â Â }<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> -TEST(MemorySanitizer, recvmsg) {<br class="m_-4321072554037880018gmail_msg">
> +TEST_P(MemorySanitizerIpTest, recvmsg) {<br class="m_-4321072554037880018gmail_msg">
>Â Â Â int server_socket = CreateSocket(SOCK_DGRAM);<br class="m_-4321072554037880018gmail_msg">
>Â Â Â ASSERT_LT(0, server_socket);<br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
><br class="m_-4321072554037880018gmail_msg">
> _______________________________________________<br class="m_-4321072554037880018gmail_msg">
> llvm-commits mailing list<br class="m_-4321072554037880018gmail_msg">
> <a href="mailto:llvm-commits@lists.llvm.org" class="m_-4321072554037880018gmail_msg" target="_blank">llvm-commits@lists.llvm.org</a><br class="m_-4321072554037880018gmail_msg">
> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" class="m_-4321072554037880018gmail_msg" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
--<br class="m_-4321072554037880018gmail_msg">
Hal Finkel<br class="m_-4321072554037880018gmail_msg">
Lead, Compiler Technology and Programming Languages<br class="m_-4321072554037880018gmail_msg">
Leadership Computing Facility<br class="m_-4321072554037880018gmail_msg">
Argonne National Laboratory<br class="m_-4321072554037880018gmail_msg">
<br class="m_-4321072554037880018gmail_msg">
</blockquote>
</div>
</blockquote>
</div>
</blockquote>
<br>
<pre class="m_-4321072554037880018moz-signature" cols="72">--
Hal Finkel
Lead, Compiler Technology and Programming Languages
Leadership Computing Facility
Argonne National Laboratory</pre>
</div></blockquote></div>