microsoft / vscode-dotnettools

This is a feedback repository to capture issues logged for the C# Dev Kit and related extensions from Visual Studio Code
Other
234 stars 13 forks source link

Two users SSH remove Ubuntu, one will fail #1555

Open jllixiao opened 1 month ago

jllixiao commented 1 month ago

Type: Bug

I have 2 users A and B use SSH remote to Ubuntu to do development work. If A's vscode works fine, then B's will not work. By not working, the code intellisense, project loading all failed.

Reinstall DevKit is not helping. But if B removes /tmp/csdevkit folder, then restart vscode, B's vscode will work well. But A will fail.

Steps to Reproduce

A starts vscode, then B starts.

Expected Behavior

Both A and B can work well.

Actual Behavior

B will fail.

C# log

Using dotnet configured on PATH Dotnet path: /usr/lib/dotnet/dotnet Activating C# + C# Dev Kit... waiting for named pipe information from server... [stderr] Unhandled exception: [stderr] System.ArgumentException: filePath at Microsoft.VisualStudio.Telemetry.CommonProperty.CommonPropertyParserFactory.GetCommonPropertyParser(TelemetrySessionInternalBase session) at Microsoft.VisualStudio.Telemetry.TelemetrySessionInternalBase.LoadCommonProperties() at Microsoft.CodeAnalysis.LanguageServer.Logging.VSCodeTelemetryLogger.InitializeSession(String telemetryLevel, String sessionId, Boolean isDefaultSession) at Microsoft.CodeAnalysis.LanguageServer.Logging.RoslynLogger.Initialize(ITelemetryReporter reporter, String telemetryLevel, String sessionId) in /_/src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer/Logging/RoslynLogger.cs:line 41 at Program.<

$>gRunAsync|00(ServerConfiguration serverConfiguration, CancellationToken cancellationToken) in //src/LanguageServer/Microsoft.CodeAnalysis.LanguageServer/Program.cs:line 100 at System.CommandLine.CliCommand.<>cDisplayClass32_0.<b__0>d.MoveNext() --- End of stack trace from previous location --- at System.CommandLine.Invocation.InvocationPipeline.InvokeAsync(ParseResult parseResult, CancellationToken cancellationToken) Language server process exited with 1 [Error - 9:02:44 AM] Microsoft.CodeAnalysis.LanguageServer client: couldn't create connection to server. Error: Language server process exited unexpectedly at ChildProcess. (/home/lynn/.vscode-server/extensions/ms-dotnettools.csharp-2.50.27-linux-x64/dist/extension.js:2:1175957) at ChildProcess.emit (node:events:531:35) at ChildProcess._handle.onexit (node:internal/child_process:294:12)

Environment information

VSCode version: 1.94.2 C# Extension: 2.50.27 Using OmniSharp: false

