swiftlang / swift

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

Compiler crash when building a package that uses async-algorithms #66664

Open FranzBusch opened 1 year ago

FranzBusch commented 1 year ago

Description Building following package results in a compiler crash

// swift-tools-version: 5.8

import PackageDescription

let package = Package(
    name: "AsyncStream",
    platforms: [.macOS(.v13)],
    dependencies: [
        .package(url: "https://github.com/apple/swift-async-algorithms", from: "0.1.0"),
    ],
    targets: [
        .executableTarget(
            name: "AsyncStream",
            dependencies: [
                .product(name: "AsyncAlgorithms", package: "swift-async-algorithms"),
            ],
            path: "Sources"
        ),
    ]
)
import AsyncAlgorithms
@main
struct Programm {
    static func main() async throws {
        for await _ in AsyncChannel<Int>() {
        }
}
<unknown>:0: error: fatal error encountered while reading from module 'AsyncAlgorithms'; please submit a bug report (https://swift.org/contributing/#reporting-bugs)
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.  Program arguments: /usr/bin/swift-frontend -frontend -c -primary-file /wd/nio-test-project/Sources/TestExecutable/Program.swift -emit-dependencies-path /wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/TestExecutable.build/Program.d -emit-reference-dependencies-path /wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/TestExecutable.build/Program.swiftdeps -target aarch64-unknown-linux-gnu -Xllvm -aarch64-use-tbi -disable-objc-interop -I /wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug -color-diagnostics -enable-testing -g -module-cache-path /wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/ModuleCache -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -new-driver-path /usr/bin/swift-driver -entry-point-function-name TestExecutable_main -warn-concurrency -empty-abi-descriptor -plugin-path /usr/lib/swift/host/plugins -plugin-path /usr/local/lib/swift/host/plugins -resource-dir /usr/lib/swift -enable-anonymous-context-mangled-names -Xcc -fmodule-map-file=/wd/nio-test-project/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include/module.modulemap -Xcc -I -Xcc /wd/nio-test-project/.build/checkouts/swift-atomics/Sources/_AtomicsShims/include -Xcc -fmodule-map-file=/wd/nio-test-project/.build/checkouts/swift-nio/Sources/CNIOWindows/include/module.modulemap -Xcc -I -Xcc /wd/nio-test-project/.build/checkouts/swift-nio/Sources/CNIOWindows/include -Xcc -fmodule-map-file=/wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/CNIOLinux.build/module.modulemap -Xcc -I -Xcc /wd/nio-test-project/.build/checkouts/swift-nio/Sources/CNIOLinux/include -Xcc -fmodule-map-file=/wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/CNIOAtomics.build/module.modulemap -Xcc -I -Xcc /wd/nio-test-project/.build/checkouts/swift-nio/Sources/CNIOAtomics/include -Xcc -I/wd/nio-test-project/Sources/TestExecutable -Xcc -fPIC -module-name TestExecutable -parse-as-library -o /wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/TestExecutable.build/Program.swift.o -index-store-path /wd/nio-test-project/.build/aarch64-unknown-linux-gnu/debug/index/store -index-system-modules
1.  Swift version 5.9-dev (LLVM a34ab3cb279018d, Swift 9f9e709c6c2bc16)
2.  Compiling with the current language version
3.  While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for TestExecutable)
4.  While running pass #90 SILModuleTransform "MandatorySILLinker".
5.  While deserializing SIL function "$s15AsyncAlgorithms0A7ChannelC04makeA8IteratorAC0E0Vyx_GyF"
6.  *** DESERIALIZATION FAILURE ***

Expected behavior The above package should just compile

Environment

Reported via: https://github.com/apple/swift-async-algorithms/issues/262 rdar://110829452

lhoward commented 1 year ago

Also seeing this on Linux, importing Foundation resolves it.

Building for debugging...
error: compile command failed due to signal 6 (use -v to see invocation)
<unknown>:0: error: fatal error encountered while reading from module 'AsyncAlgorithms'; please submit a bug report (https://swift.org/contributing/#reporting-bugs)
Please submit a bug report (https://swift.org/contributing/#reporting-bugs) and include the crash backtrace.
Stack dump:
0.  Program arguments: /opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend -frontend -c -primary-file /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/Sources/AsyncSwiftIO/AsyncSPI.swift /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/Sources/AsyncSwiftIO/Utils.swift -emit-dependencies-path /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/AsyncSwiftIO.build/AsyncSPI.d -emit-reference-dependencies-path /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/AsyncSwiftIO.build/AsyncSPI.swiftdeps -target x86_64-unknown-linux-gnu -disable-objc-interop -I /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug -color-diagnostics -enable-testing -g -module-cache-path /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/ModuleCache -swift-version 5 -Onone -D SWIFT_PACKAGE -D DEBUG -new-driver-path /opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-driver -empty-abi-descriptor -resource-dir /opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/lib/swift -enable-anonymous-context-mangled-names -Xcc -fmodule-map-file=/home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/CNewlib.build/module.modulemap -Xcc -I -Xcc /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/checkouts/SwiftIO/Sources/CNewlib/include -Xcc -fmodule-map-file=/home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/LinuxHalSwiftIO.build/module.modulemap -Xcc -I -Xcc /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/Sources/LinuxHalSwiftIO/include -Xcc -fmodule-map-file=/home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/CSwiftIO.build/module.modulemap -Xcc -I -Xcc /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/checkouts/SwiftIO/Sources/CSwiftIO/include -Xcc -I -Xcc /opt/swift/usr/lib/swift -Xcc -fPIC -module-name AsyncSwiftIO -plugin-path /opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/lib/swift/host/plugins -plugin-path /opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/local/lib/swift/host/plugins -parse-as-library -o /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/AsyncSwiftIO.build/AsyncSPI.swift.o -index-store-path /home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/index/store -index-system-modules
1.  Swift version 5.9-dev (LLVM 46ac717ed0ec21c, Swift 05fe36c7b352712)
2.  Compiling with the current language version
3.  While evaluating request ExecuteSILPipelineRequest(Run pipelines { Mandatory Diagnostic Passes + Enabling Optimization Passes } on SIL for AsyncSwiftIO)
4.  While running pass #396 SILModuleTransform "MandatorySILLinker".
5.  While deserializing SIL function "$s15AsyncAlgorithms0A7ChannelC04makeA8IteratorAC0E0Vyx_GyF"
6.  *** DESERIALIZATION FAILURE ***
*** If any module named here was modified in the SDK, please delete the ***
*** new swiftmodule files from the SDK and keep only swiftinterfaces.   ***
module 'AsyncAlgorithms', builder version '5.9(5.9)/Swift version 5.9-dev (LLVM 46ac717ed0ec21c, Swift 05fe36c7b352712)', built from source, non-resilient, loaded from '/home/lukeh/CVSRoot/padl/LinuxHalSwiftIO/.build/x86_64-unknown-linux-gnu/debug/AsyncAlgorithms.swiftmodule'
SILFunction type mismatch

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):
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x7021663)[0x55b2724ee663]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x701f3ae)[0x55b2724ec3ae]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x70219da)[0x55b2724ee9da]
/lib/x86_64-linux-gnu/libc.so.6(+0x42520)[0x7f5b40cb6520]
/lib/x86_64-linux-gnu/libc.so.6(pthread_kill+0x12c)[0x7f5b40d0aa7c]
/lib/x86_64-linux-gnu/libc.so.6(raise+0x16)[0x7f5b40cb6476]
/lib/x86_64-linux-gnu/libc.so.6(abort+0xd3)[0x7f5b40c9c7f3]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1c4b03c)[0x55b26d11803c]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1d35539)[0x55b26d202539]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1d0c5be)[0x55b26d1d95be]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1d09ec6)[0x55b26d1d6ec6]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1d1d2ae)[0x55b26d1ea2ae]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1cd4d78)[0x55b26d1a1d78]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1f7e5eb)[0x55b26d44b5eb]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1f7e3e7)[0x55b26d44b3e7]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x1e182c4)[0x55b26d2e52c4]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x172a1b3)[0x55b26cbf71b3]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15b2002)[0x55b26ca7f002]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15b45ea)[0x55b26ca815ea]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15aea68)[0x55b26ca7ba68]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15aea1d)[0x55b26ca7ba1d]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15cffca)[0x55b26ca9cfca]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15bc5a3)[0x55b26ca895a3]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15aec65)[0x55b26ca7bc65]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x15be251)[0x55b26ca8b251]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0x10216f7)[0x55b26c4ee6f7]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xd99194)[0x55b26c266194]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xd9824d)[0x55b26c26524d]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xdadfc5)[0x55b26c27afc5]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xd9b4f9)[0x55b26c2684f9]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xd9a225)[0x55b26c267225]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xbf9fb3)[0x55b26c0c6fb3]
/lib/x86_64-linux-gnu/libc.so.6(+0x29d90)[0x7f5b40c9dd90]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0x80)[0x7f5b40c9de40]
/opt/swift-5.9-DEVELOPMENT-SNAPSHOT-2023-08-24-a-ubuntu22.04/usr/bin/swift-frontend(+0xbf96e5)[0x55b26c0c66e5]