0x5457
176c445817
Avoid symlink conflicts when re-extracting eslint-xx.tar.gz ( #36068 )
...
Closes #34325
**Background**
When upgrading/reinstalling the ESLint language server, extracting the
archive over an existing version directory that contains symlinks can
fail and interrupt the installation.
```
failed to unpack .../vscode-eslint-2.4.4/.../client/src/shared
File exists (os error 17) when symlinking ../../$shared/ to .../client/src/shared
```
**Root cause**
Extracting into a non-empty directory conflicts with leftover
files/symlinks (e.g., `client/src/shared -> ../../$shared`), causing
“File exists (os error 17)”.
When `fs::metadata(&server_path).await.is_err()` is true, the code falls
back to cached_server_binary, but that still targets the same
(potentially corrupted/half-installed) directory and does not run `npm
install` or `npm run compile`, so the system cannot recover and remains
broken.
**Change**
Before downloading and extracting, delete the target version directory
(vscode-eslint-<version>) to ensure an empty extraction destination and
avoid conflicts.
**Alternative approaches**
temp directory + rename: extract into a clean temp directory and rename
into place to avoid half-installed states
[async-tar](https://github.com/dignifiedquire/async-tar ) enhancement:
tolerate already-existing symlinks (or add a “replace-existing” option).
Release Notes:
- Fixed eslint installation not clearing files after previous attempts'
2025-08-19 10:28:24 +03:00
..
2025-08-19 04:09:43 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-19 02:00:41 -04:00
2025-08-19 02:00:41 -04:00
2025-08-15 21:03:50 +00:00
2025-08-19 02:00:41 -04:00
2025-08-19 00:53:05 +00:00
2025-08-05 18:16:47 +00:00
2025-07-11 23:20:35 +00:00
2025-08-13 13:25:52 -06:00
2025-08-18 21:54:35 +00:00
2025-07-10 19:25:10 +00:00
2025-08-18 21:54:35 +00:00
2025-08-10 21:57:55 +00:00
2025-08-18 21:54:35 +00:00
2025-08-15 10:10:52 +00:00
2025-08-12 17:04:30 -07:00
2025-08-13 15:01:00 -07:00
2025-07-03 14:22:28 +00:00
2025-07-22 11:55:24 -04:00
2025-08-05 18:16:47 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-14 17:02:51 +02:00
2025-08-05 00:37:22 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 23:16:28 +00:00
2025-08-07 01:28:41 +00:00
2025-08-07 01:28:41 +00:00
2025-08-11 15:34:34 +02:00
2025-08-19 02:43:27 +00:00
2025-08-18 21:54:35 +00:00
2025-08-06 15:28:18 -04:00
2025-08-05 23:11:43 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-16 06:33:32 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-07-06 14:52:16 +02:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-06-25 09:42:30 +02:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-07 18:27:29 +03:00
2025-08-15 20:27:44 +00:00
2025-08-19 02:00:41 -04:00
2025-08-18 21:54:35 +00:00
2025-07-10 21:08:43 +02:00
2025-08-18 21:54:35 +00:00
2025-07-01 20:02:12 +00:00
2025-08-16 19:00:31 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 19:48:02 +00:00
2025-08-07 22:14:25 +00:00
2025-07-02 21:14:33 -04:00
2025-08-18 21:54:35 +00:00
2025-08-13 11:59:59 -04:00
2025-08-18 21:54:35 +00:00
2025-08-06 10:53:20 +02:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-16 09:19:38 +03:00
2025-06-17 20:26:27 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-07-11 21:01:09 -04:00
2025-08-11 07:20:03 +00:00
2025-08-17 13:25:05 -03:00
2025-06-03 13:18:29 +02:00
2025-07-17 09:22:04 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-06-18 16:01:28 +05:30
2025-07-02 21:14:33 -04:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:44:07 -03:00
2025-08-18 21:54:35 +00:00
2025-08-08 05:04:30 +00:00
2025-08-18 21:54:35 +00:00
2025-08-19 10:28:24 +03:00
2025-05-20 23:06:07 +00:00
2025-08-18 21:54:35 +00:00
2025-07-25 09:36:43 -04:00
2025-08-14 08:16:25 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-05-20 23:06:07 +00:00
2025-07-02 21:14:33 -04:00
2025-08-19 03:23:07 +00:00
2025-08-09 15:25:47 -04:00
2025-08-18 21:54:35 +00:00
2025-07-17 14:25:55 +00:00
2025-07-08 14:34:57 +00:00
2025-08-14 23:28:15 +05:30
2025-08-08 15:34:36 -03:00
2025-08-06 10:44:15 -04:00
2025-08-18 21:54:35 +00:00
2025-08-18 08:54:31 +00:00
2025-07-16 11:44:08 -04:00
2025-06-27 14:31:31 -06:00
2025-08-18 21:54:35 +00:00
2025-07-08 11:23:36 -03:00
2025-07-29 15:31:54 +00:00
2025-08-06 00:02:26 +00:00
2025-07-24 15:24:53 +00:00
2025-08-18 21:08:20 -05:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-13 20:11:32 +00:00
2025-08-18 21:08:20 -05:00
2025-08-18 21:54:35 +00:00
2025-05-26 17:43:57 +00:00
2025-05-23 14:53:53 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-04 18:19:42 -07:00
2025-08-18 21:54:35 +00:00
2025-08-07 23:07:33 +00:00
2025-08-04 16:22:18 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-05-20 23:06:07 +00:00
2025-08-18 21:54:35 +00:00
2025-07-31 17:31:12 +00:00
2025-08-18 21:44:07 -03:00
2025-05-20 23:06:07 +00:00
2025-07-04 00:57:43 +00:00
2025-08-08 15:34:36 -03:00
2025-05-20 23:06:07 +00:00
2025-05-16 17:35:44 +02:00
2025-08-15 20:27:44 +00:00
2025-08-18 21:54:35 +00:00
2025-08-05 00:37:22 +00:00
2025-08-07 18:27:29 +03:00
2025-06-17 14:39:45 +00:00
2025-07-02 21:14:33 -04:00
2025-07-02 21:14:33 -04:00
2025-08-18 21:54:35 +00:00
2025-08-04 11:58:31 -03:00
2025-08-15 15:37:52 -04:00
2025-08-18 22:09:30 +00:00
2025-08-18 21:54:35 +00:00
2025-08-14 13:04:07 -04:00
2025-08-16 14:35:06 +00:00
2025-07-18 16:55:03 +00:00
2025-08-08 15:34:36 -03:00
2025-08-18 21:54:35 +00:00
2025-08-12 13:36:28 +00:00
2025-08-19 03:26:15 +00:00
2025-08-07 11:50:11 -03:00
2025-05-23 19:31:25 +00:00
2025-07-30 23:03:53 +05:30
2025-08-13 18:07:49 -04:00
2025-06-13 06:32:29 +00:00
2025-08-15 13:54:24 +03:00
2025-08-18 21:54:35 +00:00
2025-06-18 21:26:12 +00:00
2025-06-09 13:11:57 +02:00
2025-07-30 00:09:14 +00:00
2025-07-30 00:09:14 +00:00
2025-08-18 22:54:37 +00:00
2025-08-18 21:54:35 +00:00
2025-08-15 13:54:24 +03:00
2025-08-18 21:54:35 +00:00
2025-08-14 13:39:33 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00
2025-08-18 21:54:35 +00:00