Dotnet Information .NET SDK: Version: 8.0.110 Commit: 87a66bb3d1 Workload version: 8.0.100-manifests.2d90560f Runtime Environment: OS Name: ubuntu OS Version: 24.04 OS Platform: Linux RID: ubuntu.24.04-x64 Base Path: /usr/lib/dotnet/sdk/8.0.110/ .NET workloads installed: Workload version: 8.0.100-manifests.2d90560f There are no installed workloads to display. Host: Version: 8.0.10 Architecture: x64 Commit: 81cabf2857 .NET SDKs installed: 8.0.110 [/usr/lib/dotnet/sdk] .NET runtimes installed: Microsoft.AspNetCore.App 8.0.10 [/usr/lib/dotnet/shared/Microsoft.AspNetCore.App] Microsoft.NETCore.App 8.0.10 [/usr/lib/dotnet/shared/Microsoft.NETCore.App] Other architectures found: None Environment variables: Not set global.json file: Not found Learn more: https://aka.ms/dotnet/info Download .NET: https://aka.ms/dotnet/download
Visual Studio Code Extensions |Extension|Author|Version|Folder Name| |---|---|---|---| |azure-account|ms-vscode|0.12.0|ms-vscode.azure-account-0.12.0| |azure-dev|ms-azuretools|0.8.3|ms-azuretools.azure-dev-0.8.3| |csdevkit|ms-dotnettools|1.11.14|ms-dotnettools.csdevkit-1.11.14-linux-x64| |csharp|ms-dotnettools|2.50.27|ms-dotnettools.csharp-2.50.27-linux-x64| |csharpextensions|jchannon|1.3.1|jchannon.csharpextensions-1.3.1| |dart-code|Dart-Code|3.98.1|dart-code.dart-code-3.98.1| |debugpy|ms-python|2024.12.0|ms-python.debugpy-2024.12.0-linux-x64| |dotnet-interactive-vscode|ms-dotnettools|1.0.5229040|ms-dotnettools.dotnet-interactive-vscode-1.0.5229040| |flutter|Dart-Code|3.98.0|dart-code.flutter-3.98.0| |githistory|donjayamanne|0.6.20|donjayamanne.githistory-0.6.20| |jupyter|ms-toolsai|2024.9.1|ms-toolsai.jupyter-2024.9.1-linux-x64| |jupyter-renderers|ms-toolsai|1.0.19|ms-toolsai.jupyter-renderers-1.0.19| |markdown-preview-enhanced|shd101wyy|0.8.14|shd101wyy.markdown-preview-enhanced-0.8.14| |prettier-vscode|esbenp|11.0.0|esbenp.prettier-vscode-11.0.0| |python|ms-python|2024.16.1|ms-python.python-2024.16.1-linux-x64| |ssml-tags|Osuka42g|0.0.1|osuka42g.ssml-tags-0.0.1| |terraform|hashicorp|2.33.0|hashicorp.terraform-2.33.0-linux-x64| |vscode-azureappservice|ms-azuretools|0.25.4|ms-azuretools.vscode-azureappservice-0.25.4| |vscode-azurecontainerapps|ms-azuretools|0.7.1|ms-azuretools.vscode-azurecontainerapps-0.7.1| |vscode-azurefunctions|ms-azuretools|1.15.4|ms-azuretools.vscode-azurefunctions-1.15.4| |vscode-azureresourcegroups|ms-azuretools|0.9.7|ms-azuretools.vscode-azureresourcegroups-0.9.7| |vscode-azurestaticwebapps|ms-azuretools|0.12.2|ms-azuretools.vscode-azurestaticwebapps-0.12.2| |vscode-azurestorage|ms-azuretools|0.16.1|ms-azuretools.vscode-azurestorage-0.16.1| |vscode-cosmosdb|ms-azuretools|0.23.0|ms-azuretools.vscode-cosmosdb-0.23.0| |vscode-devskim|MS-CST-E|1.0.33|ms-cst-e.vscode-devskim-1.0.33| |vscode-dotnet-runtime|ms-dotnettools|2.2.0|ms-dotnettools.vscode-dotnet-runtime-2.2.0| |vscode-jupyter-cell-tags|ms-toolsai|0.1.9|ms-toolsai.vscode-jupyter-cell-tags-0.1.9| |vscode-jupyter-slideshow|ms-toolsai|0.1.6|ms-toolsai.vscode-jupyter-slideshow-0.1.6| |vscode-node-azure-pack|ms-vscode|1.2.0|ms-vscode.vscode-node-azure-pack-1.2.0| |vscode-pylance|ms-python|2024.10.1|ms-python.vscode-pylance-2024.10.1| |vscode-tailwindcss|bradlc|0.12.11|bradlc.vscode-tailwindcss-0.12.11| |vscode-xml|redhat|0.27.1|redhat.vscode-xml-0.27.1-linux-x64|;

Extension version: 1.11.14 VS Code version: Code 1.94.2 (384ff7382de624fb94dbaf6da11977bba1ecd427, 2024-10-09T16:08:44.566Z) OS version: Windows_NT x64 10.0.19044 Modes: Remote OS version: Linux x64 6.8.0-44-generic

System Info |Item|Value| |---|---| |CPUs|AMD Ryzen 5 PRO 4650U with Radeon Graphics (12 x 2096)| |GPU Status|2d_canvas: enabled
canvas_oop_rasterization: enabled_on
direct_rendering_display_compositor: disabled_off_ok
gpu_compositing: enabled
multiple_raster_threads: enabled_on
opengl: enabled_on
rasterization: enabled
raw_draw: disabled_off_ok
skia_graphite: disabled_off
video_decode: enabled
video_encode: enabled
vulkan: disabled_off
webgl: enabled
webgl2: enabled
webgpu: enabled
webnn: disabled_off| |Load (avg)|undefined| |Memory (System)|15.23GB (2.32GB free)| |Process Argv|--folder-uri vscode-remote://ssh-remote%2B10.2.156.49/home/jason/Workspace/official/allure-components --crash-reporter-id 2b129294-2fdd-4d9d-b5d5-1ee818e2fd65| |Screen Reader|no| |VM|0%| |Item|Value| |---|---| |Remote|SSH: 10.2.156.49| |OS|Linux x64 6.8.0-44-generic| |CPUs|AMD EPYC 75F3 32-Core Processor (8 x 0)| |Memory (System)|15.62GB (7.93GB free)| |VM|0%|
A/B Experiments ``` vsliv368:30146709 vspor879:30202332 vspor708:30202333 vspor363:30204092 vscod805cf:30301675 binariesv615:30325510 vsaa593cf:30376535 py29gd2263:31024239 vscaac:30438847 c4g48928:30535728 azure-dev_surveyonecf:30548226 a9j8j154:30646983 962ge761:30959799 pythongtdpath:30769146 pythonnoceb:30805159 asynctok:30898717 pythonmypyd1:30879173 2e7ec940:31000449 pythontbext0:30879054 cppperfnew:31000557 dsvsc020:30976470 pythonait:31006305 dsvsc021:30996838 945dj816:31013170 dvdeprecation:31068756 dwnewjupytercf:31046870 impr_priority:31102340 nativerepl2:31139839 refactort:31108082 pythonrstrctxt:31112756 wkspc-onlycs-t:31132770 wkspc-ranged-t:31151552 cf971741:31144450 autoexpandse:31146404 iacca1:31156133 notype1cf:31157160 5fd0e150:31155592 dwcopilot:31164048 icondisabled:31158250 ```
arunchndr commented 1 month ago

Starting with @dibarbet for the call stack with CA in specific.

But the insight around reuse of /tmp/csdevkit could be something for us to chase down. @AArnott would you know what other teams are involved with that?

dibarbet commented 1 month ago

@jonathanjyi this looks similar to https://github.com/microsoft/vscode-dotnettools/issues/1354 but perhaps with a different cause. Would you mind taking a look?

jonathanjyi commented 1 month ago

Hi @jllixiao thanks for reporting this issue and pasting the Log. I'll take a look to see what's going on. In the mean time, could you elaborate a bit more on the setup?

  1. Are the Windows users using the same SSH credentials to login to the Ubuntu box?
  2. Since you mentioned SSH, I assume that the users are starting VS Code on the Windows side, and using a remote connection login to connect through SSH to the Linux side?
  3. Can both Windows users start C# Dev Kit Extension on their Windows machines without logging in to the remote Ubuntu box successfully with no crashes or errors?
  4. Are both users opening the same project?
arunchndr commented 4 weeks ago

Adding @webreidi as owner to comment on scenario support after we understand scope of break.

jllixiao commented 3 weeks ago

Hi @jllixiao thanks for reporting this issue and pasting the Log. I'll take a look to see what's going on. In the mean time, could you elaborate a bit more on the setup?

  1. Are the Windows users using the same SSH credentials to login to the Ubuntu box?
  2. Since you mentioned SSH, I assume that the users are starting VS Code on the Windows side, and using a remote connection login to connect through SSH to the Linux side?
  3. Can both Windows users start C# Dev Kit Extension on their Windows machines without logging in to the remote Ubuntu box successfully with no crashes or errors?
  4. Are both users opening the same project?

Hi @jonathanjyi ,

  1. No, we use different credentials to ssh to the Ubuntu server.
  2. Yes, we both use VSCode on Windows to remote to the Ubuntu server. One is Windows 10 Enterprise, the other is Windows 11 pro.
  3. Yes, it works well on our own Windows system.
  4. No, we open different project.

Hope this helps,

Thanks a lot,

github-actions[bot] commented 3 weeks ago

@jonathanjyi, the 'needs-more-info' label has been removed upon receiving further response from the original bug filer.

jonathanjyi commented 1 week ago

@jllixiao, apologies on the delay. I was able to repro this issue locally and know what the issue is.

Using your example of Users A and B, what is happening here is that User A is the first open and start the C# Dev Kit extension. That means User A also creates the /tmp/csdevkit folder with their permissions, thus preventing User B from writing to that directory. Example: drwxrwxr-x User_A User_A csdevkit

I'm investigating a solution internally and will update here.

jonathanjyi commented 1 week ago

Also, @jllixiao I wanted to add that to unblock your users until we get a fix out, you can set the /tmp/csdevkit folder to world write (777) at the folder level.

sudo chmod 777 /tmp/csdevkit should do it. Let me know if this doesn't work for you.