[Swift CI] Build Failure: 0. OSS - Swift Incremental RA - Ubuntu 16.04 (master) #12952


[FAILURE] oss-swift-incremental-RA-linux-ubuntu-16_04 [#12952]

Build URL:
Date of build:
Fri, 10 Apr 2020 13:36:55 -0500
Build duration:
1 hr 14 min

Identified problems:

  • Compile Error: This build failed because of a compile error. Below is a list of all errors in the build log:
  • Swift Compile Error: Swift compiler error


  • Commit ccdc8efa95b5d173e36351b6bdefb244b1bdde7d by compnerd:
    AutoDiff: repair the test on Windows

    • edit: test/AutoDiff/validation-test/simple_math.swift
  • Commit 4644ffbe4f4f869908afb551dc4881d5967c75b5 by blangmuir:
    [test] Workaround an issue with createDirectory on Linux

    • edit: Sources/SKTestSupport/SKSwiftPMTestWorkspace.swift
  • Commit 22f43f1fb47bafb043851c61730aa43da2b21044 by ahatanaka:
    [CodeGen] Emit destructor calls to destruct compound literals

    • edit: clang/test/AST/ast-dump-stmt.m
    • edit: clang/lib/AST/ASTImporter.cpp
    • edit: clang/include/clang/Sema/Sema.h
    • edit: clang/lib/AST/TextNodeDumper.cpp
    • edit: clang/lib/CodeGen/CGExprScalar.cpp
    • edit: clang/lib/Sema/JumpDiagnostics.cpp
    • edit: clang/lib/CodeGen/CGBlocks.cpp
    • edit: clang/lib/Serialization/ASTReaderStmt.cpp
    • edit: clang/lib/CodeGen/CGExprAgg.cpp
    • edit: clang/include/clang/Serialization/ASTBitCodes.h
    • edit: clang/lib/Sema/SemaExpr.cpp
    • edit: clang/lib/AST/JSONNodeDumper.cpp
    • edit: clang/test/SemaObjC/strong-in-c-struct.m
    • add: clang/test/Import/objc-arc/test-cleanup-object.m
    • add: clang/test/PCH/non-trivial-c-compound-literal.m
    • edit: clang/include/clang/AST/TextNodeDumper.h
    • edit: clang/lib/Serialization/ASTWriterStmt.cpp
    • add: clang/test/AST/ast-dump-objc-arc-json.m
    • edit: clang/test/CodeGenObjC/arc-ternary-op.m
    • edit: clang/test/CodeGenObjC/strong-in-c-struct.m
    • edit: clang/include/clang/AST/ExprCXX.h
    • add: clang/test/Import/objc-arc/Inputs/cleanup-objects.m
    • edit: clang/tools/clang-import-test/clang-import-test.cpp
    • edit: clang/include/clang/Basic/DiagnosticSemaKinds.td
    • edit: clang/lib/CodeGen/CGExpr.cpp
    • edit: clang/test/CodeGenObjC/arc.m
    • edit: clang/include/clang/AST/ASTImporter.h
  • Commit 526baedc52f58266319870ab32faade1c3420177 by ahatanaka:
    [CodeGen] Emit destructor calls to destruct non-trivial C struct objects

    • edit: clang/lib/Sema/SemaDecl.cpp
    • edit: clang/lib/CodeGen/CGClass.cpp
    • edit: clang/lib/CodeGen/CGCall.cpp
    • edit: clang/lib/AST/Expr.cpp
    • edit: clang/lib/CodeGen/CGExprAgg.cpp
    • edit: clang/lib/CodeGen/CGExprConstant.cpp
    • edit: clang/lib/Sema/SemaExpr.cpp
    • edit: clang/test/CodeGenObjC/strong-in-c-struct.m
    • edit: clang/lib/CodeGen/CGVTables.cpp
    • edit: clang/lib/Sema/SemaExprCXX.cpp
    • edit: clang/lib/CodeGen/CGCall.h
    • edit: clang/test/CodeGenObjC/arc.m
  • Commit 3e305f95617f9b4f2ff1ccdb747c4de3995e34f5 by ahatanaka:
    Fix the type of the capture passed to LambdaIntroducer::addCapture in

    • edit: clang/lib/Sema/SemaDecl.cpp
    • edit: clang/test/CodeGenObjCXX/block-nested-in-lambda.mm
  • Commit e1771f53f6f6953fe492b95607ce530ecfcfffa5 by jingham:
    Fix a couple of problems caused by merging ThreadPlanStack changes to

    • edit: lldb/source/Target/ThreadPlanStepOut.cpp
    • edit: lldb/source/Target/ThreadPlanStepRange.cpp
  • Commit 0f8aa955a3112903665f7b33ea10347fd05a1863 by aprantl:
    Fix test broken by simulator triple changes.

    • edit: lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
    • edit: lldb/source/Plugins/DynamicLoader/MacOSX-DYLD/DynamicLoaderDarwin.cpp
  • Commit 024743127eb6b99a71ef2db41ef1860a059d6cea by aprantl:
    Update debugserver test for new ostype names

    • edit: lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
  • Commit 106e66474fe71014a162c9ef30136a77b5cc0993 by aprantl:
    Make Decl::setOwningModuleID() public. (NFC)

    • edit: clang/include/clang/AST/DeclBase.h
    • edit: clang/include/clang/AST/DeclCXX.h
    • edit: clang/include/clang/AST/Decl.h
    • edit: clang/include/clang/AST/DeclTemplate.h
  • Commit 859ee788775f51869b11942ea7c4477e0ae73127 by aprantl:
    Add debug info support for Swift/Clang APINotes.

    • edit: llvm/include/llvm/BinaryFormat/Dwarf.def
  • Commit 960a8941e6bc893138c23fd6db3884aa55d0641e by aprantl:
    Add newly-missing include

    • edit: lldb/unittests/Host/HostInfoTest.cpp
  • Commit b85af127d3bafb2a2a17f2a0f44e46425a3605a2 by aprantl:
    Revert "Update debugserver test for new ostype names"

    • edit: lldb/test/API/tools/lldb-server/TestAppleSimulatorOSType.py
  • Commit 014186928718c016e8b16172deb1486cfcb60939 by aprantl:
    Fix typo in parameter name.

    • edit: llvm/include/llvm-c/DebugInfo.h
  • Commit 67d07f7dc7e66ad00f3158f00ef003511b28dec7 by aprantl:
    [lldb][NFC] Refactor TypeSystemClang::GetTypeName

    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
  • Commit ea9bad1f2cc5c9f7dcc0b2bba10fb7df0237c2f7 by aprantl:
    [lldb][NFC] Make name parameter in AddMethodToCXXRecordType a StringRef

    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
  • Commit b3eb7b3faf42068732f03781f297764e95d0da38 by aprantl:
    Switch to TypeSystemClang over to CreateDeserialized() (NFC)

    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    • edit: clang/include/clang/AST/DeclCXX.h
    • edit: clang/include/clang/AST/DeclTemplate.h
  • Commit 689466fc2594e8c7819b50ff8ec74047e3c3c3d1 by aprantl:
    Correctly initialize the DW_AT_comp_dir attribute of Clang module

    • edit: clang/test/Modules/debug-info-moduleimport.m
    • edit: clang/lib/CodeGen/CGDebugInfo.cpp
    • edit: clang/test/PCH/debug-info-pch-path.c
  • Commit cff98e90bd1265d21e65be43ece170a24f74f873 by aprantl:
    Don't set the isOptimized flag in module skeleton DICompileUnits.

    • edit: clang/lib/CodeGen/CGDebugInfo.cpp
    • edit: clang/test/Modules/ExtDebugInfo.m
  • Commit 2e1899c7722a1ae94f1820dc40ce796a58b27498 by aprantl:
    Allow remapping Clang module skeleton CU references with

    • edit: clang/test/PCH/debug-info-pch-path.c
    • edit: clang/test/Modules/debug-info-moduleimport.m
    • edit: clang/lib/CodeGen/CGDebugInfo.cpp
  • Commit ac0c72283d471f4b6161f562f8277ee98493d3ef by aprantl:
    Allow remapping the sysroot with -fdebug-prefix-map.

    • edit: clang/lib/CodeGen/CGDebugInfo.cpp
    • edit: clang/test/CodeGen/debug-prefix-map.c
  • Commit 32c673ebdc8257383375a0400b969c88a7b6dea3 by aprantl:
    Driver: Improve performance of getSDKName()

    • edit: clang/lib/Driver/ToolChains/Darwin.cpp
  • Commit 6fd3d2ba6366ee016565922f00350cd9a8d4a5cd by aprantl:
    Add an -object-path-prefix option to dsymutil

    • add: llvm/test/tools/dsymutil/X86/object-prefix-path.test
    • edit: llvm/test/tools/dsymutil/cmdline.test
    • edit: llvm/tools/dsymutil/LinkUtils.h
    • edit: llvm/tools/dsymutil/DwarfLinker.h
    • edit: llvm/docs/CommandGuide/dsymutil.rst
    • edit: llvm/tools/dsymutil/DwarfLinker.cpp
    • edit: llvm/tools/dsymutil/dsymutil.cpp
    • edit: llvm/tools/dsymutil/Options.td
  • Commit 7cd386498a109579da71ea294f2380e317bc250c by aprantl:
    Allow remapping Clang module include paths

    • edit: clang/test/Modules/debug-info-moduleimport.m
    • edit: clang/lib/CodeGen/CGDebugInfo.cpp
  • Commit a324394725e6fbb630b3b88013deb949da1f2550 by aprantl:
    Unbreak LLDB tests after 96023917e6f

    • edit: lldb/source/Plugins/SymbolFile/DWARF/SymbolFileDWARF.cpp
  • Commit f166c198abe4bb84b5024ef66004295f7dfd5070 by aprantl:
    Add an opque payload field to lldb::Type (NFC).

    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.cpp
    • edit: lldb/source/Plugins/SymbolFile/DWARF/DWARFASTParserClang.cpp
    • edit: lldb/source/Plugins/LanguageRuntime/ObjC/ObjCLanguageRuntime.cpp
    • edit: lldb/source/Symbol/Type.cpp
    • edit: lldb/include/lldb/Symbol/Type.h
    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
  • Commit 1b880fe0723cf14e131cdb0ed7eda18115891ec3 by aprantl:
    Add a Type::Payload typedef. (NFC)

    • edit: lldb/include/lldb/Symbol/Type.h
    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
  • Commit 84c0e3395c88a1822e6dde29e5effaddb7723ac2 by aprantl:
    Replace uint32_t with typedef (NFC)

    • edit: lldb/source/Plugins/TypeSystem/Clang/TypeSystemClang.h
  • Commit 5690edfb82ac3b77ccf4cbe23789b462ca3e8ee4 by blangmuir:
    [test] Workaround an issue with createDirectory on Linux

    • edit: Sources/ISDBTestSupport/TibsTestWorkspace.swift


The failure is in sourcekitd during exit, and based on the address this could be in a global destructor. Could this be related to your destructor changes? I don't know how reproducible this is.

12:51:30 *** Error in `SourceKitLSPPackageTests.xctest': double free or corruption (fasttop): 0x00007f0d94015040 ***

12:51:30 ======= Backtrace: =========

12:51:30 /lib/x86_64-linux-gnu/libc.so.6(+0x777e5)[0x7f0da5fea7e5] // I think this is __libc_fatal

12:51:30 /lib/x86_64-linux-gnu/libc.so.6(+0x8037a)[0x7f0da5ff337a] // This is near __libc_malloc

12:51:30 /lib/x86_64-linux-gnu/libc.so.6(cfree+0x4c)[0x7f0da5ff753c] // free

12:51:30 /home/buildnode/jenkins/workspace/oss-swift-incremental-RA-linux-ubuntu-16_04/buildbot_incremental/toolchain-linux-x86_64/usr/lib/libsourcekitdInProc.so(+0xd28609)[0x7f0d7e3ad609]

I don't have access to this binary that was built, but if the layout is similar to other recent builds, this address is a global destructor.

12:51:30 /lib/x86_64-linux-gnu/libc.so.6(+0x39ff8)[0x7f0da5facff8] // I think this is exit


Oh hmm, looks like at least the libsourcekitd.so part of this is built with the host compiler not with the just-built clang. Maybe unrelated.

The patch I committed fixed bugs in destructions of block scope objects, so I don’t think it should affect global destructors.

Let me take a look at the patch again.

Next build passed. I'll try to take another look, but not sure if this will be reproducible.

The patch fixes a bug in clang’s IRGen where non-trivial C structs (C structs with ObjC pointer fields, for example) and arrays of ObjC pointers weren’t being destructed in a few cases. I looked at the patch and it’s not clear to me how that could change global destructors.

So it doesn’t look like related to me.