[swift-lldb-dev] [Swift CI] Build Failure: 0. OSS - LLDB Incremental - OS X (master) #230
Saleem Abdulrasool
compnerd at compnerd.org
Wed Oct 4 18:34:39 CDT 2017
On Wed, Oct 4, 2017 at 3:52 PM Jim Ingham <jingham at apple.com> wrote:
> Here's where we are asserting:
>
> * thread #1, queue = 'com.apple.main-thread', stop reason = signal SIGABRT
> frame #0: 0x00007fff713bffce libsystem_kernel.dylib`__pthread_kill + 10
> frame #1: 0x00007fff714fd150 libsystem_pthread.dylib`pthread_kill + 333
> frame #2: 0x00007fff7131c32a libsystem_c.dylib`abort + 127
> frame #3: 0x00007fff712e4380 libsystem_c.dylib`__assert_rtn + 320
> frame #4: 0x000000010a29cae7
> _lldb.so`swift::TargetClassMetadata<swift::External<swift::RuntimeTarget<8u>
> > >::getDescription(this=0x00007f8500e05bc0) const at Metadata.h:1469
> * frame #5: 0x000000010a298ef1
> _lldb.so`swift::remote::MetadataReader<swift::External<swift::RuntimeTarget<8u>
> >, (anonymous
> namespace)::RemoteASTTypeBuilder>::readAddressOfNominalTypeDescriptor(this=0x00007f8500e05a00,
> metadata=0x00007ffeeee83bd0, skipArtificialSubclasses=false) at
> MetadataReader.h:1192
> frame #6: 0x000000010a291d63
> _lldb.so`swift::remote::MetadataReader<swift::External<swift::RuntimeTarget<8u>
> >, (anonymous
> namespace)::RemoteASTTypeBuilder>::readNominalTypeFromMetadata(this=0x00007f8500e05a00,
> origMetadata=swift::remote::MetadataReader<swift::External<swift::RuntimeTarget<8>
> >, (anonymous namespace)::RemoteASTTypeBuilder>::MetadataRef @
> 0x00007ffeeee83bf0, skipArtificialSubclasses=false) at MetadataReader.h:1308
> frame #7: 0x000000010a28e81d
> _lldb.so`swift::remote::MetadataReader<swift::External<swift::RuntimeTarget<8u>
> >, (anonymous
> namespace)::RemoteASTTypeBuilder>::readTypeFromMetadata(this=0x00007f8500e05a00,
> MetadataAddress=4294976120, skipArtificialSubclasses=false) at
> MetadataReader.h:693
> frame #8: 0x000000010a28b6a9 _lldb.so`(anonymous
> namespace)::RemoteASTContextConcreteImpl<swift::External<swift::RuntimeTarget<8u>
> > >::getTypeForRemoteTypeMetadata(this=0x00007f8500e059f0, metadata=(Data =
> 4294976120), skipArtificial=false) at RemoteAST.cpp:1031
> frame #9: 0x000000010a264a2d
> _lldb.so`swift::remoteAST::RemoteASTContext::getTypeForRemoteTypeMetadata(this=0x00007f85009fa4f0,
> address=(Data = 4294976120), skipArtificial=false) at RemoteAST.cpp:1115
> frame #10: 0x000000010bfcc877
> _lldb.so`lldb_private::SwiftLanguageRuntime::MetadataPromise::FulfillTypePromise(this=0x00007f8500e059b0,
> error=0x0000000000000000) at SwiftLanguageRuntime.cpp:1424
> frame #11: 0x000000010bfd7a99
> _lldb.so`lldb_private::SwiftLanguageRuntime::GetDynamicTypeAndAddress_Archetype(this=0x00007f8500e042c0,
> in_value="self", use_dynamic=eDynamicDontRunTarget,
> class_type_or_name=0x00007ffeeee861d8, address=0x00007ffeeee861c0) at
> SwiftLanguageRuntime.cpp:2276
> frame #12: 0x000000010bfdb137
> _lldb.so`lldb_private::SwiftLanguageRuntime::GetDynamicTypeAndAddress(this=0x00007f8500e042c0,
> in_value="self", use_dynamic=eDynamicDontRunTarget,
> class_type_or_name=0x00007ffeeee861d8, address=0x00007ffeeee861c0,
> value_type=0x00007ffeeee861b8) at SwiftLanguageRuntime.cpp:2607
> frame #13: 0x000000010c3da132
> _lldb.so`lldb_private::ValueObjectDynamicValue::UpdateValue(this=0x00007f8501d8e600)
> at ValueObjectDynamicValue.cpp:168
> frame #14: 0x000000010b7d6cc9
> _lldb.so`lldb_private::ValueObject::UpdateValueIfNeeded(this=0x00007f8501d8e600,
> update_format=false) at ValueObject.cpp:211
> frame #15: 0x000000010b7d977b
> _lldb.so`lldb_private::ValueObject::GetError(this=0x00007f8501d8e600) at
> ValueObject.cpp:404
> frame #16: 0x000000010c8cd424
> _lldb.so`lldb_private::SwiftUserExpression::ScanContext(this=0x00007f8500d522f0,
> exe_ctx=0x00007ffeeee89548, err=0x00007ffeeee877b0) at
> SwiftUserExpression.cpp:185
> frame #17: 0x000000010c8cf762
> _lldb.so`lldb_private::SwiftUserExpression::Parse(this=0x00007f8500d522f0,
> diagnostic_manager=0x00007ffeeee88768, exe_ctx=0x00007ffeeee89548,
> execution_policy=eExecutionPolicyOnlyWhenNeeded,
> keep_result_in_memory=true, generate_debug_info=false, line_offset=0) at
> SwiftUserExpression.cpp:450
> frame #18: 0x000000010bf36302
> _lldb.so`lldb_private::UserExpression::Evaluate(exe_ctx=0x00007ffeeee89548,
> options=0x00007f84f9a6d950, expr=(Data = "self", Length = 4), prefix=(Data
> = 0x0000000000000000, Length = 0),
> result_valobj_sp=lldb_private::ConstString @ , error=0x00007ffeeee894d0,
> line_offset=0, fixed_expression="", jit_module_sp_ptr=<parent is NULL>) at
> UserExpression.cpp:247
> frame #19: 0x000000010c21de19
> _lldb.so`lldb_private::Target::EvaluateExpression(this=0x00007f84f807c000,
> expr=(Data = "self", Length = 4), exe_scope=0x00007f84f9c020a0,
> result_valobj_sp=lldb_private::ConstString @ , options=0x00007f84f9a6d950,
> fixed_expression="") at Target.cpp:2297
> frame #20: 0x000000010373eedd
> _lldb.so`lldb::SBFrame::EvaluateExpression(this=0x00007f84f9a6d840,
> expr="self", options=0x00007f84f7788b10) at SBFrame.cpp:1305
> frame #21: 0x00000001038fe4f9
> _lldb.so`_wrap_SBFrame_EvaluateExpression__SWIG_3((null)=0x0000000000000000,
> args=0x00000001017b9c80) at LLDBWrapPython.cpp:26687
> frame #22: 0x000000010385113e
> _lldb.so`_wrap_SBFrame_EvaluateExpression(self=0x0000000000000000,
> args=0x00000001017b9c80) at LLDBWrapPython.cpp:26735
> <Lots of Python frames omitted>
>
> This is all inside the swift::remoteAST & swift::remote classes. I wonder
> if you changed something the remoteAST code was implicitly relying on?
>
Interesting. So, it’s failing to read the address of the nominal type
descriptor (MetadataReader.h:1192). It is looking at a class and reads the
nominal type descriptor. That changed to an absolute pointer. It is now a
ConstTargetMetadataPointer<Runtime, TargetNominalTypeDescriptor>. The
assertion which is failing is that the bottom bit is set for the metadata
which cannot be true anymore as it is not an offset and we directly access
it. We do control the alignment so it is possible to restore that, but at
the same time, that is also used as an ISA selector on some targets (e.g.
ARM). That can be pretty confusing. I think that the simplest thing in
the short term is to remove that assertion. I’ll try that and upload a
change.
> Jim
>
>
> > On Oct 4, 2017, at 11:54 AM, Saleem Abdulrasool via swift-lldb-dev <
> swift-lldb-dev at swift.org> wrote:
> >
> > Just for those interested, this does not reproduce on a Linux host.
> This seems to be specific to a macOS host.
> >
> > On Wed, Oct 4, 2017 at 11:00 AM Saleem Abdulrasool <
> compnerd at compnerd.org> wrote:
> > On Wed, Oct 4, 2017 at 10:57 AM Adrian Prantl <aprantl at apple.com> wrote:
> >
> >> On Oct 4, 2017, at 10:54 AM, Saleem Abdulrasool <compnerd at compnerd.org>
> wrote:
> >>
> >> Does the lldb test suite not run as part of the CI builds?
> >
> > AFAIK it is currently not running as part of pull request testing.
> (Which is obviously not ideal).
> >
> > Getting some minimal coverage would be nice. But I think that would be
> outside of the scope of my changes. That can also be done subsequently to
> improve coverage.
> >
> >
> >>
> >> It seems that in the mean time, at least two new regressions have been
> introduced into the Windows build. That does make me slightly hesistent
> since it seems that it is more likely that other regressions will get
> introduced.
> >>
> >> In any case, I’m doing a build of lldb and will look into this once the
> build completes. Hopefully the failures also reproduces on Linux.
> >
> > Thanks! Jim (jingham at apple.com) should be able to help you with any
> LLDB-related questions.
> >
> > Awesome! I might have to take you up on that offer :)
> >
> >
> > -- adrian
> >
> >>
> >> Saleem
> >>
> >> On Wed, Oct 4, 2017 at 10:36 AM Adrian Prantl <aprantl at apple.com>
> wrote:
> >>
> >>> On Oct 4, 2017, at 10:33 AM, Saleem Abdulrasool <compnerd at compnerd.org>
> wrote:
> >>>
> >>>
> >>> On Wed, Oct 4, 2017 at 10:29 AM Jim Ingham <jingham at apple.com> wrote:
> >>> Nothing significant has changed on the lldb side but we're getting a
> bunch of tests asserting here:
> >>>
> >>> 21:01:25
> >>> Assertion failed: (isTypeMetadata()), function getDescription, file
> /Users/buildslave/jenkins/workspace/lldb-master-tools_RA/swift/include/swift/Runtime/Metadata.h,
> line 1469.
> >>>
> >>> Anybody got any clues of what might have changed on the Swift side to
> start tripping this assertion?
> >>>
> >>> The type metadata layout has changed. The value witness table
> reference is no longer an offset but rather a complete pointer.
> >>>
> >>> It is possible that lldb needs to be updated for that?
> >>
> >> That sounds plausible. Would it be possible to revert the commit until
> a solution is found? You can easily build lldb by checking it out next to
> swift and adding "-l" to the build script.
> >>
> >> -- adrian
> >>
> >>>
> >>>
> >>> Jim
> >>>
> >>>
> >>>
> >>> > On Oct 3, 2017, at 9:38 PM, no-reply at swift.org wrote:
> >>> >
> >>> > [FAILURE] oss-lldb-incremental-osx [#230]
> >>> >
> >>> > Build URL: https://ci.swift.org/job/oss-lldb-incremental-osx/230/
> >>> > Project: oss-lldb-incremental-osx
> >>> > Date of build: Tue, 03 Oct 2017 22:55:41 -0500
> >>> > Build duration: 43 min
> >>> > Identified problems:
> >>> >
> >>> > • Regression test failed: This build failed because a
> regression test in the test suite FAILed. Below is a list of all errors:
> >>> > • Indication 1
> >>> > • Assertion failure: This build failed because of an assertion
> failure. Below is a list of all errors in the build log:
> >>> > • Indication 1
> >>> >
> >>> > Changes
> >>> >
> >>> > • Commit 99e395b7e3f89b1f6f2874296a37add58aece6d6 by github:
> >>> > [APINotes] Add 'RetainCountConvention' (#133)
> >>> >
> >>> > • edit: include/clang/APINotes/Types.h
> >>> > • edit: lib/APINotes/APINotesWriter.cpp
> >>> > • edit: test/APINotes/Inputs/roundtrip.apinotes
> >>> > • edit: lib/APINotes/APINotesYAMLCompiler.cpp
> >>> > • edit: lib/APINotes/APINotesReader.cpp
> >>> > • add: test/APINotes/retain-count-convention.m
> >>> > • edit:
> test/APINotes/Inputs/Frameworks/SimpleKit.framework/Headers/SimpleKit.h
> >>> > • edit: lib/Sema/SemaAPINotes.cpp
> >>> > • edit: test/APINotes/yaml-roundtrip.c
> >>> > • edit:
> test/APINotes/Inputs/Frameworks/SimpleKit.framework/Headers/SimpleKit.apinotes
> >>> >
> >>> > • Commit 969421f5ac164d98f4650ae0f1a4fd10409cabad by aprantl:
> >>> > [DebugInfo] Handle endianness when moving debug info for split
> integer
> >>> >
> >>> > • edit: lib/CodeGen/SelectionDAG/LegalizeTypes.cpp
> >>> > • add: test/CodeGen/PowerPC/debuginfo-split-int.ll
> >>> >
> >>> > • Commit e77f221279851c2406e824e75ae8904ba7d89ab5 by aprantl:
> >>> > Add a manpage for llvm-dwarfdump.
> >>> >
> >>> > • edit: docs/CMakeLists.txt
> >>> > • edit: docs/CommandGuide/llvm-dwarfdump.rst
> >>> >
> >>> > • Commit 2850e656c89ac7c4837a01b57c52c036e88c81f7 by jingham:
> >>> > This test is passing everywhere I can see, so I'm removing the
> xfail, to
> >>> >
> >>> > • edit:
> packages/Python/lldbsuite/test/functionalities/thread/exit_during_step/TestExitDuringStep.py
> >>> >
> >>> > • Commit 7e6b564bf551e1ccd4eaff2824d87dd89b71a686 by dgregor:
> >>> > Add fixed crasher from rdar://problem/33575781
> >>> >
> >>> > • add:
> validation-test/compiler_crashers_2_fixed/0125-rdar33575781.swift
> >>> >
> >>> > • Commit 086c12114dfdff1b7b7179a6052f43a8d73557ed by compnerd:
> >>> > IRGen: switch to absolute pointers for nominal type descriptors
> >>> >
> >>> > • edit: include/swift/Runtime/Metadata.h
> >>> > • edit: lib/IRGen/ConstantBuilder.h
> >>> > • edit: stdlib/public/runtime/Metadata.cpp
> >>> > • edit: unittests/runtime/Metadata.cpp
> >>> > • edit: lib/IRGen/GenMeta.cpp
> >>> > • edit: stdlib/public/runtime/ProtocolConformance.cpp
> >>> > • edit: test/IRGen/foreign_types.sil
> >>> > • edit: test/IRGen/objc_attr_NSManaged.sil
> >>> > • edit: include/swift/Remote/MetadataReader.h
> >>> > • edit: stdlib/public/runtime/Casting.cpp
> >>> > • edit: test/IRGen/field_type_vectors.sil
> >>> >
> >>> > • Commit 2645a6a4b9cf2df212da6db9a41b3363ff44de56 by dgregor:
> >>> > [Deserialization] Configure protocol before loading requirement
> >>> >
> >>> > • add:
> test/Serialization/recursive_protocol_merge.swift
> >>> > • add:
> test/Serialization/Inputs/recursive_protocol_merge_b.swift
> >>> > • add:
> test/Serialization/Inputs/recursive_protocol_merge_a.swift
> >>> > • edit: lib/Serialization/Deserialization.cpp
> >>> >
> >>> > • Commit 610aa582ce9647ad377812355d8ae36ec5cf0e31 by shajrawi:
> >>> > Fixes (another) IRGen compiler crash caused by the new large types
> ABI
> >>> >
> >>> > • edit: test/IRGen/big_types_corner_cases.sil
> >>> > • edit: lib/IRGen/LoadableByAddress.cpp
> >>> >
> >>> > • Commit 77554c1ae2b3b2de16b803409d9f7085ad186562 by ghoare:
> >>> > [Stats] Fix typo.
> >>> >
> >>> > • edit: lib/Basic/Statistic.cpp
> >>> >
> >>> > • Commit 0e5b982d2561bc7c102e2abe984e19241735aaa2 by ghoare:
> >>> > [Stats] Only use input filename, not mangled path, in stats file
> name.
> >>> >
> >>> > • edit: lib/Basic/Statistic.cpp
> >>> >
> >>> > • Commit c1a4bb490bcdf8d20c962ab43249eaee44ee037f by github:
> >>> > [test] Define out part of this test that's crashing on Linux (#12258)
> >>> >
> >>> > • edit: test/ClangImporter/clang_builtins.swift
> >>>
> >>> --
> >>> Saleem Abdulrasool
> >>> compnerd (at) compnerd (dot) org
> >> --
> >> Saleem Abdulrasool
> >> compnerd (at) compnerd (dot) org
> > --
> > Saleem Abdulrasool
> > compnerd (at) compnerd (dot) org
> > --
> > Saleem Abdulrasool
> > compnerd (at) compnerd (dot) org
> > _______________________________________________
> > swift-lldb-dev mailing list
> > swift-lldb-dev at swift.org
> > https://lists.swift.org/mailman/listinfo/swift-lldb-dev
>
> --
Saleem Abdulrasool
compnerd (at) compnerd (dot) org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.swift.org/pipermail/swift-lldb-dev/attachments/20171004/4e4dd1c4/attachment.html>
More information about the swift-lldb-dev
mailing list