<div dir="ltr"><div class="gmail_quote"><div dir="ltr">On Mon, Jan 7, 2019 at 11:15 AM Davide Italiano <<a href="mailto:dccitaliano@gmail.com">dccitaliano@gmail.com</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 Sat, Jan 5, 2019 at 9:48 AM Joel E. Denny via lldb-dev<br>
<<a href="mailto:lldb-dev@lists.llvm.org" target="_blank">lldb-dev@lists.llvm.org</a>> wrote:<br>
><br>
> On Fri, Jan 4, 2019 at 11:39 AM Frédéric Riss <<a href="mailto:friss@apple.com" target="_blank">friss@apple.com</a>> wrote:<br>
>><br>
>><br>
>><br>
>> > On Jan 4, 2019, at 7:30 AM, Joel E. Denny <<a href="mailto:jdenny.ornl@gmail.com" target="_blank">jdenny.ornl@gmail.com</a>> wrote:<br>
>> ><br>
>> > On Thu, Jan 3, 2019 at 11:30 AM Frédéric Riss <<a href="mailto:friss@apple.com" target="_blank">friss@apple.com</a>> wrote:<br>
>> > -llvm-dev + lldb-dev for the lldv test failures.<br>
>> ><br>
>> >> On Jan 3, 2019, at 7:33 AM, Joel E. Denny <<a href="mailto:jdenny.ornl@gmail.com" target="_blank">jdenny.ornl@gmail.com</a>> wrote:<br>
>> >><br>
>> >> All,<br>
>> >><br>
>> >> Thanks for the replies.  Kuba: For LLDB, when were things expected to have improved?  It's possible things improved for me at some point, but this isn't something I've found time to track carefully, and I still see problems.<br>
>> >><br>
>> >> I ran check-all a couple of times last night at r350238, which I pulled yesterday.  Here are the results:<br>
>> >><br>
>> >> ```<br>
>> >> ********************<br>
>> >> Testing Time: 5043.24s<br>
>> >> ********************<br>
>> >> Unexpected Passing Tests (2):<br>
>> >>     lldb-Suite :: functionalities/asan/TestMemoryHistory.py<br>
>> >>     lldb-Suite :: functionalities/asan/TestReportData.py<br>
>> >><br>
>> >> ********************<br>
>> >> Failing Tests (54):<br>
>> >>     Clang :: CXX/modules-ts/basic/basic.link/p2/module.cpp<br>
>> >>     Clang :: Modules/ExtDebugInfo.cpp<br>
>> >>     Clang :: Modules/using-directive-redecl.cpp<br>
>> >>     Clang :: Modules/using-directive.cpp<br>
>> >>     Clang :: PCH/chain-late-anonymous-namespace.cpp<br>
>> >>     Clang :: PCH/cxx-namespaces.cpp<br>
>> >>     Clang :: PCH/namespaces.cpp<br>
>> >>     LLDB :: ExecControl/StopHook/stop-hook-threads.test<br>
>> >>     LeakSanitizer-AddressSanitizer-x86_64 :: TestCases/Linux/use_tls_dynamic.cc<br>
>> >>     LeakSanitizer-Standalone-x86_64 :: TestCases/Linux/use_tls_dynamic.cc<br>
>> >>     MemorySanitizer-X86_64 :: dtls_test.c<br>
>> >>     MemorySanitizer-lld-X86_64 :: dtls_test.c<br>
>> >>     lldb-Suite :: functionalities/register/register_command/TestRegisters.py<br>
>> >>     lldb-Suite :: tools/lldb-server/TestGdbRemoteRegisterState.py<br>
>> ><br>
>> > It’s hard to diagnose dotest failures without the log.<br>
>> ><br>
>> > (My last reply to this was rejected by the list because I wasn't subscribed.  Trying again.)<br>
>> ><br>
>> > I have no experience debugging lldb.  Here's the lit output for the last fail (now at r350377), but let me know if you want something more:<br>
>> ><br>
>> > ```<br>
>> > FAIL: lldb-Suite :: tools/lldb-server/TestGdbRemoteRegisterState.py (59083 of 59736)<br>
>> > ******************** TEST 'lldb-Suite :: tools/lldb-server/TestGdbRemoteRegisterState.py' FAILED ********************<br>
>> > lldb version 8.0.0<br>
>> > LLDB library dir: /home/jdenny/ornl/llvm-mono-git-build/bin<br>
>> > LLDB import library dir: /home/jdenny/ornl/llvm-mono-git-build/bin<br>
>> > Libc++ tests will not be run because: Unable to find libc++ installation<br>
>> > Skipping following debug info categories: ['dsym', 'gmodules']<br>
>> ><br>
>> > Session logs for test failures/errors/unexpected successes will go into directory '/home/jdenny/ornl/llvm-mono-git-build/lldb-test-traces'<br>
>> > Command invoked: /home/jdenny/ornl/llvm-mono-git/lldb/test/dotest.py -q --arch=x86_64 -s /home/jdenny/ornl/llvm-mono-git-build/lldb-test-traces --build-dir /home/jdenny/ornl/llvm-mono-git-build/lldb-test-build.noindex -S nm -u CXXFLAGS -u CFLAGS --executable /home/jdenny/ornl/llvm-mono-git-build/./bin/lldb --dsymutil /home/jdenny/ornl/llvm-mono-git-build/./bin/dsymutil --filecheck /home/jdenny/ornl/llvm-mono-git-build/./bin/FileCheck -C /home/jdenny/ornl/llvm-mono-git-build/./bin/clang --env ARCHIVER=/usr/bin/ar --env OBJCOPY=/usr/bin/objcopy /home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server -p TestGdbRemoteRegisterState.py<br>
>> > UNSUPPORTED: LLDB (/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8-x86_64) :: test_grp_register_save_restore_works_no_suffix_debugserver (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState) (debugserver tests)<br>
>> > FAIL: LLDB (/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8-x86_64) :: test_grp_register_save_restore_works_no_suffix_llgs (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState)<br>
>> > lldb-server exiting...<br>
>> > UNSUPPORTED: LLDB (/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8-x86_64) :: test_grp_register_save_restore_works_with_suffix_debugserver (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState) (debugserver tests)<br>
>> > FAIL: LLDB (/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8-x86_64) :: test_grp_register_save_restore_works_with_suffix_llgs (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState)<br>
>> > lldb-server exiting...<br>
>> > ======================================================================<br>
>> > FAIL: test_grp_register_save_restore_works_no_suffix_llgs (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState)<br>
>> > ----------------------------------------------------------------------<br>
>> > Traceback (most recent call last):<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/decorators.py", line 144, in wrapper<br>
>> >     func(*args, **kwargs)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py", line 137, in test_grp_register_save_restore_works_no_suffix_llgs<br>
>> >     self.grp_register_save_restore_works(USE_THREAD_SUFFIX)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py", line 97, in grp_register_save_restore_works<br>
>> >     context = self.expect_gdbremote_sequence()<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py", line 713, in expect_gdbremote_sequence<br>
>> >     self.logger)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 261, in expect_lldb_gdbserver_replay<br>
>> >     asserter, content, context=context)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 564, in assert_match<br>
>> >     self._assert_exact_payload_match(asserter, actual_packet)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 518, in _assert_exact_payload_match<br>
>> >     assert_packets_equal(asserter, actual_packet, self.exact_payload)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 159, in assert_packets_equal<br>
>> >     asserter.assertEqual(actual_stripped, expected_stripped)<br>
>> > AssertionError: '$E77' != '$OK'<br>
>> > Config=x86_64-/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8<br>
>> > ======================================================================<br>
>> > FAIL: test_grp_register_save_restore_works_with_suffix_llgs (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState)<br>
>> > ----------------------------------------------------------------------<br>
>> > Traceback (most recent call last):<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/decorators.py", line 144, in wrapper<br>
>> >     func(*args, **kwargs)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py", line 121, in test_grp_register_save_restore_works_with_suffix_llgs<br>
>> >     self.grp_register_save_restore_works(USE_THREAD_SUFFIX)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/TestGdbRemoteRegisterState.py", line 97, in grp_register_save_restore_works<br>
>> >     context = self.expect_gdbremote_sequence()<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py", line 713, in expect_gdbremote_sequence<br>
>> >     self.logger)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 261, in expect_lldb_gdbserver_replay<br>
>> >     asserter, content, context=context)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 564, in assert_match<br>
>> >     self._assert_exact_payload_match(asserter, actual_packet)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 518, in _assert_exact_payload_match<br>
>> >     assert_packets_equal(asserter, actual_packet, self.exact_payload)<br>
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 159, in assert_packets_equal<br>
>> >     asserter.assertEqual(actual_stripped, expected_stripped)<br>
>> > AssertionError: '$E77' != '$OK'<br>
>> > Config=x86_64-/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8<br>
>> > ----------------------------------------------------------------------<br>
>> > Ran 4 tests in 22.052s<br>
>><br>
>> I’m not familiar with the lldb-server tests. Pavel might know what Error 77 is?<br>
>><br>
>> > RESULT: FAILED (0 passes, 2 failures, 0 errors, 2 skipped, 0 expected failures, 0 unexpected successes)<br>
>> ><br>
>> > ********************<br>
>> > ```<br>
>> ><br>
>> ><br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestBorrowedReferences<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestDictionaryResolutionWithDot<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestExtractingUInt64ThroughStructuredData<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestGlobalNameResolutionNoDot<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestGlobalNameResolutionWithDot<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestInstanceNameResolutionNoDot<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestModuleNameResolutionNoDot<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestObjectAttributes<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestOwnedReferences<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonByteArray<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonBytes<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonCallableCheck<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonCallableInvoke<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonDictionaryManipulation<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonDictionaryToStructuredDictionary<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonDictionaryValueEquality<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonFile<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonInteger<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonIntegerToStr<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonIntegerToStructuredInteger<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonListManipulation<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonListToStructuredList<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonListValueEquality<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonString<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonStringToStr<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonStringToStructuredString<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleInitializerList<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleInitializerList2<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleSize<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleToStructuredList<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleValues<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestResetting<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestTypeNameResolutionNoDot<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestAcquisitionSemantics<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestAutoRestoreChanged<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestAutoRestoreSemantics<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestDiscardSemantics<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestExceptionStateChecking<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestManualRestoreSemantics<br>
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestResetSemantics<br>
>> ><br>
>> > Those unit test failures don’t ring a bell. Anyone’s seen this? Here too, knowing exactly the error message would help.<br>
>> ><br>
>> > Here's the lit output for the last one:<br>
>> ><br>
>> > ```<br>
>> > FAIL: lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestResetSemantics (59324 of 59736)<br>
>> > ******************** TEST 'lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestResetSemantics' FAILED ********************<br>
>> > Note: Google Test filter = PythonExceptionStateTest.TestResetSemantics<br>
>> > [==========] Running 1 test from 1 test case.<br>
>> > [----------] Global test environment set-up.<br>
>> > [----------] 1 test from PythonExceptionStateTest<br>
>> > [ RUN      ] PythonExceptionStateTest.TestResetSemantics<br>
>> > ScriptInterpreterPythonTests: /home/jdenny/ornl/llvm-mono-git/llvm/include/llvm/Support/CommandLine.h:800: void llvm::cl::parser<llvm::ScheduleDAGInstrs *(*)(llvm::MachineSchedContext *)>::addLiteralOption(llvm::StringRef, const DT &, llvm::StringRef) [DataType = llvm::ScheduleDAGInstrs *(*)(llvm::MachineSchedContext *), DT = llvm::ScheduleDAGInstrs *(*)(llvm::MachineSchedContext *)]: Assertion `findOption(Name) == Values.size() && "Option already exists!"' failed.<br>
>><br>
>> That’s interesting. It seems like some clots are registered twice. As he backtrace shows that you have a libLLVMSupport.so, I could imagine this happening if the unittest was linking with both a static version and the dynamic version of the LLVM libraries, but that’s just a theory. I don’t know how good the build system is at dealing with a libraries build of LLVM, I wouldn’t be surprised if this is untested and thus broken.<br>
><br>
><br>
> I rebuilt without -DBUILD_SHARED_LIBS=true, and all the previous failing clang and lldb-Unit tests then passed (other test results did not change).  My build size jumped from 33G to 136G.  I didn't pay attention to the build time this time, but my past experience is that incremental builds can be many times slower without -DBUILD_SHARED_LIBS=true.  This does not seem like a good solution for me.<br>
><br>
> Joel<br>
><br>
<br>
I think the number of people using BUILD_SHARED_LIBS=True is<br>
relatively limited, and there's no bot testing that configuration.<br>
Stefan is the resident build expert, so he might be able to comment.<br></blockquote><div><br></div><div>I see.  So the large and slow builds are not a concern for most people?  Perhaps I need to do something else to prevent that.  And perhaps I should ask this question again on cfe-dev given that most of my rebuilds affect clang.</div><div><br></div><div>Thanks.<br></div><div><br></div><div>Joel</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
--<br>
Davide<br>
</blockquote></div></div>