Commit 11911fc
authored
fix: retry rename on Windows EPERM/EACCES/EBUSY during SSH config save (#841)
On Windows, antivirus, Search Indexer, cloud sync, or concurrent
processes can briefly lock files, causing fs.rename() to fail with
`EPERM`, `EACCES`, or `EBUSY` when atomically replacing `~/.ssh/config`
or credential files.
Add `renameWithRetry()` utility matching the strategy used by VS Code
(`pfs.ts`) and `graceful-fs`: 60s wall-clock timeout with linear backoff
(10ms increments, capped at 100ms). Only applies on Windows; other
platforms call rename directly.
Closes #8401 parent f0df04e commit 11911fc
File tree
7 files changed
+278
-63
lines changed- src
- core
- remote
- test/unit
- remote
7 files changed
+278
-63
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
5 | 10 | | |
6 | 11 | | |
7 | 12 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| |||
256 | 256 | | |
257 | 257 | | |
258 | 258 | | |
259 | | - | |
| 259 | + | |
260 | 260 | | |
261 | 261 | | |
262 | 262 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
51 | 51 | | |
52 | 52 | | |
53 | 53 | | |
54 | | - | |
| 54 | + | |
55 | 55 | | |
56 | 56 | | |
57 | 57 | | |
| |||
766 | 766 | | |
767 | 767 | | |
768 | 768 | | |
769 | | - | |
| 769 | + | |
770 | 770 | | |
771 | 771 | | |
772 | 772 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
2 | 9 | | |
3 | 10 | | |
4 | | - | |
| 11 | + | |
5 | 12 | | |
6 | | - | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
7 | 16 | | |
8 | 17 | | |
9 | 18 | | |
| |||
25 | 34 | | |
26 | 35 | | |
27 | 36 | | |
| 37 | + | |
28 | 38 | | |
29 | 39 | | |
30 | 40 | | |
| |||
33 | 43 | | |
34 | 44 | | |
35 | 45 | | |
| 46 | + | |
36 | 47 | | |
37 | 48 | | |
38 | 49 | | |
| |||
163 | 174 | | |
164 | 175 | | |
165 | 176 | | |
166 | | - | |
| 177 | + | |
167 | 178 | | |
168 | 179 | | |
| 180 | + | |
169 | 181 | | |
170 | 182 | | |
171 | 183 | | |
| |||
179 | 191 | | |
180 | 192 | | |
181 | 193 | | |
182 | | - | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
| 198 | + | |
183 | 199 | | |
| 200 | + | |
184 | 201 | | |
185 | 202 | | |
186 | 203 | | |
187 | 204 | | |
188 | 205 | | |
189 | 206 | | |
| 207 | + | |
190 | 208 | | |
191 | | - | |
| 209 | + | |
| 210 | + | |
| 211 | + | |
| 212 | + | |
192 | 213 | | |
193 | 214 | | |
194 | 215 | | |
| |||
204 | 225 | | |
205 | 226 | | |
206 | 227 | | |
| 228 | + | |
207 | 229 | | |
208 | 230 | | |
| 231 | + | |
209 | 232 | | |
210 | 233 | | |
211 | 234 | | |
| |||
222 | 245 | | |
223 | 246 | | |
224 | 247 | | |
225 | | - | |
| 248 | + | |
226 | 249 | | |
227 | 250 | | |
228 | 251 | | |
229 | 252 | | |
230 | 253 | | |
231 | | - | |
| 254 | + | |
232 | 255 | | |
233 | 256 | | |
234 | 257 | | |
| |||
241 | 264 | | |
242 | 265 | | |
243 | 266 | | |
244 | | - | |
| 267 | + | |
245 | 268 | | |
246 | 269 | | |
247 | 270 | | |
248 | | - | |
| 271 | + | |
249 | 272 | | |
250 | 273 | | |
251 | 274 | | |
252 | | - | |
| 275 | + | |
253 | 276 | | |
254 | 277 | | |
255 | 278 | | |
| |||
357 | 380 | | |
358 | 381 | | |
359 | 382 | | |
360 | | - | |
| 383 | + | |
| 384 | + | |
| 385 | + | |
| 386 | + | |
| 387 | + | |
| 388 | + | |
361 | 389 | | |
| 390 | + | |
| 391 | + | |
| 392 | + | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
362 | 397 | | |
363 | 398 | | |
364 | 399 | | |
| |||
370 | 405 | | |
371 | 406 | | |
372 | 407 | | |
373 | | - | |
| 408 | + | |
374 | 409 | | |
375 | 410 | | |
376 | 411 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
150 | 150 | | |
151 | 151 | | |
152 | 152 | | |
| 153 | + | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
| 158 | + | |
| 159 | + | |
| 160 | + | |
| 161 | + | |
| 162 | + | |
| 163 | + | |
| 164 | + | |
| 165 | + | |
| 166 | + | |
| 167 | + | |
| 168 | + | |
| 169 | + | |
| 170 | + | |
| 171 | + | |
| 172 | + | |
| 173 | + | |
| 174 | + | |
| 175 | + | |
| 176 | + | |
| 177 | + | |
| 178 | + | |
| 179 | + | |
| 180 | + | |
| 181 | + | |
| 182 | + | |
| 183 | + | |
| 184 | + | |
| 185 | + | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
| 190 | + | |
| 191 | + | |
| 192 | + | |
| 193 | + | |
| 194 | + | |
| 195 | + | |
| 196 | + | |
| 197 | + | |
153 | 198 | | |
154 | 199 | | |
155 | 200 | | |
| |||
0 commit comments