[PATCH] D152696: Prevent deadlocks in death tests.

Michał Górny via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Sat Jun 17 04:03:11 PDT 2023


mgorny added a comment.

This change is causing a lot of unittests to fail on Gentoo. I've tested both on amd64 and arm64; on amd64 additionally the test suite seems to hang.

  Failed Tests (75):
    LLVM-Unit :: ADT/./ADTTests/APFloatTest/SemanticsDeath
    LLVM-Unit :: ADT/./ADTTests/APIntTest/StringDeath
    LLVM-Unit :: ADT/./ADTTests/APSIntTest/StringDeath
    LLVM-Unit :: ADT/./ADTTests/BitVectorTest/0/DenseSet
    LLVM-Unit :: ADT/./ADTTests/BitVectorTest/1/DenseSet
    LLVM-Unit :: ADT/./ADTTests/BitfieldsTest/ValueTooBigBool
    LLVM-Unit :: ADT/./ADTTests/BitfieldsTest/ValueTooBigBounded
    LLVM-Unit :: ADT/./ADTTests/BitfieldsTest/ValueTooBigInt
    LLVM-Unit :: ADT/./ADTTests/BumpPtrListTest/resetAlloc
    LLVM-Unit :: ADT/./ADTTests/FallibleIteratorTest/RegularLoopExitRequiresErrorCheck
    LLVM-Unit :: ADT/./ADTTests/PackedVectorTest/SignedValues
    LLVM-Unit :: ADT/./ADTTests/PackedVectorTest/UnsignedValues
    LLVM-Unit :: ADT/./ADTTests/STLExtrasTest/EarlyIncrementTest
    LLVM-Unit :: ADT/./ADTTests/STLExtrasTest/EarlyIncrementTestCustomPointerIterator
    LLVM-Unit :: ADT/./ADTTests/STLExtrasTest/EnumerateDifferentLengths
    LLVM-Unit :: ADT/./ADTTests/SmallVectorReferenceInvalidationTest/0/AppendRange
    LLVM-Unit :: ADT/./ADTTests/SmallVectorReferenceInvalidationTest/0/AssignRange
    LLVM-Unit :: ADT/./ADTTests/SmallVectorReferenceInvalidationTest/0/InsertRange
    LLVM-Unit :: ADT/./ADTTests/SmallVectorReferenceInvalidationTest/1/AppendRange
    LLVM-Unit :: ADT/./ADTTests/SmallVectorReferenceInvalidationTest/1/AssignRange
    LLVM-Unit :: ADT/./ADTTests/SmallVectorReferenceInvalidationTest/1/InsertRange
    LLVM-Unit :: ADT/./ADTTests/SmallVectorTest/0/TruncateTest
    LLVM-Unit :: ADT/./ADTTests/SmallVectorTest/1/TruncateTest
    LLVM-Unit :: ADT/./ADTTests/SmallVectorTest/2/TruncateTest
    LLVM-Unit :: ADT/./ADTTests/SmallVectorTest/3/TruncateTest
    LLVM-Unit :: ADT/./ADTTests/SmallVectorTest/4/TruncateTest
    LLVM-Unit :: ADT/./ADTTests/StrongIntDeathTest/OutOfBounds
    LLVM-Unit :: ADT/./ADTTests/ZipIteratorTest/ZipEqualNotEqual
    LLVM-Unit :: ADT/./ADTTests/ZipIteratorTest/ZipFirstNotShortest
    LLVM-Unit :: Analysis/./AnalysisTests/CGSCCPassManagerTest/TestUpdateCGAndAnalysisManagerForPasses1
    LLVM-Unit :: Analysis/./AnalysisTests/CGSCCPassManagerTest/TestUpdateCGAndAnalysisManagerForPasses3
    LLVM-Unit :: Analysis/./AnalysisTests/CGSCCPassManagerTest/TestUpdateCGAndAnalysisManagerForPasses5
    LLVM-Unit :: Analysis/./AnalysisTests/VFShapeAPITest/Parameters_Invalid
    LLVM-Unit :: AsmParser/./AsmParserTests/AsmParserTest/NonNullTerminatedInput
    LLVM-Unit :: BinaryFormat/./BinaryFormatTests/MsgPackWriter/TestWriteCompatibleNoBin
    LLVM-Unit :: ExecutionEngine/JITLink/./JITLinkTests/LinkGraphTest/ContentAccessAndUpdate
    LLVM-Unit :: FileCheck/./FileCheckTests/FileCheckTest/FileCheckContext
    LLVM-Unit :: IR/./IRTests/ConstantsTest/ReplaceWithConstantTest
    LLVM-Unit :: IR/./IRTests/GlobalTest/AlignDeath
    LLVM-Unit :: IR/./IRTests/ValueHandle/AssertingVH_Asserts
    LLVM-Unit :: IR/./IRTests/ValueHandle/PoisoningVH_Asserts
    LLVM-Unit :: IR/./IRTests/ValueHandle/TrackingVH_Asserts
    LLVM-Unit :: IR/./IRTests/ValueTest/getLocalSlotDeath
    LLVM-Unit :: IR/./IRTests/VectorBuilderTest/TestFail_ReportAndAbort
    LLVM-Unit :: Support/./SupportTests/AlignmentDeathTest/AlignAddr
    LLVM-Unit :: Support/./SupportTests/AlignmentDeathTest/ComparisonsWithZero
    LLVM-Unit :: Support/./SupportTests/AlignmentDeathTest/InvalidCTors
    LLVM-Unit :: Support/./SupportTests/CastingTest/assertion_check_const_ref
    LLVM-Unit :: Support/./SupportTests/CastingTest/assertion_check_ptr
    LLVM-Unit :: Support/./SupportTests/CastingTest/assertion_check_ref
    LLVM-Unit :: Support/./SupportTests/CastingTest/assertion_check_unique_ptr
    LLVM-Unit :: Support/./SupportTests/DataExtractorDeathTest/Cursor
    LLVM-Unit :: Support/./SupportTests/Error/AccessExpectedInFailureMode
    LLVM-Unit :: Support/./SupportTests/Error/CantFailDeath
    LLVM-Unit :: Support/./SupportTests/Error/ErrorAsOutParameterUnchecked
    LLVM-Unit :: Support/./SupportTests/Error/FailureFromHandler
    LLVM-Unit :: Support/./SupportTests/Error/FailureToHandle
    LLVM-Unit :: Support/./SupportTests/Error/UncheckedError
    LLVM-Unit :: Support/./SupportTests/Error/UncheckedExpectedInSuccessModeAccess
    LLVM-Unit :: Support/./SupportTests/Error/UncheckedExpectedInSuccessModeAssignment
    LLVM-Unit :: Support/./SupportTests/Error/UncheckedExpectedInSuccessModeDestruction
    LLVM-Unit :: Support/./SupportTests/Error/UncheckedSuccess
    LLVM-Unit :: Support/./SupportTests/Error/UnhandledExpectedInFailureMode
    LLVM-Unit :: Support/./SupportTests/ErrorDeathTest/ExitOnError
    LLVM-Unit :: Support/./SupportTests/ErrorOr/SimpleValue
    LLVM-Unit :: Support/./SupportTests/FileSystemTest/FileMapping
    LLVM-Unit :: Support/./SupportTests/JSONTest/Types
    LLVM-Unit :: Support/./SupportTests/YAMLIO/TestReadWritePolymorphicScalar
    LLVM-Unit :: Support/./SupportTests/raw_pwrite_ostreamTest/TestFD
    LLVM-Unit :: Support/./SupportTests/raw_pwrite_ostreamTest/TestSVector
    LLVM-Unit :: Target/AArch64/./AArch64Tests/SMEAttributes/Constructors
    LLVM-Unit :: Testing/Annotations/./TestingAnnotationTests/AnnotationsTest/Errors
    LLVM-Unit :: Transforms/Utils/./UtilsTests/BasicBlockUtils/splitBasicBlockBefore_ex2
    LLVM-Unit :: Transforms/Utils/./UtilsTests/ValueMapperTest/mapMetadataLocalAsMetadata
    LLVM-Unit :: Transforms/Vectorize/./VectorizeTests/VPRecipeTest/dump

The failures seem to be roughly the same, e.g.:

  FAIL: LLVM-Unit :: AsmParser/./AsmParserTests/1/8 (47212 of 49607)
  ******************** TEST 'LLVM-Unit :: AsmParser/./AsmParserTests/1/8' FAILED ********************
  Script(shard):
  --
  GTEST_OUTPUT=json:/var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/unittests/AsmParser/./AsmParserTests-LLVM-Unit-2378-1-8.json GTEST_SHUFFLE=0 GTEST_TOTAL_SHARDS=8 GTEST_SHARD_INDEX=1 /var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/unittests/AsmParser/./AsmParserTests
  --
  
  Script:
  --
  /var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/unittests/AsmParser/./AsmParserTests --gtest_filter=AsmParserTest.NonNullTerminatedInput
  --
  /var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm/unittests/AsmParser/AsmParserTest.cpp:42: Failure
  Death test: Mod = parseAssemblyString(Source.substr(0, Source.size() - 2), Error, Ctx)
      Result: died but not with expected error.
    Expected: contains regular expression "Buffer is not null terminated!"
  Actual msg:
  [  DEATH   ] #0 0x0000ffff90ddd614 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/lib64/libLLVM-17gitdfbcee28.so+0xccd614)
  [  DEATH   ] #1 0x0000ffff90ddb330 llvm::sys::RunSignalHandlers() (/var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/lib64/libLLVM-17gitdfbcee28.so+0xccb330)
  [  DEATH   ] #2 0x0000ffff90ddb4dc SignalHandler(int) Signals.cpp:0:0
  [  DEATH   ] #3 0x0000ffff98f8e7cc (linux-vdso.so.1+0x7cc)
  [  DEATH   ] #4 0x0000ffff98f14540 (/usr/lib64/libsandbox.so+0x4540)
  [  DEATH   ] #5 0x0000ffff98f1a5e4 execve (/usr/lib64/libsandbox.so+0xa5e4)
  [  DEATH   ] #6 0x0000aaaae19d65a8 testing::internal::ExecDeathTestChildMain(void*) gtest-all.cc:0:0
  [  DEATH   ] #7 0x0000ffff8fde49dc (/lib64/libc.so.6+0xe49dc)
  [  DEATH   ] 
  
  /var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm/unittests/AsmParser/AsmParserTest.cpp:42
  Death test: Mod = parseAssemblyString(Source.substr(0, Source.size() - 2), Error, Ctx)
      Result: died but not with expected error.
    Expected: contains regular expression "Buffer is not null terminated!"
  Actual msg:
  [  DEATH   ] #0 0x0000ffff90ddd614 llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) (/var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/lib64/libLLVM-17gitdfbcee28.so+0xccd614)
  [  DEATH   ] #1 0x0000ffff90ddb330 llvm::sys::RunSignalHandlers() (/var/tmp/portage/sys-devel/llvm-17.0.0.9999/work/llvm_build-.arm64/lib64/libLLVM-17gitdfbcee28.so+0xccb330)
  [  DEATH   ] #2 0x0000ffff90ddb4dc SignalHandler(int) Signals.cpp:0:0
  [  DEATH   ] #3 0x0000ffff98f8e7cc (linux-vdso.so.1+0x7cc)
  [  DEATH   ] #4 0x0000ffff98f14540 (/usr/lib64/libsandbox.so+0x4540)
  [  DEATH   ] #5 0x0000ffff98f1a5e4 execve (/usr/lib64/libsandbox.so+0xa5e4)
  [  DEATH   ] #6 0x0000aaaae19d65a8 testing::internal::ExecDeathTestChildMain(void*) gtest-all.cc:0:0
  [  DEATH   ] #7 0x0000ffff8fde49dc (/lib64/libc.so.6+0xe49dc)
  [  DEATH   ] 
  
  
  ********************

Full build log (from arm64): F27951788: build.log <https://reviews.llvm.org/F27951788>


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D152696/new/

https://reviews.llvm.org/D152696



More information about the cfe-commits mailing list