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] Write output-file-map.json atomically #7415

Conversation

ahoppen
Copy link
Contributor

@ahoppen ahoppen commented Mar 20, 2024

  • Explanation: When using sourcekit-lsp with VS Code it often happens that sourcekitd is trying to read the output-file-map.json while SwiftPM is writing it non-atomically. This results in a buffer in sourcekitd that is not null-terminated. To fix this issue, generate the output file map atomically.
  • Scope: Generation of output-file-map.json
  • Risk: This could fail if the FileSystem subclass in SwiftPM does not support atomic write operations. But I think we only really care about the local file system here, which does support atomic operations
  • Testing: Tests continue passing. I will verify that this fixes the sourcekitd crashes when a new toolchain is released with the fix
  • Issue: rdar://124727242
  • Reviewer: @MaxDesiatov on Write output-file-map.json atomically #7406

There are two subtle changes in behavior here:
- This call will fail if the file system doesn’t support atomic operations. I’m not sure if we need to support file systems that don’t allow atomic operations here.

rdar://124727242
@ahoppen ahoppen added the swift 5.10 This PR targets the 5.10 branch label Mar 20, 2024
@ahoppen ahoppen added swift 6.0 Related to Swift 6.0 release branch and removed swift 5.10 This PR targets the 5.10 branch labels Mar 20, 2024
@ahoppen
Copy link
Contributor Author

ahoppen commented Mar 20, 2024

@swift-ci Please test

@ahoppen
Copy link
Contributor Author

ahoppen commented Mar 25, 2024

@swift-ci Please test Linux

@ahoppen
Copy link
Contributor Author

ahoppen commented Mar 25, 2024

@swift-ci Please test Windows

@ahoppen ahoppen merged commit d478725 into apple:release/6.0 Mar 25, 2024
5 checks passed
@ahoppen ahoppen deleted the ahoppen/6.0/write-output-file-map-atomically branch March 25, 2024 22:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
swift 6.0 Related to Swift 6.0 release branch
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants