-
Notifications
You must be signed in to change notification settings - Fork 27.9k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Support mounted remote file systems #212793
Comments
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 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 GitHub<#212793 (comment)>, or unsubscribe<https://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:
1. I have two machines L and R, identical for our discussion.
2. They both have the same mounts to a remote file system.
3. I launch VS Code on machine L, and try to receive file modification notification made to a mounted file system. This currently fails.
4. I then connect using Remote SSH to machine R, and then open the same folder as before.
5. Now, changes made to the same path on the remote file system (remote from the perspective of both machines!) are generating notification that update the said VS Code panels.
6. To make sure the two machines are the same, I repeated the test with L and R reversed.
7. At no point during this test was a local file system involved.
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 GitHub<#212793 (comment)>, or unsubscribe<https://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? |
Yes, both machines run Rocky Linux 8.7. |
I cannot really explain that, maybe additional logs would give more hints. If you run Local Remote |
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] [<unknown>][fc039c99][ManagementConnection] New connection established.
2024-05-16 15:54:11.171 [info] [<unknown>][d5beaf5d][ExtensionHostConnection] New connection established.
2024-05-16 15:54:11.180 [info] [<unknown>][d5beaf5d][ExtensionHostConnection] <1080924> Launched Extension Host Process.
…________________________________
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 GitHub<#212793 (comment)>, or unsubscribe<https://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 |
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: <all>, filter: <none>, correlationId: <none>)
2024-05-16 16:36:13.563 [trace] Scanned system extensions: 31
2024-05-16 16:36:13.582 [trace] Scanned system extensions: 31
2024-05-16 16:36:13.589 [trace] [File Watcher (node.js)] Started watching: '/mnt/central/users/ylevy/workspace/ng-rdma/.vscode'
2024-05-16 16:36:13.597 [trace] [File Watcher (node.js)] Started watching: '/mnt/central/users/ylevy/workspace/ng-rdma/.vscode/settings.json'
2024-05-16 16:36:13.597 [trace] [File Watcher (node.js)] Started watching: '/mnt/central/users/ylevy/workspace/ng-rdma/.vscode/tasks.json'
2024-05-16 16:36:13.597 [trace] [File Watcher (node.js)] Started watching: '/mnt/central/users/ylevy/workspace/ng-rdma/.vscode/launch.json'
2024-05-16 16:36:13.669 [trace] [File Watcher (node.js)] Started watching: '/mnt/central/users/ylevy/.vscode-server/data/Machine/settings.json'
…________________________________
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 GitHub<#212793 (comment)>, or unsubscribe<https://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: bbc4ba1<bbc4ba1>
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 Android<https://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 GitHub<#212793 (comment)>, or unsubscribe<https://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 GitHub<#212793 (comment)>, or unsubscribe<https://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: bbc4ba1
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.
The text was updated successfully, but these errors were encountered: