Tags: facebook/pyrefly
Tags
cut 1.1.1 Summary: Bump pyrefly to 1.1.1 for the patch release that ships the isinstance-narrowing fix (D109059070, GitHub #3867). Reviewed By: rchen152 Differential Revision: D109078650 fbshipit-source-id: 76b04688392226fa977ee1b6578397f8c9df103a
upgrade Summary: patch version with 3 changes: - vscode-environments extension - vsix memory fix D104097742 - invalid type var errors D104265195 Reviewed By: rchen152 Differential Revision: D104303735 fbshipit-source-id: 7f479cde2f5390d8ce6852bb8b35ff6375ebbe01
Fix provide_type race condition with config recheck cancellation (#3316) Summary: Pull Request resolved: #3316 When `provide_type` loads an unopened file via `transaction.run()`, a concurrent config recheck can cancel the transaction's TaskHeap, silently aborting the file load and returning `null`. This happens because the recheck thread drains all cancellation handles to unblock its commit. This is more likely to occur on slower machines, so internal CI is mostly passing, while GitHub CI is mostly red. The race condition has existed since D89681826 (2025-12-30), which added `transaction.run()` in `provide_type` to support unopened files. It was never triggered in tests until D103653837 added `displayTypeErrors: "force-on"` to the test initialization, which differs from the server default and triggers `invalidate_config_and_validate_in_memory` — the recheck that cancels in-flight transactions. Fix by detaching the provide_type request's cancellation handle from the server map and resetting the transaction's TaskHeap handle before the handler runs. This lets the short-lived file load complete naturally instead of being cancelled. The recheck thread's commit waits slightly longer but the operation is fast (single file). Adds `TaskHeap::reset_cancellation()` and `Transaction::reset_cancellation()` to support replacing a cancelled handle with a fresh one. Reviewed By: kinto0 Differential Revision: D103988647 fbshipit-source-id: 5cd341d5be6ce9d753952da0b64cd2f766c812f8
PreviousNext