[lldb-dev] [llvm-dev] [lit] check-all hanging

Davide Italiano via lldb-dev lldb-dev at lists.llvm.org
Mon Jan 7 08:14:24 PST 2019


On Sat, Jan 5, 2019 at 9:48 AM Joel E. Denny via lldb-dev
<lldb-dev at lists.llvm.org> wrote:
>
> On Fri, Jan 4, 2019 at 11:39 AM Frédéric Riss <friss at apple.com> wrote:
>>
>>
>>
>> > On Jan 4, 2019, at 7:30 AM, Joel E. Denny <jdenny.ornl at gmail.com> wrote:
>> >
>> > On Thu, Jan 3, 2019 at 11:30 AM Frédéric Riss <friss at apple.com> wrote:
>> > -llvm-dev + lldb-dev for the lldv test failures.
>> >
>> >> On Jan 3, 2019, at 7:33 AM, Joel E. Denny <jdenny.ornl at gmail.com> wrote:
>> >>
>> >> All,
>> >>
>> >> 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.
>> >>
>> >> I ran check-all a couple of times last night at r350238, which I pulled yesterday.  Here are the results:
>> >>
>> >> ```
>> >> ********************
>> >> Testing Time: 5043.24s
>> >> ********************
>> >> Unexpected Passing Tests (2):
>> >>     lldb-Suite :: functionalities/asan/TestMemoryHistory.py
>> >>     lldb-Suite :: functionalities/asan/TestReportData.py
>> >>
>> >> ********************
>> >> Failing Tests (54):
>> >>     Clang :: CXX/modules-ts/basic/basic.link/p2/module.cpp
>> >>     Clang :: Modules/ExtDebugInfo.cpp
>> >>     Clang :: Modules/using-directive-redecl.cpp
>> >>     Clang :: Modules/using-directive.cpp
>> >>     Clang :: PCH/chain-late-anonymous-namespace.cpp
>> >>     Clang :: PCH/cxx-namespaces.cpp
>> >>     Clang :: PCH/namespaces.cpp
>> >>     LLDB :: ExecControl/StopHook/stop-hook-threads.test
>> >>     LeakSanitizer-AddressSanitizer-x86_64 :: TestCases/Linux/use_tls_dynamic.cc
>> >>     LeakSanitizer-Standalone-x86_64 :: TestCases/Linux/use_tls_dynamic.cc
>> >>     MemorySanitizer-X86_64 :: dtls_test.c
>> >>     MemorySanitizer-lld-X86_64 :: dtls_test.c
>> >>     lldb-Suite :: functionalities/register/register_command/TestRegisters.py
>> >>     lldb-Suite :: tools/lldb-server/TestGdbRemoteRegisterState.py
>> >
>> > It’s hard to diagnose dotest failures without the log.
>> >
>> > (My last reply to this was rejected by the list because I wasn't subscribed.  Trying again.)
>> >
>> > 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:
>> >
>> > ```
>> > FAIL: lldb-Suite :: tools/lldb-server/TestGdbRemoteRegisterState.py (59083 of 59736)
>> > ******************** TEST 'lldb-Suite :: tools/lldb-server/TestGdbRemoteRegisterState.py' FAILED ********************
>> > lldb version 8.0.0
>> > LLDB library dir: /home/jdenny/ornl/llvm-mono-git-build/bin
>> > LLDB import library dir: /home/jdenny/ornl/llvm-mono-git-build/bin
>> > Libc++ tests will not be run because: Unable to find libc++ installation
>> > Skipping following debug info categories: ['dsym', 'gmodules']
>> >
>> > Session logs for test failures/errors/unexpected successes will go into directory '/home/jdenny/ornl/llvm-mono-git-build/lldb-test-traces'
>> > 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
>> > 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)
>> > 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)
>> > lldb-server exiting...
>> > 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)
>> > 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)
>> > lldb-server exiting...
>> > ======================================================================
>> > FAIL: test_grp_register_save_restore_works_no_suffix_llgs (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState)
>> > ----------------------------------------------------------------------
>> > Traceback (most recent call last):
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/decorators.py", line 144, in wrapper
>> >     func(*args, **kwargs)
>> >   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
>> >     self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
>> >   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
>> >     context = self.expect_gdbremote_sequence()
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py", line 713, in expect_gdbremote_sequence
>> >     self.logger)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 261, in expect_lldb_gdbserver_replay
>> >     asserter, content, context=context)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 564, in assert_match
>> >     self._assert_exact_payload_match(asserter, actual_packet)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 518, in _assert_exact_payload_match
>> >     assert_packets_equal(asserter, actual_packet, self.exact_payload)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 159, in assert_packets_equal
>> >     asserter.assertEqual(actual_stripped, expected_stripped)
>> > AssertionError: '$E77' != '$OK'
>> > Config=x86_64-/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8
>> > ======================================================================
>> > FAIL: test_grp_register_save_restore_works_with_suffix_llgs (TestGdbRemoteRegisterState.TestGdbRemoteRegisterState)
>> > ----------------------------------------------------------------------
>> > Traceback (most recent call last):
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/decorators.py", line 144, in wrapper
>> >     func(*args, **kwargs)
>> >   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
>> >     self.grp_register_save_restore_works(USE_THREAD_SUFFIX)
>> >   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
>> >     context = self.expect_gdbremote_sequence()
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/gdbremote_testcase.py", line 713, in expect_gdbremote_sequence
>> >     self.logger)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 261, in expect_lldb_gdbserver_replay
>> >     asserter, content, context=context)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 564, in assert_match
>> >     self._assert_exact_payload_match(asserter, actual_packet)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 518, in _assert_exact_payload_match
>> >     assert_packets_equal(asserter, actual_packet, self.exact_payload)
>> >   File "/home/jdenny/ornl/llvm-mono-git/lldb/packages/Python/lldbsuite/test/tools/lldb-server/lldbgdbserverutils.py", line 159, in assert_packets_equal
>> >     asserter.assertEqual(actual_stripped, expected_stripped)
>> > AssertionError: '$E77' != '$OK'
>> > Config=x86_64-/home/jdenny/ornl/llvm-mono-git-build/bin/clang-8
>> > ----------------------------------------------------------------------
>> > Ran 4 tests in 22.052s
>>
>> I’m not familiar with the lldb-server tests. Pavel might know what Error 77 is?
>>
>> > RESULT: FAILED (0 passes, 2 failures, 0 errors, 2 skipped, 0 expected failures, 0 unexpected successes)
>> >
>> > ********************
>> > ```
>> >
>> >
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestBorrowedReferences
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestDictionaryResolutionWithDot
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestExtractingUInt64ThroughStructuredData
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestGlobalNameResolutionNoDot
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestGlobalNameResolutionWithDot
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestInstanceNameResolutionNoDot
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestModuleNameResolutionNoDot
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestObjectAttributes
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestOwnedReferences
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonByteArray
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonBytes
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonCallableCheck
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonCallableInvoke
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonDictionaryManipulation
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonDictionaryToStructuredDictionary
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonDictionaryValueEquality
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonFile
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonInteger
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonIntegerToStr
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonIntegerToStructuredInteger
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonListManipulation
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonListToStructuredList
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonListValueEquality
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonString
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonStringToStr
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonStringToStructuredString
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleInitializerList
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleInitializerList2
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleSize
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleToStructuredList
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestPythonTupleValues
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestResetting
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonDataObjectsTest.TestTypeNameResolutionNoDot
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestAcquisitionSemantics
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestAutoRestoreChanged
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestAutoRestoreSemantics
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestDiscardSemantics
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestExceptionStateChecking
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestManualRestoreSemantics
>> >>     lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestResetSemantics
>> >
>> > Those unit test failures don’t ring a bell. Anyone’s seen this? Here too, knowing exactly the error message would help.
>> >
>> > Here's the lit output for the last one:
>> >
>> > ```
>> > FAIL: lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestResetSemantics (59324 of 59736)
>> > ******************** TEST 'lldb-Unit :: ScriptInterpreter/Python/./ScriptInterpreterPythonTests/PythonExceptionStateTest.TestResetSemantics' FAILED ********************
>> > Note: Google Test filter = PythonExceptionStateTest.TestResetSemantics
>> > [==========] Running 1 test from 1 test case.
>> > [----------] Global test environment set-up.
>> > [----------] 1 test from PythonExceptionStateTest
>> > [ RUN      ] PythonExceptionStateTest.TestResetSemantics
>> > 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.
>>
>> 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.
>
>
> 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.
>
> Joel
>

I think the number of people using BUILD_SHARED_LIBS=True is
relatively limited, and there's no bot testing that configuration.
Stefan is the resident build expert, so he might be able to comment.

--
Davide


More information about the lldb-dev mailing list