Open SheepOfNoise opened 5 months ago
It is likely that the file watcher we leverage (https://github.com/parcel-bundler/watcher) does not support remote file systems, but I have not drilled in further. For example, they do support watchman
as backend, which we currently do not expose and its possible this would enable such scenarios.
File events were never really supported for network drives, across all OS. In those cases we recommend using our remote extensions (such as SSH) where file events will work.
Treating as feature request.
Dear Benjamin,
Thanks for your prompt response.
I thought so (no support for remote file systems) too, but how come it works well when I connect using Remote-SSH to another machine that has the same mount of the same remote file system? What does the remote-VS-Code-server do better?
Also - this used to work for my team up to a month or so ago. We didn't recall a change made to the remote file system or the machines we work on.
Thanks, Yoav
From: Benjamin Pasero @.> Sent: Wednesday, May 15, 2024 1:32 PM To: microsoft/vscode @.> Cc: SheepOfNoise @.>; Author @.> Subject: Re: [microsoft/vscode] Support mounted remote file systems (Issue #212793)
It is likely that the file watcher we leverage (https://github.com/parcel-bundler/watcher) does not support remote file systems, but I have not drilled in further. Treating as feature request.
— Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/212793#issuecomment-2112150079, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AALYEHXMWAWBKUET4DOJX6LZCM2T3AVCNFSM6AAAAABHXYISEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJSGE2TAMBXHE. You are receiving this because you authored the thread.Message ID: @.***>
Yeah, when connected via remote extension the file watcher runs inside the remote and sends events back to the client. In that case, file events will work. But in the local case, the file watcher relies on the OS reporting events from mounted network drives which is unsupported as far as I know even by the OS.
It is much more preferred to use remote extension, everything will work a lot better, including extensions.
I clarify the setting:
Yoav.
From: Benjamin Pasero @.> Sent: Wednesday, May 15, 2024 3:01 PM To: microsoft/vscode @.> Cc: SheepOfNoise @.>; Author @.> Subject: Re: [microsoft/vscode] Support mounted remote file systems (Issue #212793)
Yeah, when connected via remote extension the file watcher runs inside the remote and sends events back to the client. In that case, file events will work. But in the local case, the file watcher relies on the OS reporting events from mounted network drives which is unsupported as far as I know even by the OS.
— Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/212793#issuecomment-2112342179, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AALYEHTBGJ53O2SESLTFIJDZCNFBPAVCNFSM6AAAAABHXYISEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJSGM2DEMJXHE. You are receiving this because you authored the thread.Message ID: @.***>
Depends on what OS is involved in this setup? Is it all Linux everywhere?
Depends on what OS is involved in this setup? Is it all Linux everywhere?
Yes, both machines run Rocky Linux 8.7.
I cannot really explain that, maybe additional logs would give more hints. If you run code --verbose
more logs are created that give info about file watching internals.
Local
In this case, no remote extension is involved. You should find a "Window" output channel in the output panel that you can search for entries that contain File Watcher
and attach here.
Remote In this case, you go via remote extension and you should find a "Server" output channel.
Local - Window Output:
2024-05-16 15:51:35.852 [info] Started local extension host with pid 1760347. 2024-05-16 15:51:35.995 [warning] [remote-ssh]: Couldn't find message for key setting.usseExecServer.description. 2024-05-16 15:51:36.093 [warning] [twxs.cmake]: Cannot register 'cmake.cmakePath'. This property is already registered. 2024-05-16 15:51:38.650 [info] [perf] Render performance baseline is 38ms 2024-05-16 15:52:25.842 [info] Started local extension host with pid 1761567. 2024-05-16 15:52:26.248 [warning] [remote-ssh]: Couldn't find message for key setting.usseExecServer.description. 2024-05-16 15:52:26.385 [warning] [twxs.cmake]: Cannot register 'cmake.cmakePath'. This property is already registered. 2024-05-16 15:52:27.351 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 15:52:27.351 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-16 15:52:27.786 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 15:52:27.787 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-16 15:52:28.152 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 15:52:28.153 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-16 15:52:28.438 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 15:52:28.439 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-16 15:52:28.716 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 15:52:28.716 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-16 15:52:28.977 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 15:52:28.978 [error] [File Watcher (universal)] gave up attempting to restart watcher after error: Invalid argument 2024-05-16 15:52:29.735 [info] [perf] Render performance baseline is 42ms 2024-05-16 15:52:30.331 [error] Cannot read properties of undefined (reading 'accessToken'): TypeError: Cannot read properties of undefined (reading 'accessToken') at p.z (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1686:21851) at p.C (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1686:22484) at d.value (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1686:21653) 2024-05-16 15:52:32.259 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/ns-3-simulations/support/venv/lib64/python3.9) 2024-05-16 15:52:32.261 [error] [File Watcher (universal)] gave up attempting to restart watcher after error: Invalid argument 2024-05-16 15:52:32.263 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/ns-3-simulations/support/venv/lib/python3.9/site-packages) 2024-05-16 15:52:32.263 [error] [File Watcher (universal)] gave up attempting to restart watcher after error: Invalid argument
Remote: Window Output:
2024-05-16 15:54:09.923 [info] Invoking resolveAuthority(ssh-remote)... 2024-05-16 15:54:09.923 [info] [LocalProcess0][resolveAuthority(ssh-remote,1)][0ms] obtaining proxy... 2024-05-16 15:54:09.943 [info] Started local extension host with pid 1764802. 2024-05-16 15:54:10.316 [info] [LocalProcess0][resolveAuthority(ssh-remote,1)][393ms] invoking... 2024-05-16 15:54:11.006 [info] [LocalProcess0][resolveAuthority(ssh-remote,1)][1084ms] returned Managed(1) 2024-05-16 15:54:11.006 [info] resolveAuthority(ssh-remote) returned 'Managed(1)' after 1084 ms 2024-05-16 15:54:11.076 [info] Creating a socket (renderer-Management-fc039c99-5233-4fd6-a383-d8f03776a838)... 2024-05-16 15:54:11.077 [info] Creating a socket (renderer-ExtensionHost-d5beaf5d-e89c-48f4-93c4-cfe4b383a0cf)... 2024-05-16 15:54:11.155 [info] Creating a socket (renderer-Management-fc039c99-5233-4fd6-a383-d8f03776a838) was successful after 79 ms. 2024-05-16 15:54:11.157 [info] Creating a socket (renderer-ExtensionHost-d5beaf5d-e89c-48f4-93c4-cfe4b383a0cf) was successful after 79 ms. 2024-05-16 15:54:11.461 [warning] [twxs.cmake]: Cannot register 'cmake.cmakePath'. This property is already registered. 2024-05-16 15:54:13.931 [warning] [remote-ssh]: Couldn't find message for key setting.usseExecServer.description. 2024-05-16 15:54:14.044 [error] Cannot read properties of undefined (reading 'accessToken'): TypeError: Cannot read properties of undefined (reading 'accessToken') at p.z (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1686:21851) at p.C (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1686:22484) at d.value (vscode-file://vscode-app/usr/share/code/resources/app/out/vs/workbench/workbench.desktop.main.js:1686:21653) 2024-05-16 15:54:14.086 [info] [perf] Render performance baseline is 42ms
Remoe: Server Output:
2024-05-16 15:54:11.168 [info] [
From: Benjamin Pasero @.> Sent: Wednesday, May 15, 2024 3:52 PM To: microsoft/vscode @.> Cc: SheepOfNoise @.>; Author @.> Subject: Re: [microsoft/vscode] Support mounted remote file systems (Issue #212793)
I cannot really explain that, maybe additional logs would give more hints. If you run code --verbose more logs are created that give info about file watching internals.
Local In this case, no remote extension is involved. You should find a "Window" output channel in the output panel that you can search for entries that contain File Watcher and attach here.
Remote In this case, you go via remote extension and you should find a "Server" output channel.
— Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/212793#issuecomment-2112439019, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AALYEHQRWJPQZ34NDAMGEZDZCNK7ZAVCNFSM6AAAAABHXYISEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJSGQZTSMBRHE. You are receiving this because you authored the thread.Message ID: @.***>
Unfortunately this misses the verbose output from the server.
Curious how is /mnt/central/users/ylevy/workspace/ng-rdma
mounted to your machine? Maybe I could try to reproduce this on my VM.
I provide links (since I can't attach them to the mail) the local (window.txt) with error:
https://drive.google.com/file/d/1R2NipeaaHa_bUE4M1IsOyTDKRvMZyDzN/view?usp=drive_link
2024-05-16 16:14:40.265 [trace] MainThreadFileSystemEventService#$watch(): request to start watching uncorrelated (extension: ms-python.python, path: file:///mnt/central/users/ylevy/workspace/ng-rdma, recursive: false, session: 0.2711843595989176) 2024-05-16 16:14:40.319 [trace] MainThreadFileSystemEventService#$watch(): request to start watching uncorrelated (extension: ms-python.python, path: file:///mnt/central/users/ylevy/workspace/ng-rdma, recursive: true, session: 0.6639153164793736) 2024-05-16 16:14:40.320 [trace] MainThreadFileSystemEventService#$watch(): request to start watching uncorrelated (extension: ms-python.python, path: file:///mnt/central/users/ylevy/workspace/ng-rdma, recursive: true, session: 0.5216986430249373) 2024-05-16 16:14:40.390 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 16:14:40.390 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-16 16:14:42.111 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-16 16:14:42.111 [error] [File Watcher (universal)] gave up attempting to restart watcher after error: Invalid argument
Note: the Window output pane probably doesn't contain the entire log as there were too many lines being output. Is there another way to open it?
And the remote (server.txt) where it works fine:
https://drive.google.com/file/d/1iQGoSMFfYu_FxfqP-RBjgVN0QnzzXg3i/view?usp=drive_link
2024-05-16 16:36:13.541 [trace] [File Watcher (parcel)] Request to start watching: /mnt/central/users/ylevy/workspace/ng-rdma (excludes: /.git/objects/,/.git/subtree-cache/,*/node_modules//,/.hg/store/,/mnt/central/users/ylevy/.vscode-server/extensions/, includes:
From: Benjamin Pasero @.> Sent: Thursday, May 16, 2024 4:04 PM To: microsoft/vscode @.> Cc: SheepOfNoise @.>; Author @.> Subject: Re: [microsoft/vscode] Support mounted remote file systems (Issue #212793)
Unfortunately this misses the verbose output from the server.
Curious how is /mnt/central/users/ylevy/workspace/ng-rdma mounted to your machine? Maybe I could try to reproduce this on my VM.
— Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/212793#issuecomment-2115195414, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AALYEHTDGVNTCFY6IZPJ5JLZCSVFVAVCNFSM6AAAAABHXYISEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJVGE4TKNBRGQ. You are receiving this because you authored the thread.Message ID: @.***>
Yeah really strange, I cannot explain. The only difference in the local vs remote case is how the watcher is natively compiled (for Electron, for node.js), but I would be surprised if that really makes any difference.
Again, how is this setup, could I try to emulate on my machine?
I wrote the setup in the initial description.: Version: 1.90.0-insider Commit: bbc4ba1https://github.com/microsoft/vscode/commit/bbc4ba1eff648ee542972589216f211b7a6a08f2 Date: 2024-05-14T05:47:50.971Z Electron: 29.3.1 ElectronBuildId: 9464424 Chromium: 122.0.6261.156 Node.js: 20.9.0 V8: 12.2.281.27-electron.0 OS: Linux x64 4.18.0-425.3.1.el8.x86_64
Sent from Outlook for Androidhttps://aka.ms/AAb9ysg
From: Benjamin Pasero @.> Sent: Thursday, May 16, 2024 8:51:10 PM To: microsoft/vscode @.> Cc: SheepOfNoise @.>; Author @.> Subject: Re: [microsoft/vscode] Support mounted remote file systems (Issue #212793)
Yeah really strange, I cannot explain. The only difference in the local vs remote case is how the watcher is natively compiled (for Electron, for node.js), but I would be surprised if that really makes any difference.
Again, how is this setup, could I try to emulate on my machine?
— Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/212793#issuecomment-2115859658, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AALYEHTFZRDOPP7Y56ZYMXDZCTWY5AVCNFSM6AAAAABHXYISEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJVHA2TSNRVHA. You are receiving this because you authored the thread.Message ID: @.***>
I am asking specifically about details about the mounted file system: what commands did you use to add the mount, what kind of remote file system is that?
I'm not much of an IT guy, but this is what I get from the mount list:
cat /proc/mounts
192.168.20.9:/mnt/local /mnt/central nfs4 rw,relatime,vers=4.2,rsize=1048576,wsize=1048576,namlen=255,hard,proto=tcp,timeo=600,retrans=2,sec=sys,clientaddr=192.168.20.52,local_lock=none,addr=192.168.20.9 0 0
From: Benjamin Pasero @.> Sent: Thursday, May 16, 2024 9:43 PM To: microsoft/vscode @.> Cc: SheepOfNoise @.>; Author @.> Subject: Re: [microsoft/vscode] Support mounted remote file systems (Issue #212793)
I am asking specifically about details about the mounted file system: what commands did you use to add the mount, what kind of remote file system is that?
— Reply to this email directly, view it on GitHubhttps://github.com/microsoft/vscode/issues/212793#issuecomment-2115957107, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AALYEHT2KO5GYEXX6TVKRPTZCT45VAVCNFSM6AAAAABHXYISEWVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCMJVHE2TOMJQG4. You are receiving this because you authored the thread.Message ID: @.***>
Does this issue occur when all extensions are disabled?: Yes/No Yes
Version: 1.90.0-insider Commit: bbc4ba1eff648ee542972589216f211b7a6a08f2 Date: 2024-05-14T05:47:50.971Z Electron: 29.3.1 ElectronBuildId: 9464424 Chromium: 122.0.6261.156 Node.js: 20.9.0 V8: 12.2.281.27-electron.0 OS: Linux x64 4.18.0-425.3.1.el8.x86_64
Steps to Reproduce:
Additional information:
I see these errors in the Window output log: 024-05-15 12:06:26.286 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma) 2024-05-15 12:06:26.288 [error] [File Watcher (universal)] restarting watcher after error: Invalid argument 2024-05-15 12:06:26.451 [error] [File Watcher (parcel)] Unexpected error: Invalid argument (EUNKNOWN) (path: /mnt/central/users/ylevy/workspace/ng-rdma)
This problem does NOT happen when I open a folder on the local filesystem. This problem does NOT happen when I connect to the machine from a different machine in the same compute cluster (i.e. using the remote VS Code server causes file watch events to be reported as expected).
I tried also with all extensions disabled - same behavior.