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

[SR-12487] Swift 5.2.1 Linux compiler crash on release build #54928

Closed
jdmcd opened this issue Apr 1, 2020 · 3 comments
Closed

[SR-12487] Swift 5.2.1 Linux compiler crash on release build #54928

jdmcd opened this issue Apr 1, 2020 · 3 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself performance regression swift 5.2

Comments

@jdmcd
Copy link

jdmcd commented Apr 1, 2020

Previous ID SR-12487
Radar rdar://problem/61168999
Original Reporter @jdmcd
Type Bug

Attachment: Download

Environment
$ sw_vers
ProductName: Mac OS X
ProductVersion: 10.15.2
BuildVersion: 19C57

Running the actual Dockerfile to build it. Building on Mac runs successfully.

Additional Detail from JIRA
Votes 0
Component/s Compiler
Labels Bug, 5.2Regression, CompileTime
Assignee None
Priority Medium

md5: e1980efaae41c5231acc85c0864945a5

Issue Description:

I am running the following Dockerfile:

FROM vapor3/swift:5.2.1 as builder
WORKDIR /build
COPY --chown=root:root .ssh/* /root/.ssh/
RUN chmod 600 /root/.ssh/key
COPY . .
RUN rm -rf .build
RUN swift build -v --enable-test-discovery -j 1 -c release -Xswiftc -g
FROM vapor/ubuntu:18.04
WORKDIR /run
ARG env
COPY --from=builder /build/.build/release /run
ENTRYPOINT ["./Run"]
CMD ["serve", "--env", "production", "--hostname", "0.0.0.0", "--port", "80"]

This is the build error I get:

swift: /home/buildnode/jenkins/workspace/oss-swift-5.2-package-linux-ubuntu-18_04/swift/lib/SIL/SILArgument.cpp:48: swift::SILArgument::SILArgument(swift::ValueKind, swift::SILBasicBlock *, SILBasicBlock::arg_iterator, swift::SILType, swift::ValueOwnershipKind, const swift::ValueDecl *): Assertion `!inputParentBlock->getParent()->isBare() && inputParentBlock->getParent()->size() == 1 ? decl != nullptr : true' failed.swift: /home/buildnode/jenkins/workspace/oss-swift-5.2-package-linux-ubuntu-18_04/swift/lib/SIL/SILArgument.cpp:48: swift::SILArgument::SILArgument(swift::ValueKind, swift::SILBasicBlock *, SILBasicBlock::arg_iterator, swift::SILType, swift::ValueOwnershipKind, const swift::ValueDecl *): Assertion `!inputParentBlock->getParent()->isBare() && inputParentBlock->getParent()->size() == 1 ? decl != nullptr : true' failed.

Stack dump:
0. Program arguments: /usr/bin/swift -frontend -c -filelist /tmp/sources-e6ed13 -supplementary-output-file-map /tmp/supplementaryOutputs-e7bd72 -target x86_64-unknown-linux-gnu -disable-objc-interop -I /build/.build/x86_64-unknown-linux-gnu/release -I /build/.build/checkouts/swift-nio/Sources/CNIOZlib/include -I /build/.build/checkouts/swift-nio/Sources/CNIOHTTPParser/include -I /build/.build/checkouts/swift-nio-ssl/Sources/CNIOOpenSSL/include -I /build/.build/checkouts/crypto/Sources/CCryptoOpenSSL/include -I /build/.build/checkouts/crypto/Sources/CBcrypt/include -I /build/.build/checkouts/crypto/Sources/CBase32/include -I /build/.build/checkouts/swift-nio/Sources/CNIOSHA1/include -I /build/.build/checkouts/swift-nio/Sources/CNIOAtomics/include -I /build/.build/checkouts/swift-nio/Sources/CNIODarwin/include -I /build/.build/checkouts/swift-nio/Sources/CNIOLinux/include -enable-testing -g -module-cache-path /build/.build/x86_64-unknown-linux-gnu/release/ModuleCache -swift-version 5 -O -D SWIFT_PACKAGE -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIOZlib.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIOHTTPParser.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIOOpenSSL.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CCryptoOpenSSL.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/checkouts/crypto/Sources/CBcrypt/include/module.modulemap -Xcc -fmodule-map-file=/build/.build/checkouts/crypto/Sources/CBase32/include/module.modulemap -Xcc -fmodule-map-file=/build/.build/checkouts/swift-nio-ssl-support/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIOSHA1.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIOAtomics.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIODarwin.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/x86_64-unknown-linux-gnu/release/CNIOLinux.build/module.modulemap -Xcc -fmodule-map-file=/build/.build/checkouts/swift-nio-zlib-support/module.modulemap -parse-as-library -module-name App -num-threads 2 -output-filelist /tmp/outputs-3c8c44
1. Swift version 5.2.1 (swift-5.2.1-RELEASE)2. Contents of /tmp/sources-e6ed13:[Excluded for privacy reasons, I can provide these privately to anyone who needs them]
3. While running pass #​6388522 SILFunctionTransform "FunctionSignatureOpts" on SILFunction "@$s3App8EmailJobV0bC7ContextV5email2toAeA0B0_p_SaySSGtcfCTf4enn_nAA016CSVEntitySuccessB0V_Tg5". for 'init(email:to:)' (at /build/Sources/App/Jobs/EmailJob.swift:10:9)
/usr/bin/swift[0x4b54b14]
/usr/bin/swift[0x4b526ee]
/usr/bin/swift[0x4b54dd6]
/lib/x86_64-linux-gnu/libpthread.so.0(+0x12890)[0x7f5a83b8f890]
/lib/x86_64-linux-gnu/libc.so.6(gsignal+0xc7)[0x7f5a81ff2e97]
/lib/x86_64-linux-gnu/libc.so.6(abort+0x141)[0x7f5a81ff4801]
/lib/x86_64-linux-gnu/libc.so.6(+0x3039a)[0x7f5a81fe439a]
/lib/x86_64-linux-gnu/libc.so.6(+0x30412)[0x7f5a81fe4412]
/usr/bin/swift[0xdf9baa]
/usr/bin/swift[0xdfbb40]
/usr/bin/swift[0xc03d28]
/usr/bin/swift[0xbff0ad]
/usr/bin/swift[0xc000b5]
/usr/bin/swift[0xc00d59]
/usr/bin/swift[0x97bbfd]
/usr/bin/swift[0x97c8c2]
/usr/bin/swift[0x97dbef]
/usr/bin/swift[0x562f78]
/usr/bin/swift[0x985f57]
/usr/bin/swift[0x76148c]
/usr/bin/swift[0x4ec7a8]
/usr/bin/swift[0x4e2655]
/usr/bin/swift[0x4df453]
/usr/bin/swift[0x473fa5]
/lib/x86_64-linux-gnu/libc.so.6(__libc_start_main+0xe7)[0x7f5a81fd5b97]
/usr/bin/swift[0x473bea]

The command '/bin/sh -c swift build -v --enable-test-discovery -j 1 -c release -Xswiftc -g' returned a non-zero code: 1

Here's the EmailJob file that it's referencing:

import Jobs
import Vapor
struct EmailJob: Job {
    struct EmailJobContext: JobData {
        let message: String
        let to: [String]
        let subject: String
        
        init(email: Email, to: [String]) {
            self.message = email.message()
            self.to = to
            self.subject = email.subject
        }
    }
    
    let emailService: EmailService
    
    func dequeue(_ context: JobContext, _ data: EmailJobContext) -> EventLoopFuture<Void> {
        return emailService.sendEmail(to: data.to, subject: data.subject, content: data.message)
    }
}

I am attempting to come up with a repro but unfortunately this is embedded in a very large, private project so I'm struggling a bit. Wanted to open this bug report sooner rather than later for the time being.

@jdmcd
Copy link
Author

jdmcd commented Apr 1, 2020

Repro.zip

This project is the closest I can get to reproduction without it actually crashing. It contains all of the relevant code around `EmailJob` referenced in the main project. You can see that it builds + runs fine with `docker build -t repro .` but does not crash. Still working to come up with an example.

@weissi
Copy link
Member

weissi commented Apr 1, 2020

@swift-ci create

@jdmcd
Copy link
Author

jdmcd commented Apr 2, 2020

Filed FB7649120 with the private codebase + instructions to reproduce

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@jdmcd jdmcd closed this as completed Apr 25, 2022
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. compiler The Swift compiler in itself performance regression swift 5.2
Projects
None yet
Development

No branches or pull requests

3 participants