Skip to content

[metadata prespecialization] Not always on for stdlib. #30880

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

Conversation

nate-chandler
Copy link
Contributor

Prespecializing metadata in the stdlib looks to be exposing a bug in its implementation. Disabling for now.

Prespecializing metadata in the stdlib looks to be exposing a bug in its
implementation.  Disabling for now.
@nate-chandler
Copy link
Contributor Author

@swift-ci please smoke test

@compnerd
Copy link
Member

compnerd commented Apr 8, 2020

@nate-chandler do you happen to have a reference to a SR or a test case or any explanation of what has a bug (its unclear if the comment means the standard library or the metadata prespecialization - I suspect you meant the latter) and what the consequence of the bug is?

@mikeash
Copy link
Contributor

mikeash commented Apr 8, 2020

@compnerd Still figuring that out, unfortunately. We have a crasher that goes away when this is disabled but we have not yet figured out exactly why.

@compnerd
Copy link
Member

compnerd commented Apr 8, 2020

@mikeash ah, would be nice to mention the crasher.

I didn't mean to imply that the issue is explain, more the result of the failure - e.g. this type of pattern will cause a crash or your cat will will spontaneously combust if you use this compiler - so that others can possibly correlate the change.

@mikeash
Copy link
Contributor

mikeash commented Apr 8, 2020

@compnerd I understand! I'm not even sure how to describe it generally, other than "very weird crash that looks like a memory smasher or thread safety error."

@nate-chandler nate-chandler merged commit bc2f571 into swiftlang:master Apr 8, 2020
@nate-chandler nate-chandler deleted the generic-metadata-prespecialization-components/disable-for-stdlib branch April 8, 2020 17:24
@tbkka
Copy link
Contributor

tbkka commented Apr 22, 2020

The common element I've seen for this is resumeMetadataCompletion calling swift_runtime_unreachable(). Specifically, the following three frames in a stack trace:

swift_runtime_unreachable()
swift::resumeMetadataCompletion(swift::MetadataCompletionQueueEntry*)::ResumeCallbacks::forOtherMetadata(swift::TargetMetadata<swift::InProcess> const*) &&
swift::resumeMetadataCompletion(swift::MetadataCompletionQueueEntry*)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants