swiftlang / swift

The Swift Programming Language
https://swift.org
Apache License 2.0
67.3k stars 10.34k forks source link

[SR-3499] Swift Compiler Bug #46087

Open swift-ci opened 7 years ago

swift-ci commented 7 years ago
Previous ID SR-3499
Radar None
Original Reporter NSMutableArray (JIRA User)
Type Bug

Attachment: Download

Environment Ubuntu on Docker on OS X Sierra on MacBook Pro 15" Mid-2014
Additional Detail from JIRA | | | |------------------|-----------------| |Votes | 0 | |Component/s | Compiler | |Labels | Bug, CompilerCrash, Linux | |Assignee | None | |Priority | Medium | md5: 25493fc22eae5e5893441c020d1cc116

Issue Description:

The swift compiler crashes when this source code is compiled:
https://ufile.io/da864

It gives this error:

Compile Swift Module 'DataServe' (16 sources)
swift: /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift/include/swift/AST/Decl.h:1735: void swift::ExtensionDecl::setDefaultAndMaxAccessibility(swift::Accessibility, swift::Accessibility): Assertion `!hasDefaultAccessibility() && "default accessibility already set"' failed.
0  swift           0x0000000003350548 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  swift           0x000000000334ed46 llvm::sys::RunSignalHandlers() + 54
2  swift           0x0000000003351076
3  libpthread.so.0 0x00007f1a1543d3e0
4  libc.so.6       0x00007f1a13d85428 gsignal + 56
5  libc.so.6       0x00007f1a13d8702a abort + 362
6  libc.so.6       0x00007f1a13d7dbd7
7  libc.so.6       0x00007f1a13d7dc82
8  swift           0x0000000000ecd06a
9  swift           0x0000000000ecce7b swift::TypeChecker::computeDefaultAccessibility(swift::ExtensionDecl*) + 843
10 swift           0x0000000000ecd3d8 swift::TypeChecker::computeAccessibility(swift::ValueDecl*) + 680
11 swift           0x0000000000ecd74c swift::TypeChecker::validateAccessibility(swift::ValueDecl*) + 76
12 swift           0x0000000000ecacee swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 62
13 swift           0x0000000001017394 swift::ArchetypeBuilder::PotentialArchetype::getNestedType(swift::Identifier, swift::ArchetypeBuilder&) + 708
14 swift           0x000000000101a4ec swift::ArchetypeBuilder::addConformanceRequirement(swift::ArchetypeBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::RequirementSource, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) + 460
15 swift           0x000000000101c88e swift::ArchetypeBuilder::addRequirement(swift::Requirement const&, swift::RequirementSource) + 318
16 swift           0x000000000101e623 swift::ArchetypeBuilder::addGenericSignature(swift::GenericSignature*, bool, bool) + 515
17 swift           0x0000000000f0a29f swift::TypeChecker::checkGenericParamList(swift::ArchetypeBuilder*, swift::GenericParamList*, swift::GenericSignature*, bool, swift::GenericTypeResolver*) + 63
18 swift           0x0000000000f0add9
19 swift           0x0000000000f0a9be swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 94
20 swift           0x0000000000ee0e2a
21 swift           0x0000000000ed15ed
22 swift           0x0000000000ecb05d swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 941
23 swift           0x0000000000ecb730 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 2688
24 swift           0x0000000000ef43f7
25 swift           0x0000000000ef4cc1 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1281
26 swift           0x0000000000c7ed39 swift::CompilerInstance::performSema() + 3289
27 swift           0x00000000007dbeaf
28 swift           0x00000000007daf81 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2833
29 swift           0x00000000007a7a1b main + 2603
30 libc.so.6       0x00007f1a13d70830 __libc_start_main + 240
31 swift           0x00000000007a5599 _start + 41
Stack dump:
0.  Program arguments: /root/swift-3.0.1-RELEASE-ubuntu16.04/usr/bin/swift -frontend -c -primary-file /projects/Kitura/DataServe/Sources/DataServe/main.swift /projects/Kitura/DataServe/Sources/DataServe/Controllers/AuthenticationController.swift /projects/Kitura/DataServe/Sources/DataServe/Controllers/Controller.swift /projects/Kitura/DataServe/Sources/DataServe/Controllers/StallController.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/ConnectionManager.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/DataAccessObject.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/ProductDAO.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/StallDAO.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/UserDAO.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/Entity.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/Product.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/Stall.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/User.swift /projects/Kitura/DataServe/Sources/DataServe/Resources/ProductResource.swift /projects/Kitura/DataServe/Sources/DataServe/Resources/Resource.swift /projects/Kitura/DataServe/Sources/DataServe/Resources/StallResource.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -I /projects/Kitura/DataServe/.build/debug -enable-testing -g -module-cache-path /projects/Kitura/DataServe/.build/debug/ModuleCache -D SWIFT_PACKAGE -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/CCurl-0.2.3/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/OpenSSL-0.3.1/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/CEpoll-0.1.0/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/Kitura-net-1.4.0/Sources/CHTTPParser/include/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/CMySQL-1.0.0/module.modulemap -Xcc -I/usr/include -Xcc -I/usr/include -emit-module-doc-path /projects/Kitura/DataServe/.build/debug/DataServe.build/main~partial.swiftdoc -Onone -module-name DataServe -emit-module-path /projects/Kitura/DataServe/.build/debug/DataServe.build/main~partial.swiftmodule -emit-dependencies-path /projects/Kitura/DataServe/.build/debug/DataServe.build/main.d -emit-reference-dependencies-path /projects/Kitura/DataServe/.build/debug/DataServe.build/main.swiftdeps -num-threads 8 -o /projects/Kitura/DataServe/.build/debug/DataServe.build/main.swift.o 
1.  While type-checking getter for entityDAO at /projects/Kitura/DataServe/Sources/DataServe/Resources/Resource.swift:20:24
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
/projects/Kitura/DataServe/Sources/DataServe/Controllers/StallController.swift:13:19: error: protocol 'Resource' can only be used as a generic constraint because it has Self or associated type requirements
    let resource: Resource  = StallResource()
                  ^
swift: /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift/include/swift/AST/Decl.h:1735: void swift::ExtensionDecl::setDefaultAndMaxAccessibility(swift::Accessibility, swift::Accessibility): Assertion `!hasDefaultAccessibility() && "default accessibility already set"' failed.
0  swift           0x0000000003350548 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  swift           0x000000000334ed46 llvm::sys::RunSignalHandlers() + 54
2  swift           0x0000000003351076
3  libpthread.so.0 0x00007f7d8c4f93e0
4  libc.so.6       0x00007f7d8ae41428 gsignal + 56
5  libc.so.6       0x00007f7d8ae4302a abort + 362
6  libc.so.6       0x00007f7d8ae39bd7
7  libc.so.6       0x00007f7d8ae39c82
8  swift           0x0000000000ecd06a
9  swift           0x0000000000ecce7b swift::TypeChecker::computeDefaultAccessibility(swift::ExtensionDecl*) + 843
10 swift           0x0000000000ecd3d8 swift::TypeChecker::computeAccessibility(swift::ValueDecl*) + 680
11 swift           0x0000000000ecd74c swift::TypeChecker::validateAccessibility(swift::ValueDecl*) + 76
12 swift           0x0000000000ecacee swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 62
13 swift           0x0000000001017394 swift::ArchetypeBuilder::PotentialArchetype::getNestedType(swift::Identifier, swift::ArchetypeBuilder&) + 708
14 swift           0x000000000101a4ec swift::ArchetypeBuilder::addConformanceRequirement(swift::ArchetypeBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::RequirementSource, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) + 460
15 swift           0x000000000101c88e swift::ArchetypeBuilder::addRequirement(swift::Requirement const&, swift::RequirementSource) + 318
16 swift           0x000000000101e623 swift::ArchetypeBuilder::addGenericSignature(swift::GenericSignature*, bool, bool) + 515
17 swift           0x0000000000f0a29f swift::TypeChecker::checkGenericParamList(swift::ArchetypeBuilder*, swift::GenericParamList*, swift::GenericSignature*, bool, swift::GenericTypeResolver*) + 63
18 swift           0x0000000000f0add9
19 swift           0x0000000000f0a9be swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 94
20 swift           0x0000000000ee0e2a
21 swift           0x0000000000ed15ed
22 swift           0x0000000000ecb05d swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 941
23 swift           0x000000000114040b swift::DeclContext::lookupQualified(swift::Type, swift::DeclName, swift::NLOptions, swift::LazyResolver*, llvm::SmallVectorImpl<swift::ValueDecl*>&) const + 2667
24 swift           0x0000000000f0f5f5
25 swift           0x0000000000f0f438 swift::TypeChecker::lookupMember(swift::DeclContext*, swift::Type, swift::DeclName, swift::OptionSet<swift::NameLookupFlags, unsigned int>) + 408
26 swift           0x0000000000f5c4a2 swift::constraints::ConstraintSystem::lookupMember(swift::Type, swift::DeclName) + 290
27 swift           0x0000000000fcd56d swift::constraints::ConstraintSystem::performMemberLookup(swift::constraints::ConstraintKind, swift::DeclName, swift::Type, swift::FunctionRefKind, swift::constraints::ConstraintLocator*, bool) + 2829
28 swift           0x0000000000fcf15b swift::constraints::ConstraintSystem::simplifyMemberConstraint(swift::constraints::Constraint const&) + 491
29 swift           0x0000000000fd0334 swift::constraints::ConstraintSystem::simplifyConstraint(swift::constraints::Constraint const&) + 68
30 swift           0x0000000000f5d077 swift::constraints::ConstraintSystem::addConstraint(swift::constraints::Constraint*, bool, bool) + 23
31 swift           0x0000000000faedd6
32 swift           0x0000000000fb9caa
33 swift           0x000000000109e54c
34 swift           0x000000000109be80
35 swift           0x0000000001098c1b swift::Expr::walk(swift::ASTWalker&) + 75
36 swift           0x0000000000fab368 swift::constraints::ConstraintSystem::generateConstraints(swift::Expr*) + 200
37 swift           0x0000000000fd761d swift::constraints::ConstraintSystem::solve(swift::Expr*&, swift::Type, swift::ExprTypeCheckListener*, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::FreeTypeVariableBinding) + 77
38 swift           0x0000000000eb7c53 swift::TypeChecker::solveForExpression(swift::Expr*&, swift::DeclContext*, swift::Type, swift::FreeTypeVariableBinding, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem&, llvm::SmallVectorImpl<swift::constraints::Solution>&, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>) + 403
39 swift           0x0000000000ebb09d swift::TypeChecker::typeCheckExpression(swift::Expr*&, swift::DeclContext*, swift::TypeLoc, swift::ContextualTypePurpose, swift::OptionSet<swift::TypeCheckExprFlags, unsigned int>, swift::ExprTypeCheckListener*, swift::constraints::ConstraintSystem*) + 621
40 swift           0x0000000000ebf160 swift::TypeChecker::typeCheckBinding(swift::Pattern*&, swift::Expr*&, swift::DeclContext*) + 352
41 swift           0x0000000000ebfeb5 swift::TypeChecker::typeCheckStmtCondition(llvm::MutableArrayRef<swift::StmtConditionElement>&, swift::DeclContext*, swift::Diag<>) + 373
42 swift           0x0000000000f3bbfd
43 swift           0x0000000000f3b8fe
44 swift           0x0000000000f3a5f5
45 swift           0x0000000000f3984a swift::TypeChecker::typeCheckFunctionBodyUntil(swift::FuncDecl*, swift::SourceLoc) + 346
46 swift           0x0000000000f396ae swift::TypeChecker::typeCheckAbstractFunctionBodyUntil(swift::AbstractFunctionDecl*, swift::SourceLoc) + 46
47 swift           0x0000000000f3a273 swift::TypeChecker::typeCheckAbstractFunctionBody(swift::AbstractFunctionDecl*) + 179
48 swift           0x0000000000ef4196
49 swift           0x0000000000ef4cc1 swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1281
50 swift           0x0000000000c7ee1b swift::CompilerInstance::performSema() + 3515
51 swift           0x00000000007dbeaf
52 swift           0x00000000007daf81 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2833
53 swift           0x00000000007a7a1b main + 2603
54 libc.so.6       0x00007f7d8ae2c830 __libc_start_main + 240
55 swift           0x00000000007a5599 _start + 41
Stack dump:
0.  Program arguments: /root/swift-3.0.1-RELEASE-ubuntu16.04/usr/bin/swift -frontend -c /projects/Kitura/DataServe/Sources/DataServe/main.swift /projects/Kitura/DataServe/Sources/DataServe/Controllers/AuthenticationController.swift /projects/Kitura/DataServe/Sources/DataServe/Controllers/Controller.swift -primary-file /projects/Kitura/DataServe/Sources/DataServe/Controllers/StallController.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/ConnectionManager.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/DataAccessObject.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/ProductDAO.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/StallDAO.swift /projects/Kitura/DataServe/Sources/DataServe/Data Access/UserDAO.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/Entity.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/Product.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/Stall.swift /projects/Kitura/DataServe/Sources/DataServe/Entities/User.swift /projects/Kitura/DataServe/Sources/DataServe/Resources/ProductResource.swift /projects/Kitura/DataServe/Sources/DataServe/Resources/Resource.swift /projects/Kitura/DataServe/Sources/DataServe/Resources/StallResource.swift -target x86_64-unknown-linux-gnu -disable-objc-interop -I /projects/Kitura/DataServe/.build/debug -enable-testing -g -module-cache-path /projects/Kitura/DataServe/.build/debug/ModuleCache -D SWIFT_PACKAGE -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/CCurl-0.2.3/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/OpenSSL-0.3.1/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/CEpoll-0.1.0/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/Kitura-net-1.4.0/Sources/CHTTPParser/include/module.modulemap -Xcc -fmodule-map-file=/projects/Kitura/DataServe/Packages/CMySQL-1.0.0/module.modulemap -Xcc -I/usr/include -Xcc -I/usr/include -emit-module-doc-path /projects/Kitura/DataServe/.build/debug/DataServe.build/StallController~partial.swiftdoc -Onone -module-name DataServe -emit-module-path /projects/Kitura/DataServe/.build/debug/DataServe.build/StallController~partial.swiftmodule -emit-dependencies-path /projects/Kitura/DataServe/.build/debug/DataServe.build/StallController.d -emit-reference-dependencies-path /projects/Kitura/DataServe/.build/debug/DataServe.build/StallController.swiftdeps -num-threads 8 -o /projects/Kitura/DataServe/.build/debug/DataServe.build/Controllers/StallController.swift.o 
1.  While type-checking 'getRoute' at /projects/Kitura/DataServe/Sources/DataServe/Controllers/StallController.swift:31:5
2.  While type-checking expression at [/projects/Kitura/DataServe/Sources/DataServe/Controllers/StallController.swift:41:31 - line:41:68] RangeText="try resource.get(uniqueIdentifier: id)"
3.  While type-checking 'get' at /projects/Kitura/DataServe/Sources/DataServe/Resources/Resource.swift:23:5
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal (use -v to see invocation)
swift: /home/buildnode/disk2/workspace/oss-swift-3.0-package-linux-ubuntu-16_04/swift/include/swift/AST/Decl.h:1735: void swift::ExtensionDecl::setDefaultAndMaxAccessibility(swift::Accessibility, swift::Accessibility): Assertion `!hasDefaultAccessibility() && "default accessibility already set"' failed.
0  swift           0x0000000003350548 llvm::sys::PrintStackTrace(llvm::raw_ostream&) + 40
1  swift           0x000000000334ed46 llvm::sys::RunSignalHandlers() + 54
2  swift           0x0000000003351076
3  libpthread.so.0 0x00007f0d02fe93e0
4  libc.so.6       0x00007f0d01931428 gsignal + 56
5  libc.so.6       0x00007f0d0193302a abort + 362
6  libc.so.6       0x00007f0d01929bd7
7  libc.so.6       0x00007f0d01929c82
8  swift           0x0000000000ecd06a
9  swift           0x0000000000ecce7b swift::TypeChecker::computeDefaultAccessibility(swift::ExtensionDecl*) + 843
10 swift           0x0000000000ecd3d8 swift::TypeChecker::computeAccessibility(swift::ValueDecl*) + 680
11 swift           0x0000000000ecd74c swift::TypeChecker::validateAccessibility(swift::ValueDecl*) + 76
12 swift           0x0000000000ecacee swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 62
13 swift           0x0000000001017394 swift::ArchetypeBuilder::PotentialArchetype::getNestedType(swift::Identifier, swift::ArchetypeBuilder&) + 708
14 swift           0x000000000101a4ec swift::ArchetypeBuilder::addConformanceRequirement(swift::ArchetypeBuilder::PotentialArchetype*, swift::ProtocolDecl*, swift::RequirementSource, llvm::SmallPtrSetImpl<swift::ProtocolDecl*>&) + 460
15 swift           0x000000000101c88e swift::ArchetypeBuilder::addRequirement(swift::Requirement const&, swift::RequirementSource) + 318
16 swift           0x000000000101e623 swift::ArchetypeBuilder::addGenericSignature(swift::GenericSignature*, bool, bool) + 515
17 swift           0x0000000000f0a29f swift::TypeChecker::checkGenericParamList(swift::ArchetypeBuilder*, swift::GenericParamList*, swift::GenericSignature*, bool, swift::GenericTypeResolver*) + 63
18 swift           0x0000000000f0add9
19 swift           0x0000000000f0a9be swift::TypeChecker::validateGenericFuncSignature(swift::AbstractFunctionDecl*) + 94
20 swift           0x0000000000ee0e2a
21 swift           0x0000000000ed15ed
22 swift           0x0000000000ecb05d swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 941
23 swift           0x0000000000ecb730 swift::TypeChecker::validateDecl(swift::ValueDecl*, bool) + 2688
24 swift           0x0000000000f28cb5
25 swift           0x0000000000f20096
26 swift           0x0000000000f18f7e swift::TypeChecker::checkConformance(swift::NormalProtocolConformance*) + 1694
27 swift           0x0000000000f196c7 swift::TypeChecker::checkConformancesInContext(swift::DeclContext*, swift::IterableDeclContext*) + 487
28 swift           0x0000000000edd9c9
29 swift           0x0000000000ed159d
30 swift           0x0000000000ed1406 swift::TypeChecker::typeCheckDecl(swift::Decl*, bool) + 150
31 swift           0x0000000000ef4c4a swift::performTypeChecking(swift::SourceFile&, swift::TopLevelContext&, swift::OptionSet<swift::TypeCheckingFlags, unsigned int>, unsigned int, unsigned int) + 1162
32 swift           0x0000000000c7ee1b swift::CompilerInstance::performSema() + 3515
33 swift           0x00000000007dbeaf
34 swift           0x00000000007daf81 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 2833
35 swift           0x00000000007a7a1b main + 2603
36 libc.so.6       0x00007f0d0191c830 __libc_start_main + 240
37 swift           0x00000000007a5599 _start + 41

(truncated because it's too long)

CodaFi commented 7 years ago

In the future, could you please attach code to gists or create github repositories? These kinds of websites are not the greatest things to be downloading files from.