<div dir="ltr"><div>Hi Alex, </div>Just curious, what is the OS on this bot? <div><br></div><div>Anyway... </div><div><br></div><div>libFuzzer implements a random search algorithm and so the tests are inherently random. </div><div>To partially fix this we run most tests with a fixed RNG seed (e.g. -seed=1) but this only makes</div><div>them deterministic on one given platform (i.e. one given implementation of C++'s std::mt19937).</div><div><br></div><div>This means that the test may pass on my platform (always) and fail on yours (always). </div><div><br></div><div>For this particular test, I've run it 1000 with different seeds and it failed 53 times. </div><div>However, if I increase the number of iterations for this test from 100,000 to 1,000,000 the test passes 1000 out of 1000. </div><div><br></div><div>Hence I hope r310091 will fix your bot. </div><div><br></div><div>Thanks for the report! </div><div><br></div><div>(BTW, check-fuzzer is broken currently for an unrelated reason: r<span style="font-size:12.8px">310077</span>)</div><div><br></div><div>--kcc</div></div><div class="gmail_extra"><br><div class="gmail_quote">On Fri, Aug 4, 2017 at 5:41 AM, Alex L <span dir="ltr"><<a href="mailto:arphaman@gmail.com" target="_blank">arphaman@gmail.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Kostya,<div><br></div><div>This change seems to have broken our Fuzzer buildbot:</div><div><a href="http://lab.llvm.org:8080/green/job/libFuzzer/" target="_blank">http://lab.llvm.org:8080/<wbr>green/job/libFuzzer/</a></div><div><br></div><div>Now trace-pc.test is failing (most of the time, it seems to have succeeded once or twice). I've managed to reproduce it on the bot itself, but not on my local machine. I've attached the output of LLVMFuzzer-SimpleTest-TracePC on the bot in a file. It doesn't contain BINGO, so the test fails. Do you know what is going on here? I've confirmed that reverting this commit fixes the issue.</div><div><br></div><div>Let me know if there's anything else I can do,</div><div>Alex</div><div><br></div><div><br></div><div><br></div></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><div class="gmail_quote">On 1 August 2017 at 19:04, Kostya Serebryany via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">r309716 should make the windows bot green. <div>Redi, Zack, please help me fix this on windows ASAP, this is blocking my progress (should be simple). </div></div><div class="m_7812656652182000123HOEnZb"><div class="m_7812656652182000123h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 1, 2017 at 10:56 AM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hold on, I'll revert only the part that actually causes the failure. <div><br></div></div><div class="m_7812656652182000123m_-8616153134914102544HOEnZb"><div class="m_7812656652182000123m_-8616153134914102544h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 1, 2017 at 10:46 AM, Vitaly Buka <span dir="ltr"><<a href="mailto:vitalybuka@google.com" target="_blank">vitalybuka@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">I am going revert this change?</div><div class="m_7812656652182000123m_-8616153134914102544m_-500554924053409689HOEnZb"><div class="m_7812656652182000123m_-8616153134914102544m_-500554924053409689h5"><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 1, 2017 at 8:16 AM, Kostya Serebryany <span dir="ltr"><<a href="mailto:kcc@google.com" target="_blank">kcc@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi Reid, Zach, <div><br></div><div>I've introduced yet another kind of coverage instrumentation, which doesn't work on windows out of the box. </div><div>Could you please help? </div><div>This is again something about section naming. </div><div><br></div><div>--kcc</div><div><div class="m_7812656652182000123m_-8616153134914102544m_-500554924053409689m_-5349227221420618492h5"><div><br><div class="gmail_extra"><br><div class="gmail_quote">On Tue, Aug 1, 2017 at 1:27 AM, Vitaly Buka <span dir="ltr"><<a href="mailto:vitalybuka@google.com" target="_blank">vitalybuka@google.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Broken by this patch <div><a href="http://lab.llvm.org:8011/builders/sanitizer-windows/builds/14792" target="_blank">http://lab.llvm.org:8011/build<wbr>ers/sanitizer-windows/builds/1<wbr>4792</a><br></div></div><div class="m_7812656652182000123m_-8616153134914102544m_-500554924053409689m_-5349227221420618492m_4535793430713785507m_2989289892906394904HOEnZb"><div class="m_7812656652182000123m_-8616153134914102544m_-500554924053409689m_-5349227221420618492m_4535793430713785507m_2989289892906394904h5"><div class="gmail_extra"><br><div class="gmail_quote">On Mon, Jul 31, 2017 at 5:48 PM, Kostya Serebryany via llvm-commits <span dir="ltr"><<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: kcc<br>
Date: Mon Jul 31 17:48:44 2017<br>
New Revision: 309646<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=309646&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject?rev=309646&view=rev</a><br>
Log:<br>
[libFuzzer] enable -fsanitize-coverage=pc-table for all tests<br>
<br>
Modified:<br>
    llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.cpp<br>
    llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.h<br>
    llvm/trunk/lib/Fuzzer/test/CMa<wbr>keLists.txt<br>
    llvm/trunk/lib/Fuzzer/test/inl<wbr>ine-8bit-counters.test<br>
<br>
Modified: llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerTracePC.cpp?rev=309646&r1=309645&r2=309646&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Fuzzer/Fu<wbr>zzerTracePC.cpp?rev=309646&r1=<wbr>309645&r2=309646&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.cpp (original)<br>
+++ llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.cpp Mon Jul 31 17:48:44 2017<br>
@@ -72,7 +72,7 @@ void TracePC::HandlePCsInit(const uint8_<br>
   if (NumPCTables && ModulePCTable[NumPCTables - 1].Start == B) return;<br>
   assert(NumPCTables < sizeof(ModulePCTable) / sizeof(ModulePCTable[0]));<br>
   ModulePCTable[NumPCTables++] = {B, E};<br>
-  NumPCsInPCTables = E - B;<br>
+  NumPCsInPCTables += E - B;<br>
 }<br>
<br>
 void TracePC::HandleInit(uint32_t *Start, uint32_t *Stop) {<br>
@@ -95,26 +95,36 @@ void TracePC::HandleInit(uint32_t *Start<br>
<br>
 void TracePC::PrintModuleInfo() {<br>
   if (NumGuards) {<br>
-    Printf("INFO: Loaded %zd modules (%zd guards): ", NumModules, NumGuards);<br>
+    Printf("INFO: Loaded %zd modules   (%zd guards): ", NumModules, NumGuards);<br>
     for (size_t i = 0; i < NumModules; i++)<br>
-      Printf("[%p, %p), ", Modules[i].Start, Modules[i].Stop);<br>
+      Printf("%zd [%p, %p), ", Modules[i].Stop - Modules[i].Start,<br>
+             Modules[i].Start, Modules[i].Stop);<br>
     Printf("\n");<br>
   }<br>
   if (NumModulesWithInline8bitCount<wbr>ers) {<br>
-    Printf("INFO: Loaded %zd modules with %zd inline 8-bit counters: ",<br>
+    Printf("INFO: Loaded %zd modules   (%zd inline 8-bit counters): ",<br>
            NumModulesWithInline8bitCounte<wbr>rs, NumInline8bitCounters);<br>
     for (size_t i = 0; i < NumModulesWithInline8bitCounte<wbr>rs; i++)<br>
-      Printf("[%p, %p), ", ModuleCounters[i].Start, ModuleCounters[i].Stop);<br>
+      Printf("%zd [%p, %p), ", ModuleCounters[i].Stop - ModuleCounters[i].Start,<br>
+             ModuleCounters[i].Start, ModuleCounters[i].Stop);<br>
     Printf("\n");<br>
   }<br>
   if (NumPCTables) {<br>
-    Printf("INFO: Loaded %zd PC tables,   %zd PCs: ", NumPCTables,<br>
+    Printf("INFO: Loaded %zd PC tables (%zd PCs): ", NumPCTables,<br>
            NumPCsInPCTables);<br>
     for (size_t i = 0; i < NumPCTables; i++) {<br>
-      Printf("[%p,%p), ", ModulePCTable[i].Start, ModulePCTable[i].Stop,<br>
-             ModulePCTable[i].Stop - ModulePCTable[i].Start);<br>
+      Printf("%zd [%p,%p), ", ModulePCTable[i].Stop - ModulePCTable[i].Start,<br>
+             ModulePCTable[i].Start, ModulePCTable[i].Stop);<br>
     }<br>
     Printf("\n");<br>
+<br>
+    if ((NumGuards && NumGuards != NumPCsInPCTables) ||<br>
+        (NumInline8bitCounters && NumInline8bitCounters != NumPCsInPCTables)) {<br>
+      Printf("ERROR: The size of coverage PC tables does not match the"<br>
+             " number of instrumented PCs. This might be a bug in the compiler,"<br>
+             " please contact the libFuzzer developers.\n");<br>
+      _Exit(1);<br>
+    }<br>
   }<br>
 }<br>
<br>
<br>
Modified: llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.h<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/FuzzerTracePC.h?rev=309646&r1=309645&r2=309646&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Fuzzer/Fu<wbr>zzerTracePC.h?rev=309646&r1=30<wbr>9645&r2=309646&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.h (original)<br>
+++ llvm/trunk/lib/Fuzzer/FuzzerTr<wbr>acePC.h Mon Jul 31 17:48:44 2017<br>
@@ -86,7 +86,8 @@ class TracePC {<br>
<br>
   void ResetMaps() {<br>
     ValueProfileMap.Reset();<br>
-    memset(Counters(), 0, GetNumPCs());<br>
+    if (NumModules)<br>
+      memset(Counters(), 0, GetNumPCs());<br>
     ClearExtraCounters();<br>
     ClearInlineCounters();<br>
   }<br>
<br>
Modified: llvm/trunk/lib/Fuzzer/test/CMa<wbr>keLists.txt<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/CMakeLists.txt?rev=309646&r1=309645&r2=309646&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Fuzzer/te<wbr>st/CMakeLists.txt?rev=309646&r<wbr>1=309645&r2=309646&view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Fuzzer/test/CMa<wbr>keLists.txt (original)<br>
+++ llvm/trunk/lib/Fuzzer/test/CMa<wbr>keLists.txt Mon Jul 31 17:48:44 2017<br>
@@ -15,7 +15,7 @@ foreach (VARNAME ${variables_to_filter})<br>
 endforeach()<br>
<br>
 # Enable the coverage instrumentation (it is disabled for the Fuzzer lib).<br>
-set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fsanitize-coverage=trace-pc-g<wbr>uard,indirect-calls,trace-cmp,<wbr>trace-div,trace-gep -gline-tables-only")<br>
+set(CMAKE_CXX_FLAGS "${LIBFUZZER_FLAGS_BASE} -fsanitize-coverage=trace-pc-g<wbr>uard,indirect-calls,trace-cmp,<wbr>trace-div,trace-gep,pc-table -gline-tables-only")<br>
<br>
 if(MSVC)<br>
   # For tests use the CRT specified for release build<br>
<br>
Modified: llvm/trunk/lib/Fuzzer/test/inl<wbr>ine-8bit-counters.test<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Fuzzer/test/inline-8bit-counters.test?rev=309646&r1=309645&r2=309646&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-pr<wbr>oject/llvm/trunk/lib/Fuzzer/te<wbr>st/inline-8bit-counters.test?r<wbr>ev=309646&r1=309645&r2=309646&<wbr>view=diff</a><br>
==============================<wbr>==============================<wbr>==================<br>
--- llvm/trunk/lib/Fuzzer/test/inl<wbr>ine-8bit-counters.test (original)<br>
+++ llvm/trunk/lib/Fuzzer/test/inl<wbr>ine-8bit-counters.test Mon Jul 31 17:48:44 2017<br>
@@ -1,4 +1,4 @@<br>
 REQUIRES: linux<br>
-CHECK: INFO: Loaded 1 modules with {{.*}} inline 8-bit counters<br>
+CHECK: INFO: Loaded 1 modules ({{.*}} inline 8-bit counters)<br>
 CHECK: BINGO<br>
 RUN: not LLVMFuzzer-SimpleTest-Inline8b<wbr>itCounters -runs=1000000 -seed=1 2>&1 | FileCheck %s<br>
<br>
<br>
______________________________<wbr>_________________<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/<wbr>mailman/listinfo/llvm-commits</a><br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div></div></div></div></div>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div></blockquote></div><br></div>
</div></div><br>______________________________<wbr>_________________<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/<wbr>mailman/listinfo/llvm-commits</a><br>
<br></blockquote></div><br></div>
</div></div></blockquote></div><br></div>