User Tools

Site Tools


techstaff:vscode

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
techstaff:vscode [2021/02/05 14:58] – [VSCode] kauffmantechstaff:vscode [2021/03/11 14:09] kauffman
Line 1: Line 1:
 ====== VSCode ====== ====== VSCode ======
  
-  * [[https://classes.cs.uchicago.edu/archive/2020/fall/12100-1/resources/vscode.html| CS121 VSCode Setup]]+  * [[https://classes.cs.uchicago.edu/archive/2020/fall/12100-1/resources/vscode.html| CS121 VSCode Setup Tutorial]]
   * [[https://classes.cs.uchicago.edu/archive/2021/winter/15200-1/resources/vscode.html|CS152 VSCode Setup Tutorial]]   * [[https://classes.cs.uchicago.edu/archive/2021/winter/15200-1/resources/vscode.html|CS152 VSCode Setup Tutorial]]
  
  
 ====== Troubleshooting ====== ====== Troubleshooting ======
 +Techstaff are not experts on VS Code or its proprietary SSH extension, but we can guess what's happening based on what we've seen with other students.
  
-**Techstaff are not experts on VS Code or its proprietary SSH extension, but I can guess what's happening based on what we've seen with other students.**+One thing that can prevent your ability to access the servers is if you've used VS Code and logged into more than one of our login servers simultaneously.  ''%%linux.cs.uchicago.edu%%'' is actually a collection of several servers, so when you access that address your computer will pick a login server to use.
  
-This can occur if you've used VS Code and logged into more than one of our login servers ''%%linux.cs.uchicago.edu%%'' is actually a collection of several serversso when you access that address your computer will pick a login server to use.+Using ''%%nslookup%%'', ''%%dig%%'', ''%%host%%'', or another DNS lookup tool, you can see that ''%%linux.cs.uchicago.edu%%'' expands to ''%%linux1.cs.uchicago.edu%%'', ''%%linux2.cs.uchicago.edu%%'', and other servers up to ''%%linux5%%''.
  
-Using nslookup, dig, host, or another DNS lookup tool, you can see that ''%%linux.cs.uchicago.edu%%'' expands to ''%%linux1.cs.uchicago.edu%%'', ''%%linux2.cs.uchicago.edu%%'', and other servers up to ''%%linux5%%''. +In this caseVS Code has started its server process for you on three of our login servers concurrently: ''%%linux1%%'', ''%%linux4%%'', and ''%%linux5%%''This can cause problems with VS Code, including a situation in which it just repeatedly prompts for a password, preventing you from connecting.  (This appears to be what you're experiencing. Additionally, this can often result in the directory ''%%~/.vscode-server%%'' in your home directory on the server becoming corrupted in some way. Since VS Code will automatically recreate that directory when you reconnect, it's safe to delete it. 
-  + 
-In this case, VS Code has started its server process for you on two of our login servers concurrently: linux1 and linux2.  This causes it to show the error message you're seeing.  Additionally, this can often +To try to clear this up you can try to run the script ''%%cleanup-vscode%%'' after sshing into one of the linux servers using Terminal.appthe WSL command line, or a linux terminal. 
- result in the directory ''%%~/.vscode-server%%'' in your home directory on the server becoming corrupted in some way.  Since VS Code will automatically recreate that directory when you reconnect, it's safe to delete it. + 
-  +<code> 
-To try to clear this up for you, I've stopped the VS Code server process which was running on those two servers and removed the ''%%~/.vscode-server%%'' folder from your home directory. +ssh cnetid@linuxN.cs.uchicago.edu 
-  +</code> 
-To help ensure that this doesn't happen again, you might consider configuring VS Code to connect to one login server in particular instead of the group.  That will ensure that you always reconnect to the same system you used previously, which means it'll be less likely that you'll accidentally end up with two instances of the server process running concurrently+ 
- +To fix this on your own, you could simply log into each of the linux.cs servers (using SSH), then the command ''%%pkill -u <CNETID> node%%'', which will stop any running vscode-server processes.  After you've stopped the processes on all the login servers, I'd also recommend removing the ''%%~/.vscode-server%%'' directory to ensure that it's recreated when you connect next.  (Otherwise, the contents of this directory can cause problems for later reconnect attempts.) To do this, just run ''%%rm -r ~/.vscode-server%%'' on any of the linux.cs servers. (Since your home directory is shared, you only need to do this once.) We've also recently created a script called ''%%cleanup-vscode%%'' which you can run on any of the servers (when connected directly using SSH) which will walk you through this process. 
 + 
 + 
 +To help ensure that this doesn't happen again, you will want to configure VS Code to connect to one login server in particular instead of the group. That will ensure that you always reconnect to the same system you used previously, which means it'll be less likely that you'll accidentally end up trying to run this on two servers at the same time. I'd also recommend ensuring that VS Code is completely closed and no longer running on one computer before attempting to start it on a second computer. 
 + 
 + 
 +==== Step by Step ==== 
 + 
 +  - Open a terminal emulator. On Windows we suggest installing the [[windows:subsystemforlinux|Windows Subsystem for Linux]]. On MacOS open Terminal.app. 
 +  - You need to ssh into one of our linux servers.<code> 
 +ssh cnetid@linux.cs.uchicago.edu 
 +</code> 
 +  - Ensure your are below your quota. Check your quota by running ''%%csquota%%''.  
 +    - If you are using all of your quota we usually see that ''%%results.log%%'' is the culprit. You can find the file or set of files using up your quota by using the command ''%%du -csh * .??*%%''
 +    - Assuming it is ''%%results.log%%'' you probably don't want to delete it just yet as there is probably a process that still has it open and is still writing to it. Proceed and delete this file at the very end. 
 +  - Kill all the VS Code server processes on all linux.cs servers. Remember these were caused by using the round robin DNS name of ''%%linux.cs.uchicago.edu%%''
 +    - If you haven't changed the entry in your VS Code client you should do so now such that you specify a specific server. e.g. ''%%linuxN.cs.uchicago.edu%%'' where ''%%N%%'' is a number 1-5. 
 +    - The general idea is to ssh into every linux.cs server and kill any VS Code server process you have running. This command will ''%%pkill -u <CNETID> node%%'' VS Code server
 +    - The techstaff script ''%%cleanup-vscode%%'' will walk you through sshing to all nodes and killing the right processes. Feel free to look at the script to see what it is doing. 
 +  - Now you'll want to remove the ''%% ~/.vscode-server%%'' directory. 
 +  - IFF you found that ''%%results.log%%'' was using all of your quota you'll want to delete this now. 
 +  - You should be able to reconnect with VS Code client now. 
 + 
 + 
 +https://code.visualstudio.com/docs/remote/troubleshooting#_improving-security-on-multi-user-servers 
 +https://code.visualstudio.com/docs/remote/ssh
/var/lib/dokuwiki/data/pages/techstaff/vscode.txt · Last modified: 2021/07/09 12:04 by kauffman

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki