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-9553] Linux SILFunctionTransform crash in release mode #52001

Open
stephencelis opened this issue Dec 20, 2018 · 3 comments
Open

[SR-9553] Linux SILFunctionTransform crash in release mode #52001

stephencelis opened this issue Dec 20, 2018 · 3 comments
Labels
bug A deviation from expected or documented behavior. Also: expected but undesirable behavior. compiler The Swift compiler in itself crash Bug: A crash, i.e., an abnormal termination of software optimized only Flag: An issue whose reproduction requires optimized compilation

Comments

@stephencelis
Copy link
Contributor

Previous ID SR-9553
Radar None
Original Reporter @stephencelis
Type Bug
Environment

Swift 4.2.1 / Linux

Additional Detail from JIRA
Votes 1
Component/s Compiler
Labels Bug, CompilerCrash, OptimizedOnly
Assignee None
Priority Medium

md5: 1b0b999736c6962287071b6532e49ad3

Issue Description:

This commit:

pointfreeco/pointfreeco@4ea3311

Contains this code:

pointfreeco/pointfreeco@4ea3311#diff-7f12bec2f578f77c2b856d323cbeaab2R60

That crashes on Swift 4.2.1 in when built for release mode:

swift: /home/buildnode/jenkins/workspace/oss-swift-4.2-package-linux-ubuntu-16_04/swift/lib/SILOptimizer/Transforms/SILMem2Reg.cpp:879: bool (anonymous namespace)::MemoryToRegisters::promoteSingleAllocation(swift::AllocStackInst *, DomTreeLevelMap &): Assertion `isWriteOnlyAllocation(alloc) && "Non-write uses left behind"' failed.
#​0 0x000000000410ac94 PrintStackTraceSignalHandler(void*) (/usr/bin/swift+0x410ac94)
#​1 0x0000000004108b22 llvm::sys::RunSignalHandlers() (/usr/bin/swift+0x4108b22)
#​2 0x000000000410ae42 SignalHandler(int) (/usr/bin/swift+0x410ae42)
#​3 0x00007f0abfb8e390 __restore_rt (/lib/x86_64-linux-gnu/libpthread.so.0+0x11390)
#​4 0x00007f0abe2cd428 gsignal (/lib/x86_64-linux-gnu/libc.so.6+0x35428)
#​5 0x00007f0abe2cf02a abort (/lib/x86_64-linux-gnu/libc.so.6+0x3702a)
#​6 0x00007f0abe2c5bd7 (/lib/x86_64-linux-gnu/libc.so.6+0x2dbd7)
#​7 0x00007f0abe2c5c82 (/lib/x86_64-linux-gnu/libc.so.6+0x2dc82)
#​8 0x0000000000e6a879 (anonymous namespace)::MemoryToRegisters::run() (/usr/bin/swift+0xe6a879)
#​9 0x0000000000e67dc2 (anonymous namespace)::SILMem2Reg::run() (/usr/bin/swift+0xe67dc2)
#​10 0x0000000000d53bb3 swift::SILPassManager::runPassOnFunction(unsigned int, swift::SILFunction*) (/usr/bin/swift+0xd53bb3)
#​11 0x0000000000d546b1 swift::SILPassManager::runFunctionPasses(unsigned int, unsigned int) (/usr/bin/swift+0xd546b1)
#​12 0x0000000000d555e4 swift::SILPassManager::execute() (/usr/bin/swift+0xd555e4)
#​13 0x00000000005c1648 swift::SILPassManager::executePassPipelinePlan(swift::SILPassPipelinePlan const&) (/usr/bin/swift+0x5c1648)
#​14 0x0000000000d5c8a0 swift::runSILOptimizationPasses(swift::SILModule&) (/usr/bin/swift+0xd5c8a0)
#&#8203;15 0x00000000004de8b1 performCompile(swift::CompilerInstance&, swift::CompilerInvocation&, llvm::ArrayRef<char const*>, int&, swift::FrontendObserver*, swift::UnifiedStatsReporter*) (/usr/bin/swift+0x4de8b1)
#&#8203;16 0x00000000004da3f0 swift::performFrontend(llvm::ArrayRef<char const*>, char const*, void*, swift::FrontendObserver*) (/usr/bin/swift+0x4da3f0)
#&#8203;17 0x000000000048a348 main (/usr/bin/swift+0x48a348)
#&#8203;18 0x00007f0abe2b8830 __libc_start_main (/lib/x86_64-linux-gnu/libc.so.6+0x20830)
#&#8203;19 0x0000000000488009 _start (/usr/bin/swift+0x488009)
Stack dump:
0.  Program arguments: /usr/bin/swift -frontend -c -filelist /tmp/org.swift.swiftpm.root/sources-e96075 -supplementary-output-file-map /tmp/org.swift.swiftpm.root/supplementaryOutputs-7caff9 -target x86_64-unknown-linux -disable-objc-interop -sdk / -I /app/.build/x86_64-unknown-linux/release -I /usr/include/postgresql -I /app/.build/checkouts/swift-nio.git-3124595005861952463/Sources/CNIOZlib/include -I /app/.build/checkouts/swift-nio.git-3124595005861952463/Sources/CNIOHTTPParser/include -I /app/.build/checkouts/swift-nio.git-3124595005861952463/Sources/CNIOSHA1/include -I /app/.build/checkouts/swift-nio.git-3124595005861952463/Sources/CNIOAtomics/include -I /app/.build/checkouts/swift-nio.git-3124595005861952463/Sources/CNIODarwin/include -I /app/.build/checkouts/swift-nio.git-3124595005861952463/Sources/CNIOLinux/include -module-cache-path /app/.build/x86_64-unknown-linux/release/ModuleCache -swift-version 4.2 -O -D SWIFT_PACKAGE -Xcc -fmodule-map-file=/app/.build/checkouts/cpostgresql.git--4956655006051125229/module.modulemap -Xcc -fmodule-map-file=/app/.build/x86_64-unknown-linux/release/CNIOZlib.build/module.modulemap -Xcc -fmodule-map-file=/app/.build/x86_64-unknown-linux/release/CNIOHTTPParser.build/module.modulemap -Xcc -fmodule-map-file=/app/.build/x86_64-unknown-linux/release/CNIOSHA1.build/module.modulemap -Xcc -fmodule-map-file=/app/.build/x86_64-unknown-linux/release/CNIOAtomics.build/module.modulemap -Xcc -fmodule-map-file=/app/.build/x86_64-unknown-linux/release/CNIODarwin.build/module.modulemap -Xcc -fmodule-map-file=/app/.build/x86_64-unknown-linux/release/CNIOLinux.build/module.modulemap -Xcc -fmodule-map-file=/app/.build/checkouts/swift-nio-zlib-support.git--4503950764745536352/module.modulemap -Xcc -fmodule-map-file=/app/.build/checkouts/OpenSSL.git-3060685892958430597/module.modulemap -Xcc -fmodule-map-file=/app/.build/checkouts/Ccmark.git--7331320703646241439/module.modulemap -parse-as-library -module-name PointFree -num-threads 1 -output-filelist /tmp/org.swift.swiftpm.root/outputs-0dead8 
1.  Contents of /tmp/org.swift.swiftpm.root/sources-e96075:
---
/app/Sources/PointFree/About.swift
/app/Sources/PointFree/Account/Account.swift
/app/Sources/PointFree/Account/Cancel.swift
/app/Sources/PointFree/Account/Change.swift
/app/Sources/PointFree/Account/Invite.swift
/app/Sources/PointFree/Account/Invoices.swift
/app/Sources/PointFree/Account/PaymentInfo.swift
/app/Sources/PointFree/Account/PrivateRss.swift
/app/Sources/PointFree/Account/Team.swift
/app/Sources/PointFree/Account/UpdateProfile.swift
/app/Sources/PointFree/Admin/EpisodeCredit.swift
/app/Sources/PointFree/Admin/FreeEpisodes.swift
/app/Sources/PointFree/Admin/Index.swift
/app/Sources/PointFree/Admin/NewEpisodes.swift
/app/Sources/PointFree/Admin/SendNewBlogPostMailer.swift
/app/Sources/PointFree/AppleDeveloperMerchantIdDomainAssociation.swift
/app/Sources/PointFree/Atom.swift
/app/Sources/PointFree/AtomFeed.swift
/app/Sources/PointFree/Auth.swift
/app/Sources/PointFree/Blog/BlogAtomFeed.swift
/app/Sources/PointFree/Blog/BlogMiddleware.swift
/app/Sources/PointFree/Blog/BlogPost.swift
/app/Sources/PointFree/Blog/BlogPostIndex.swift
/app/Sources/PointFree/Blog/BlogPostShow.swift
/app/Sources/PointFree/Blog/BlogPosts/AllBlogPosts.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0001_Announcement.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0002_EpisodeCredits.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0003_Ep14_Solutions.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0004_OvertureSetters.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0005_StylingWithFunctions.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0006_TaggedSecondsAndMilliseconds.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0007_OpenSourcingNonEmpty.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0008_ConditionalCoding.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0009_6MonthAnniversary.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0010_StudentDiscounts.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0011_SolutionsToZipExercisesPt1.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0012_SolutionsToZipExercisesPt2.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0013_SolutionsToZipExercisesPt3.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0014_AnnouncingValidated.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0015_OvertureNowWithZip.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0016_AnnouncingSwiftHtml.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0017_TypeSafeVapor.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0018_TypeSafeKitura.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0019_RandomZalgoGenerator.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0020_PodcastRSS.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0021_HowToControlTheWorld.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0022_SomeNewsAboutContramap.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0023_OpenSourcingSnapshotTesting.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0024_holidayDiscount.swift
/app/Sources/PointFree/Blog/BlogPosts/BlogPost0025_yearInReview.swift
/app/Sources/PointFree/Bootstrap.swift
/app/Sources/PointFree/Components.swift
/app/Sources/PointFree/Database.swift
/app/Sources/PointFree/DatabaseDecoder.swift
/app/Sources/PointFree/Emails/AdminEmailReport.swift
/app/Sources/PointFree/Emails/ChangeEmailConfirmation.swift
/app/Sources/PointFree/Emails/EmailLayouts.swift
/app/Sources/PointFree/Emails/FreeEpisodeEmail.swift
/app/Sources/PointFree/Emails/InviteEmail.swift
/app/Sources/PointFree/Emails/Mailgun.swift
/app/Sources/PointFree/Emails/NewBlogPostEmail.swift
/app/Sources/PointFree/Emails/NewEpisodeEmail.swift
/app/Sources/PointFree/Emails/RegistrationEmail.swift
/app/Sources/PointFree/Emails/SendEmail.swift
/app/Sources/PointFree/Emails/SharedEmailComponents.swift
/app/Sources/PointFree/Emails/TeamEmails.swift
/app/Sources/PointFree/EnvVars.swift
/app/Sources/PointFree/Environment.swift
/app/Sources/PointFree/Episode/Episode.swift
/app/Sources/PointFree/Episode/Show.swift
/app/Sources/PointFree/FeatureFlags.swift
/app/Sources/PointFree/Footer.swift
/app/Sources/PointFree/GitHub.swift
/app/Sources/PointFree/GoogleAnalytics.swift
/app/Sources/PointFree/Home.swift
/app/Sources/PointFree/HtmlCssInliner.swift
/app/Sources/PointFree/Logger.swift
/app/Sources/PointFree/MetaLayout.swift
/app/Sources/PointFree/MinimalNavView.swift
/app/Sources/PointFree/MountainNavView.swift
/app/Sources/PointFree/Newsletters.swift
/app/Sources/PointFree/PageLayout.swift
/app/Sources/PointFree/Pricing.swift
/app/Sources/PointFree/Privacy.swift
/app/Sources/PointFree/PublicEpisodes/0000-Introduction.swift
/app/Sources/PointFree/PublicEpisodes/0001-Functions.swift
/app/Sources/PointFree/PublicEpisodes/0002-SideEffects.swift
/app/Sources/PointFree/PublicEpisodes/0003-StylingWithFunctions.swift
/app/Sources/PointFree/PublicEpisodes/0004-AlgebraicDataTypes.swift
/app/Sources/PointFree/PublicEpisodes/0010-ATaleOfTwoFlatMaps.swift
/app/Sources/PointFree/PublicEpisodes/0022-ATourOfPointFreeCo.swift
/app/Sources/PointFree/PublicEpisodes/0025-Zip-pt3.swift
/app/Sources/PointFree/PublicEpisodes/0029-DSL-vs-TemplatingLanguages.swift
/app/Sources/PointFree/PublicEpisodes/0041-TourOfSnapshotTesting.swift
/app/Sources/PointFree/PublicEpisodes/AllPublicEpisodes.swift
/app/Sources/PointFree/PublicEpisodes/References.swift
/app/Sources/PointFree/RouteNotFoundMiddleware.swift
/app/Sources/PointFree/Routers/AccountRoutes.swift
/app/Sources/PointFree/Routers/GitHubRoutes.swift
/app/Sources/PointFree/Routers/PointFreeRoutes.swift
/app/Sources/PointFree/Routers/TwitterRoutes.swift
/app/Sources/PointFree/Rss.swift
/app/Sources/PointFree/SVG.swift
/app/Sources/PointFree/Session.swift
/app/Sources/PointFree/SiteMiddleware.swift
/app/Sources/PointFree/StaticFileServerMiddleware.swift
/app/Sources/PointFree/Stripe.swift
/app/Sources/PointFree/StripeHtml.swift
/app/Sources/PointFree/StripeWebhooks.swift
/app/Sources/PointFree/Subscribe.swift
/app/Sources/PointFree/TODO.swift
/app/Sources/PointFree/Tag.swift
/app/Sources/PointFree/Tasks.swift
/app/Sources/PointFree/Transcripts/0005-HigherOrderFunctions.swift
/app/Sources/PointFree/Transcripts/0006-Setters.swift
/app/Sources/PointFree/Transcripts/0007-SettersAndKeyPaths.swift
/app/Sources/PointFree/Transcripts/0008-GettersAndKeyPaths.swift
/app/Sources/PointFree/Transcripts/0009-AlgebraicDataTypesPt2.swift
/app/Sources/PointFree/Transcripts/0011-CompositionWithoutOperators.swift
/app/Sources/PointFree/Transcripts/0012-Tagged.swift
/app/Sources/PointFree/Transcripts/0013-Map.swift
/app/Sources/PointFree/Transcripts/0014-Contravariance.swift
/app/Sources/PointFree/Transcripts/0015-SettersPt3.swift
/app/Sources/PointFree/Transcripts/0016-DependencyInjection.swift
/app/Sources/PointFree/Transcripts/0017-StylingWithFunctionsPt2.swift
/app/Sources/PointFree/Transcripts/0018-EnvironmentPt2.swift
/app/Sources/PointFree/Transcripts/0019-ADT-Pt3.swift
/app/Sources/PointFree/Transcripts/0020-NonEmpty.swift
/app/Sources/PointFree/Transcripts/0021-PlaygroundDrivenDevelopment.swift
/app/Sources/PointFree/Transcripts/0023-Zip-pt1.swift
/app/Sources/PointFree/Transcripts/0024-Zip-pt2.swift
/app/Sources/PointFree/Transcripts/0026-DSL-pt1.swift
/app/Sources/PointFree/Transcripts/0027-DSL-pt2.swift
/app/Sources/PointFree/Transcripts/0028-HTML-DSL.swift
/app/Sources/PointFree/Transcripts/0030-Randomness.swift
/app/Sources/PointFree/Transcripts/0031-ArbitraryPt1.swift
/app/Sources/PointFree/Transcripts/0032-ArbitraryPt2.swift
/app/Sources/PointFree/Transcripts/0033-ProtocolWitnessesPt1.swift
/app/Sources/PointFree/Transcripts/0034-ProtocolWitnessesPt2.swift
/app/Sources/PointFree/Transcripts/0035-AdvancedProtocolWitnessesPt1.swift
/app/Sources/PointFree/Transcripts/0036-AdvancedProtocolWitnessesPt2.swift
/app/Sources/PointFree/Transcripts/0037-ProtocolOrientedLibraryDesignPt1.swift
/app/Sources/PointFree/Transcripts/0038-ProtocolOrientedLibraryDesignPt2.swift
/app/Sources/PointFree/Transcripts/0039-WitnessOrientedLibraryDesign.swift
/app/Sources/PointFree/Transcripts/0040-AsyncSnapshot.swift
/app/Sources/PointFree/Transcripts/AllPrivateEpisodes.swift
/app/Sources/PointFree/Util.swift
/app/Sources/PointFree/VideoJs.swift
/app/Sources/PointFree/__Generated__/DerivedPartialIsos.swift
---
2.  While running pass #&#8203;237889 SILFunctionTransform "Mem2Reg" on SILFunction "@$S9PointFree16trackFeedRequest33_CC7B854978C56A73B08BD1588FB1AAE6LLy7Prelude2IOVy12HttpPipeline4ConnVyxq__AA8DatabaseV4UserVtGGANr0_lFAG11HeadersOpenO_AA6StripeV12SubscriptionVSgTg5".
 for 'trackFeedRequest(_:)' at /app/Sources/PointFree/Account/PrivateRss.swift:60:9
<unknown>:0: error: unable to execute command: Aborted
<unknown>:0: error: compile command failed due to signal 6 (use -v to see invocation)
error: terminated(1): /usr/bin/swift-build-tool -f /app/.build/release.yaml Server.exe output:
    

ERROR: Service 'web' failed to build: The command '/bin/sh -c swift build --product Server --configuration release' returned a non-zero code: 1

You can reproduce with the following steps:

git clone https://github.com/pointfreeco/pointfreeco.git
cd pointfreeco
git checkout 7647c0c
make bootstrap
make linux-start

Docker must be installed to run this process.

@stephencelis
Copy link
Contributor Author

We were able to workaround the problem with this fix:

https://github.com/pointfreeco/pointfreeco/pull/375/files

Looks like it's the generic "A" that causes the issue.

@belkadan
Copy link
Contributor

@eeckstein, is this something that's been fixed in the 5.0 branch already?

@eeckstein
Copy link
Member

Yeah, this looks like a dup of rdar://problem/44143761, which I fixed in b702f99

@swift-ci swift-ci transferred this issue from apple/swift-issues Apr 25, 2022
@AnthonyLatsis AnthonyLatsis added the crash Bug: A crash, i.e., an abnormal termination of software label Dec 12, 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 crash Bug: A crash, i.e., an abnormal termination of software optimized only Flag: An issue whose reproduction requires optimized compilation
Projects
None yet
Development

No branches or pull requests

4 participants