Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

6.0.3 toolchain on macOS crashes when compiling Swift Lambda Runtime library in Swift 6 mode #78926

Closed
sebsto opened this issue Jan 26, 2025 · 0 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. crash Bug: A crash, i.e., an abnormal termination of software triage needed This issue needs more specific labels

Comments

@sebsto
Copy link

sebsto commented Jan 26, 2025

Description

The compiler crashes with a stack trace when compiling the Swift AWS Lambda Runtime library on macOS and Linux in Swift 6 mode.

It fails with pass #1183 SILFunctionTransform "TransferNonSendable" on SILFunction on one of the two defer() (here and here) calls made in [LambdaRuntimeClient.swift](https://github.com/swift-server/swift-aws-lambda-runtime/blob/main/Sources/AWSLambdaRuntimeCore/LambdaRuntimeClient.swift)

The full error is shared below in the stack dum section.

Reproduction

git clone https://github.com/swift-server/swift-aws-lambda-runtime

Edit Package.swift and remove line 40

Then compile

swift build

Stack dump

Stack dump:
0.      Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend -frontend -c /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/ControlPlaneRequest.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/ControlPlaneRequestEncoder.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/Lambda+Codable.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/Lambda+LocalServer.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/Lambda.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaContext.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaHandlers.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaRequestID.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaRuntime.swift -primary-file /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaRuntimeClient.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaRuntimeClientProtocol.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/LambdaRuntimeError.swift /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/Sources/AWSLambdaRuntimeCore/Utils.swift -emit-dependencies-path /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/AWSLambdaRuntimeCore.build/LambdaRuntimeClient.d -emit-reference-dependencies-path /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/AWSLambdaRuntimeCore.build/LambdaRuntimeClient.swiftdeps -target arm64-apple-macosx15.0 -Xllvm -aarch64-use-tbi -enable-objc-interop -stack-check -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -I /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/Modules -I /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib -F /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -color-diagnostics -enable-testing -g -debug-info-format=dwarf -dwarf-version=5 -module-cache-path /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/ModuleCache -swift-version 6 -Onone -D SWIFT_PACKAGE -D DEBUG -new-driver-path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-driver -empty-abi-descriptor -resource-dir /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift -enable-anonymous-context-mangled-names -file-compilation-dir /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/CNIOLLHTTP.build/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIOLLHTTP/include -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/CNIOWASI.build/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIOWASI/include -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIOWindows/include/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIOWindows/include -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/CNIOLinux.build/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIOLinux/include -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/CNIODarwin.build/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIODarwin/include -Xcc -fmodule-map-file=/Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/CNIOAtomics.build/module.modulemap -Xcc -I -Xcc /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/checkouts/swift-nio/Sources/CNIOAtomics/include -Xcc -isysroot -Xcc /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX15.2.sdk -Xcc -F -Xcc /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/Library/Frameworks -Xcc -fPIC -Xcc -g -module-name AWSLambdaRuntimeCore -package-name swift_aws_lambda_runtime -disable-clang-spi -target-sdk-version 15.2 -target-sdk-name macosx15.2 -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/lib/swift/host/plugins#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -external-plugin-path /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/lib/swift/host/plugins#/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin/swift-plugin-server -plugin-path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/host/plugins -plugin-path /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/lib/swift/host/plugins -parse-as-library -o /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/AWSLambdaRuntimeCore.build/LambdaRuntimeClient.swift.o -index-store-path /Users/sst/Documents/code/swift/lambda/swift-aws-lambda-runtime/.build/arm64-apple-macosx/debug/index/store -index-system-modules
1.      Apple Swift version 6.0.3 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
2.      Compiling with the current language version
3.      While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for AWSLambdaRuntimeCore)
4.      While running pass #1183 SILFunctionTransform "TransferNonSendable" on SILFunction "@$s20AWSLambdaRuntimeCore06LambdaB6ClientC19makeOrGetConnection33_59FD0B78DD5D4250AAE9FA289B9DF5CFLLAA0D14ChannelHandlerAELLCyACGyYaKF6$deferL_yyF".
 for '$defer()' (in module 'AWSLambdaRuntimeCore')
Stack dump without symbol names (ensure you have llvm-symbolizer in your PATH or set the environment var `LLVM_SYMBOLIZER_PATH` to point to it):
0  swift-frontend           0x000000010a44ea9c llvm::sys::PrintStackTrace(llvm::raw_ostream&, int) + 56
1  swift-frontend           0x000000010a44ccf0 llvm::sys::RunSignalHandlers() + 112
2  swift-frontend           0x000000010a44f068 SignalHandler(int) + 292
3  libsystem_platform.dylib 0x000000018d066e04 _sigtramp + 56
4  swift-frontend           0x000000010682f374 swift::ActorIsolation::printForDiagnostics(llvm::raw_ostream&, llvm::StringRef) const + 360
5  swift-frontend           0x000000010682f374 swift::ActorIsolation::printForDiagnostics(llvm::raw_ostream&, llvm::StringRef) const + 360
6  swift-frontend           0x0000000105e64d8c swift::SILIsolationInfo::printForDiagnostics(llvm::raw_ostream&) const + 448
7  swift-frontend           0x0000000105c07c7c (anonymous namespace)::TransferNonSendableImpl::emitDiagnostics() + 14148
8  swift-frontend           0x0000000105c04348 (anonymous namespace)::TransferNonSendable::run() + 460
9  swift-frontend           0x0000000105c39b74 swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) + 3448
10 swift-frontend           0x0000000105c36158 swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) + 11968
11 swift-frontend           0x0000000105c6f6a4 swift::SimpleRequest<swift::ExecuteSILPipelineRequest, std::__1::tuple<> (swift::SILPipelineExecutionDescriptor), (swift::RequestFlags)1>::evaluateRequest(swift::ExecuteSILPipelineRequest const&, swift::Evaluator&) + 56
12 swift-frontend           0x0000000105c53008 swift::ExecuteSILPipelineRequest::OutputType swift::Evaluator::getResultUncached<swift::ExecuteSILPipelineRequest, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()>(swift::ExecuteSILPipelineRequest const&, swift::ExecuteSILPipelineRequest::OutputType swift::evaluateOrFatal<swift::ExecuteSILPipelineRequest>(swift::Evaluator&, swift::ExecuteSILPipelineRequest)::'lambda'()) + 412
13 swift-frontend           0x0000000105c55784 swift::runSILDiagnosticPasses(swift::SILModule&) + 612
14 swift-frontend           0x00000001051cc0e4 swift::CompilerInstance::performSILProcessing(swift::SILModule*) + 84
15 swift-frontend           0x0000000104df69c4 performCompileStepsPostSILGen(swift::CompilerInstance&, std::__1::unique_ptr<swift::SILModule, std::__1::default_delete<swift::SILModule>>, llvm::PointerUnion<swift::ModuleDecl*, swift::SourceFile*>, swift::PrimarySpecificPaths const&, int&, swift::FrontendObserver*) + 1376
16 swift-frontend           0x0000000104df5bd0 swift::performCompileStepsPostSema(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 984
17 swift-frontend           0x0000000104df8e88 performCompile(swift::CompilerInstance&, int&, swift::FrontendObserver*) + 1684
18 swift-frontend           0x0000000104df7bb4 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) + 3572
19 swift-frontend           0x0000000104d7ea5c swift::mainEntry(int, char const**) + 3680
20 dyld                     0x000000018ccb0274 start + 2840
[259/270] Linking MockServer                   0x000000018ccb0274 start + 2840

Expected behavior

Should compile.

Environment

$ swiftc --version
Swift version 6.0.3 (swift-6.0.3-RELEASE)
Target: x86_64-unknown-linux-gnu

$ swiftc --version
swift-driver version: 1.115.1 Apple Swift version 6.0.3 (swiftlang-6.0.3.1.10 clang-1600.0.30.1)
Target: arm64-apple-macosx15.0

Additional information

No response

@sebsto sebsto added bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. crash Bug: A crash, i.e., an abnormal termination of software triage needed This issue needs more specific labels labels Jan 26, 2025
@sebsto sebsto closed this as completed Mar 19, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. crash Bug: A crash, i.e., an abnormal termination of software triage needed This issue needs more specific labels
Projects
None yet
Development

No branches or pull requests

1 participant