<div dir="ltr"><br><div class="gmail_extra"><br><div class="gmail_quote">On Wed, Sep 5, 2018 at 11:55 PM, Kirill Bobyrev via cfe-dev <span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@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 style="word-wrap:break-word;line-break:after-white-space"><div>Hi Mikael,</div><div><br></div><div>Thanks for pointing that out! Could you share information about what compiler + system you used to build and run tests? Sometimes, UB is relatively easy to reproduce using the same setup.</div><div><br></div><div>As Mehmet mentioned, it looks that there might be uninitialised variable given the Valgrind log that you provided.</div><div><br></div><div>Could you please attach the whole log so that it would be easier for us to understand the cause of problem(s)?</div><div><br></div><div>+clangd-dev</div><div><br></div><div>Kind regards,</div><div>Kirill<br><div><br></div></div></div></blockquote><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div><br></div><div><br></div><div><br></div><div>The following reasons may also be considered :</div><div><br></div><div><br></div><div>A memory chip or memory management chip or a line in the main board if failing slowly .</div><div><br></div><div><br></div><div>If
 some values are read from disk and used , disk surface failures or 
cable connection point oxidization may also cause arbitrary data 
corruptions .</div><div><br></div><div><br></div><div><br></div><div>Mehmet Erol Sanliturk<br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div style="word-wrap:break-word;line-break:after-white-space"><div><div><blockquote type="cite"><div>On 5 Sep 2018, at 17:39, Mehmet Erol Sanliturk via cfe-dev <<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a>> wrote:</div><br class="m_6996258785569864658m_6299689155889211054Apple-interchange-newline"><div><div dir="ltr" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><div class="gmail_extra"><br class="m_6996258785569864658m_6299689155889211054Apple-interchange-newline"><br><div class="gmail_quote">On Wed, Sep 5, 2018 at 4:19 PM, Mikael Holmén via cfe-dev<span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span><span dir="ltr"><<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.or<wbr>g</a>></span><span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-style:solid;border-left-color:rgb(204,204,204);padding-left:1ex">Hi,<br><br>For a while now we randomly see failures when running the ClangdTests test.<br><br>E.g the below but sometimes other failures:<br><br>--------<br>FAIL: Extra Tools Unit Tests :: clangd/./ClangdTests/Workspace<wbr>SymbolsTest.Namespaces (16172 of 39758)<br>******************** TEST 'Extra Tools Unit Tests :: clangd/./ClangdTests/Workspace<wbr>SymbolsTest.Namespaces' FAILED ********************<br>Note: Google Test filter = WorkspaceSymbolsTest.Namespace<wbr>s<br>[==========] Running 1 test from 1 test case.<br>[----------] Global test environment set-up.<br>[----------] 1 test from WorkspaceSymbolsTest<br>[ RUN      ] WorkspaceSymbolsTest.Namespace<wbr>s<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:151: Failure<br>Value of: getSymbols("a")<br>Expected: has 4 elements and there exists some permutation of elements such that:<br> - element #0 (named "ans1") and (in container ""), and<br> - element #1 (named "ai1") and (in container "ans1"), and<br> - element #2 (named "ans2") and (in container "ans1"), and<br> - element #3 (named "ai2") and (in container "ans1::ans2")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:153: Failure<br>Value of: getSymbols("::")<br>Expected: has 1 element that (named "ans1") and (in container "")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:155: Failure<br>Value of: getSymbols("::a")<br>Expected: has 1 element that (named "ans1") and (in container "")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:158: Failure<br>Value of: getSymbols("ans1::")<br>Expected: has 2 elements and there exists some permutation of elements such that:<br> - element #0 (named "ai1") and (in container "ans1"), and<br> - element #1 (named "ans2") and (in container "ans1")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:160: Failure<br>Value of: getSymbols("::ans1")<br>Expected: has 1 element that (named "ans1") and (in container "")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:163: Failure<br>Value of: getSymbols("::ans1::")<br>Expected: has 2 elements and there exists some permutation of elements such that:<br> - element #0 (named "ai1") and (in container "ans1"), and<br> - element #1 (named "ans2") and (in container "ans1")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:165: Failure<br>Value of: getSymbols("::ans1::ans2")<br>Expected: has 1 element that (named "ans2") and (in container "ans1")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>../tools/clang/tools/extra/uni<wbr>ttests/clangd/FindSymbolsTests<wbr>.cpp:167: Failure<br>Value of: getSymbols("::ans1::ans2::")<br>Expected: has 1 element that (named "ai2") and (in container "ans1::ans2")<br> <span class="m_6996258785569864658m_6299689155889211054Apple-converted-space"> </span>Actual: {}<br>[  FAILED  ] WorkspaceSymbolsTest.Namespace<wbr>s (39 ms)<br>[----------] 1 test from WorkspaceSymbolsTest (39 ms total)<br><br>[----------] Global test environment tear-down<br>[==========] 1 test from 1 test case ran. (40 ms total)<br>[  PASSED  ] 0 tests.<br>[  FAILED  ] 1 test, listed below:<br>[  FAILED  ] WorkspaceSymbolsTest.Namespace<wbr>s<br><br> 1 FAILED TEST<br><br><br>It can fail and then at once pass again so something funny is going on.<br><br><br>I ran valgrind on ClangdTests and then I got a bunch of complaints, the first being:<br><br><br>[ RUN      ] ClangdVFSTest.SearchLibDir<br>Updating file /clangd-test/foo.cpp with command [/clangd-test] clang -ffreestanding -xc++ -target x86_64-linux-unknown -m64 --gcc-toolchain=/randomusr -stdlib=libstdc++ /clangd-test/foo.cpp -resource-dir=/data/repo/llvm-<wbr>patch/build-all/tools/clang/to<wbr>ols/extra/unittests/clangd/../<wbr>lib/clang/8.0.0<br>Preamble for file /clangd-test/foo.cpp cannot be reused. Attempting to rebuild it.<br>Built preamble of size 175020 for file /clangd-test/foo.cpp<br>==14605== Thread 2 worker:foo.cpp:<br>==14605== Conditional jump or move depends on uninitialised value(s)<br>==14605==    at 0xCDF8A6: clang::Sema::SetCtorInitialize<wbr>rs(clang::CXXConstructorDecl*, bool, llvm::ArrayRef<clang::CXXCtorI<wbr>nitializer*>) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0xD01CB9: clang::Sema::DefineImplicitDef<wbr>aultConstructor(clang::SourceL<wbr>ocation, clang::CXXConstructorDecl*) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0xEA3B93: PerformConstructorInitializati<wbr>on(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::E<wbr>xpr*>, clang::InitializationSequence:<wbr>:Step const&, bool&, bool, bool, clang::SourceLocation, clang::SourceLocation) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0xE9AA3F: clang::InitializationSequence:<wbr>:Perform(clang::Sema&, clang::InitializedEntity const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::E<wbr>xpr*>, clang::QualType*) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0xBFA3C4: clang::Sema::ActOnUninitialize<wbr>dDecl(clang::Decl*) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13C5EFF: clang::Parser::ParseDeclaratio<wbr>nAfterDeclaratorAndAttributes(<wbr>clang::Declarator&, clang::Parser::ParsedTemplateI<wbr>nfo const&, clang::Parser::ForRangeInit*) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13C40B7: clang::Parser::ParseDeclGroup(<wbr>clang::ParsingDeclSpec&, clang::DeclaratorContext, clang::SourceLocation*, clang::Parser::ForRangeInit*) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13AAF5B: clang::Parser::ParseDeclOrFunc<wbr>tionDefInternal(clang::Parser:<wbr>:ParsedAttributesWithRange&, clang::ParsingDeclSpec&, clang::AccessSpecifier) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13AAA1D: clang::Parser::ParseDeclaratio<wbr>nOrFunctionDefinition(clang::P<wbr>arser::ParsedAttributesWithRan<wbr>ge&, clang::ParsingDeclSpec*, clang::AccessSpecifier) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13A9861: clang::Parser::ParseExternalDe<wbr>claration(clang::Parser::Parse<wbr>dAttributesWithRange&, clang::ParsingDeclSpec*) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13A8629: clang::Parser::ParseTopLevelDe<wbr>cl(clang::OpaquePtr<clang::Dec<wbr>lGroupRef>&) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==    by 0x13A840F: clang::Parser::ParseFirstTopLe<wbr>velDecl(clang::OpaquePtr<clang<wbr>::DeclGroupRef>&) (in /data/repo/llvm-patch/build-al<wbr>l/tools/clang/tools/extra/unit<wbr>tests/clangd/ClangdTests)<br>==14605==<br>Updating file /clangd-test/foo.cpp with command [/clangd-test] clang -ffreestanding -xc++ -target x86_64-linux-unknown -m64 --gcc-toolchain=/randomusr -stdlib=libstdc++ /clangd-test/foo.cpp -resource-dir=/data/repo/llvm-<wbr>patch/build-all/tools/clang/to<wbr>ols/extra/unittests/clangd/../<wbr>lib/clang/8.0.0<br>Reusing preamble for file /clangd-test/foo.cpp<br>[       OK ] ClangdVFSTest.SearchLibDir (952 ms)<br><br><br><br>It's not obvious to me what the problem really is. Does anyone here have a clue?<br><br>Regards,<br>Mikael<br>______________________________<wbr>_________________</blockquote></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">One reason of non-reproducible errors in a program is mainly "uninitialized variables" .</div><div class="gmail_quote">These variables uses whatever remains in the memory from previous allocations and used by the new program .</div><div class="gmail_quote">Therefore when these values are used , program behavior is unexpected .</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Another may be "array index showing outside of an array" . Especially in loops , if loop passes array boundaries toward up or down  .</div><div class="gmail_quote">Or , when a value is directly used to index an array , but it is out of bounds .</div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">The above reasons are not , "all" , but "some" .<br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote"><br></div><div class="gmail_quote">Mehmet Erol Sanliturk<br></div><div class="gmail_quote"><div><br></div><div><br></div><div><br></div><div><br></div><div> </div></div><br></div></div><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important">______________________________<wbr>_________________</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><span style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none;float:none;display:inline!important">cfe-dev mailing list</span><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="mailto:cfe-dev@lists.llvm.org" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">cfe-dev@lists.llvm.org</a><br style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px;text-decoration:none"><a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" style="font-family:Helvetica;font-size:12px;font-style:normal;font-variant-caps:normal;font-weight:normal;letter-spacing:normal;text-align:start;text-indent:0px;text-transform:none;white-space:normal;word-spacing:0px" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a></div></blockquote></div><br></div></div><br>______________________________<wbr>_________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@lists.llvm.org" target="_blank">cfe-dev@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-dev" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/<wbr>mailman/listinfo/cfe-dev</a><br>
<br></blockquote></div><br></div></div>