Skip to content

feat: implement timeout handling for environment and package manager registration#1295

Merged
eleanorjboyd merged 2 commits intomicrosoft:mainfrom
eleanorjboyd:urgent-rhinoceros
Feb 27, 2026
Merged

feat: implement timeout handling for environment and package manager registration#1295
eleanorjboyd merged 2 commits intomicrosoft:mainfrom
eleanorjboyd:urgent-rhinoceros

Conversation

@eleanorjboyd
Copy link
Member

waitForEnvManager created a deferred that had no timeout, no cancellation, and no fallback- this add the timeout. This meant that if any project's configured default manager never registered (e.g., settings point to an uninstalled extension or a manager whose binary isn't found), the deferred promise would hang forever. ie one bad project poisoned global calls

now:

  • A single misconfigured project can no longer hang the entire extension indefinitely
  • Consumers still get results from all managers that registered normally
  • The timeout 30s accommodate slow 3rd-party extension activation
  • The warning log provides diagnostics for investigating missing managers

@eleanorjboyd eleanorjboyd self-assigned this Feb 27, 2026
@eleanorjboyd eleanorjboyd added the bug Issue identified by VS Code Team member as probable bug label Feb 27, 2026
@vs-code-engineering vs-code-engineering bot added this to the February 2026 milestone Feb 27, 2026
@eleanorjboyd eleanorjboyd merged commit bac8824 into microsoft:main Feb 27, 2026
43 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug Issue identified by VS Code Team member as probable bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants