Commit 6110b3a
committed
Fix race condition in doctor command provider check
The provider match check was running in parallel with provider
detection, causing intermittent failures where Docker was reported
as not installed even though it was.
Root cause:
- checkPrerequisites() and checkVvvInstallation() ran in parallel
- checkPrerequisites() populates ctx.availableProviders
- checkVvvInstallation() reads ctx.availableProviders
- Race condition: sometimes checkVvvInstallation() read before
checkPrerequisites() wrote, seeing empty array
Fix:
- Run checkPrerequisites() first to populate ctx.availableProviders
- Then run checkVvvInstallation() and checkConfiguration() in parallel
- Both can now safely read ctx.availableProviders
- Maintains parallelization where possible
Impact:
- Consistent provider detection across all runs
- No more false "docker not installed" errors
- Still maintains good performance with partial parallelization1 parent 7167c51 commit 6110b3a
1 file changed
+9
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
720 | 720 | | |
721 | 721 | | |
722 | 722 | | |
723 | | - | |
| 723 | + | |
724 | 724 | | |
725 | 725 | | |
726 | | - | |
| 726 | + | |
727 | 727 | | |
728 | | - | |
729 | | - | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
730 | 734 | | |
731 | 735 | | |
732 | 736 | | |
733 | 737 | | |
734 | | - | |
| 738 | + | |
735 | 739 | | |
736 | 740 | | |
737 | 741 | | |
| |||
0 commit comments