Oracle Server + VSCode Issues Fixed

Hi all,

After setting up Oracle Free Tier I had multiple issues. Hoping to help someone else (and my future self) from the last 2 days of debugging pain.

  1. Issue 1 - Session open refused by peer
    TLDR: Connection Reboot helped, haven't had issue since.
  2. Issue 2 - Maximum CPU utilization as soon as I open remote VS Code.
    TLDR: ChatGPT extension eats a ton of resources, turning it off gives me normal utilization.
  3. Issue 3 - Maximum CPU utilization after any error
    TLDR: add "search.followSymlinks": false to your /codeload/.vscode/settings.json

Issue 1:
Had uninterrupted 36-48 hours of normal workflow. Came back after lunch locked out. I had connection on both typical browser Jupyter lab IDE & VS Code's -> Docker Contexts -> Attach in New Window without issue.
First:

ssh [email protected]
>> mux_client_request_session: session request failed: Session open refused by peer
Connection closed by x.x.x.x port 22

ChatGPT thought:
	•	If you added an SSH key with command="...", no-pty, or no-shell, you might’ve inadvertently broken interactive shell access.
	•	This would still allow connection and auth (hence: “refused by peer”), but deny full sessions.
Checked my local id_rsa.pub, nothing excess there.

Second:
Checked that local IP address, A record, instance public IP address, whitelisted addresses etc... haven't changed. They hadn't.

Third:
Sign-in to Oracle -> instance -> Console connection (turned off Redwood preview in bottom right to find). Hangs for a very long time. Eventually says "quantrocket login" and times out each time before it accepts the creds.

Fourth:
Stop, wait, start instance. Lets me in, nothing was changed.

ssh [email protected]
>> mux_client_request_session: read from master failed: Broken pipe
>> ubuntu@quantrocket:~$ ls ~/.ssh/
>> authorized_keys  known_hosts  known_hosts.old
# Confirmed authorized_keys == local id_rsa.pub
# Back inside Jupyter Lab & VS Code like normal.

Issue 2:
The ChatGPT extension in the Oracle free server (upgraded to pay-as-go 4cpu/24GB) was almost impossible. It would lock up and I'd have to reboot every day or two. Couldn't figure it out at first, even ssh'd & created a swapfile thinking it was a large notebook (htop RAM was 'ok') but eventually looked at the PIDs and found my extensions were eating away with Chat being the worst. This caused me to not even be able to kill/restart jupyter lab notebooks where data was only 15-30mb.

Issue 3:
I run a satellite script like so. If it completes successfully there's no issue with CPU utilization. If any error is returned the CPU utilization looks like the htop picture below. Note: I know how to solve the actual error below, I just created one for demo purposes.

quantrocket satellite exec 'codeload.myproject.myfile.main' --params 'param1' 'param2'
>> msg: 'error running function: No executions found for order 6001:73'
status: error

The utilization remains this way indefinitely unless I reload/restart VSCode. The issue PIDs are always of the form /root/.vscode-server/bin/..../node_modules/@vscode/ripgrep/bin/rg

Things attempted per ChatGPT thoughts that VSCode is continuing to index or search large files even during failure.

  1. Add files.watcherExclude & search.exclude with csv, parquet, sqlite, etc.. to .vscode/settings.json inside both /codeload/.vscode/settings.json, /codeload/myproject/.vscode/settings.json, and the server itself. Didn't fix the problem by itself.

  2. Remove all extensions except core ones. Didn't fix individually.

  3. Went to remove .vscode-server/ directory per these thoughts on stackoverflow. But as I dug in I found my issue was ripgrep specifcally which led me to this GH issue and this stack answer. An example PID was showing this:
    /root/.vscode-server/bin/..../node_modules/@vscode/ripgrep/bin/rg

# Found inside jupyter
$ cd quantrocket_cloud
$ docker --context cloud compose exec jupyter bash
$ cd /root/.vscode-server/bin/..../node_modules/@vscode/ripgrep/bin
$ nano rg
>> A bunch of illegible output.

Then the combo of the above stack answers and this GH Wiki suggested the eventual solution of adding "search.followSymlinks": false to the workspace settings.json.
Final settings.json that worked:

// .vscode/settings.json
{
  "files.watcherExclude": {
    // exclude *any* CSV, Parquet or SQLite file in your workspace
    "**/*.csv": true,
    "**/*.parquet": true,
    "**/*.sqlite": true,

    // exclude these heavy folders if you like
    "**/data/**": true,
  },
  "search.exclude": {
    "**/*.csv": true,
    "**/*.parquet": true,
    "**/*.sqlite": true
  },
"search.followSymlinks": false
}