vscode-cmake-tools icon indicating copy to clipboard operation
vscode-cmake-tools copied to clipboard

Broken API usage of latest WSL "No cache object found"

Open mortenfc opened this issue 9 months ago • 13 comments

Brief Issue Summary

Fails to configure. Gets stuck loading .jsons from the .cmake folder. WSL remote extension host shows the reason:

2024-05-29 10:32:12.193 [error] Error: Extension 'ms-vscode.cmake-tools' CANNOT use API proposal: extensionRuntime.
Its package.json#enabledApiProposals-property declares: [] but NOT extensionRuntime.
 The missing proposal MUST be added and you must start in extension development mode or use the following command line switch: --enable-proposed-api ms-vscode.cmake-tools
	at y (/home/mfjordchris/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/out/vs/workbench/api/node/extensionHostProcess.js:143:51558)
	at get extensionRuntime [as extensionRuntime] (/home/mfjordchris/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/out/vs/workbench/api/node/extensionHostProcess.js:161:12748)
	at JSON.stringify (<anonymous>)
	at RollbarController.exception (/home/mfjordchris/.vscode-server/extensions/ms-vscode.cmake-tools-1.19.0/dist/main.js:68089:60)
	at /home/mfjordchris/.vscode-server/extensions/ms-vscode.cmake-tools-1.19.0/dist/main.js:68133:38

cmake build output:

[cache] Parsing CMake cache string
[cmakefileapi-parser] Read reply folder: /home/mfjordchris/repos/microsar-adaptive/build/gcc7_linux_x86_64/.cmake/api/v1/reply
[cmakefileapi-parser] Found index files: [ 
.... tons of jsons ....
]

And then nothing

CMake Tools Diagnostics

{
  "os": "linux",
  "vscodeVersion": "1.89.1",
  "cmtVersion": "1.19.0",
  "configurations": [
    {
      "folder": "/home/mfjordchris/repos/microsar-adaptive",
      "cmakeVersion": "unknown",
      "configured": false,
      "generator": "unknown",
      "usesPresets": false,
      "compilers": {}
    }
  ],
  "cpptoolsIntegration": {
    "isReady": false,
    "hasCodeModel": false,
    "activeBuildType": "",
    "buildTypesSeen": [],
    "requests": [],
    "responses": [],
    "partialMatches": [],
    "targetCount": 0,
    "executablesCount": 0,
    "librariesCount": 0,
    "targets": []
  },
  "settings": [
    {
      "communicationMode": "automatic",
      "useCMakePresets": "auto",
      "configureOnOpen": null
    }
  ]
}

Debug Log

[main] Starting new CMake driver
[main] Starting CMake driver
[cmakefileapi-driver] Creating instance of CMakeFileApiDriver
[driver] Initializing base driver using preset
[driver] CMakeDriver configure preset set to gcc7_linux_x86_64
[driver] CMakeDriver build preset set to __defaultBuildPreset__
[driver] CMakeDriver test preset set to __defaultTestPreset__
[driver] CMakeDriver package preset set to __defaultPackagePreset__
[driver] CMakeDriver workflow preset set to __defaultWorkflowPreset__
[cache] Reading CMake cache file /home/mfjordchris/repos/microsar-adaptive/build/gcc7_linux_x86_64/CMakeCache.txt
[cache] Parsing CMake cache string
[cache] Reading CMake cache file /home/mfjordchris/repos/microsar-adaptive/build/gcc7_linux_x86_64/CMakeCache.txt
[cache] Parsing CMake cache string
[cmakefileapi-parser] Read reply folder: /home/mfjordchris/repos/microsar-adaptive/build/gcc7_linux_x86_64/.cmake/api/v1/reply
[cmakefileapi-parser] Found index files: ["codemodel-v2-9c7b1a5b13e6cd7abb21.json","directory-.-Debug-ef777644173ec83da69e.json", ... and a ton of other jsons that would exceed github character limit ... ]
[extension] [7571] cmake.logDiagnostics finished (returned undefined)

Additional Information

This used to work, I guess one party broke backwards compatibility with the other. WSL:

[2024-05-29 08:32:02.502] Using executable (49) to forward requests from local 54579 to remote 42613
[2024-05-29 08:32:02.502] NodeExecServer run: C:\Windows\System32\wsl.exe -d Ubuntu-22.04 -e /home/mfjordchris/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/node -e const net = require('net'); process.stdin.pause(); const client = net.createConnection({ host: '127.0.0.1', port: 42613 }, () => { client.pipe(process.stdout); process.stdin.pipe(client); }); client.on('close', function (hadError) { console.error(hadError ? 'Remote close with error' : 'Remote close'); process.exit(hadError ? 1 : 0); }); client.on('error', function (err) { process.stderr.write(err && (err.stack || err.message) || String(err)); });
[2024-05-29 08:32:01.745] Extension version: 0.88.2
[2024-05-29 08:32:01.745] L10N bundle: undefined
[2024-05-29 08:32:01.782] authorityHierarchy: wsl+Ubuntu-22.04
[2024-05-29 08:32:01.782] WSL extension activating for a local WSL instance
[2024-05-29 08:32:01.803] Resolving wsl+Ubuntu-22.04, resolveAttempt: 1
[2024-05-29 08:32:01.804] NodeExecServer run: C:\Windows\System32\wsl.exe --status
[2024-05-29 08:32:01.965] WSL feature installed: true (wsl --status)
[2024-05-29 08:32:01.965] NodeExecServer run: C:\Windows\System32\wsl.exe --list --verbose
[2024-05-29 08:32:02.096] 1 distros found
[2024-05-29 08:32:02.096] Starting VS Code Server inside WSL (wsl2)
[2024-05-29 08:32:02.096] Windows build: 22621. Multi distro support: available. WSL path support: enabled
[2024-05-29 08:32:02.097] Scriptless setup: false
[2024-05-29 08:32:02.098] No shell environment set or found for current distro.
[2024-05-29 08:32:02.239] WSL daemon log file: c:\Users\mfjordchris\AppData\Roaming\Code\logs\20240528T164619\window3\exthost\ms-vscode-remote.remote-wsl\wsl-daemon-20240529T083202.log
[2024-05-29 08:32:02.244] Connecting to daemon started by other WSL window... 5.15.146.1-microsoft-standard-WSL2 Ubuntu-22.04
[2024-05-29 08:32:02.244] WSL resolver response: 127.0.0.1:54579
[2024-05-29 08:32:02.244] To debug connection issues, open a local browser on http://127.0.0.1:54579/version
[2024-05-29 08:32:02.244] No extension host environment set
[2024-05-29 08:32:02.331] Using executable (48) to forward requests from local 54579 to remote 42613
[2024-05-29 08:32:02.332] NodeExecServer run: C:\Windows\System32\wsl.exe -d Ubuntu-22.04 -e /home/mfjordchris/.vscode-server/bin/dc96b837cf6bb4af9cd736aa3af08cf8279f7685/node -e const net = require('net'); process.stdin.pause(); const client = net.createConnection({ host: '127.0.0.1', port: 42613 }, () => { client.pipe(process.stdout); process.stdin.pipe(client); }); client.on('close', function (hadError) { console.error(hadError ? 'Remote close with error' : 'Remote close'); process.exit(hadError ? 1 : 0); }); client.on('error', function (err) { process.stderr.write(err && (err.stack || err.message) || String(err)); });
[2024-05-29 08:32:02.798] Download in background is enabled

mortenfc avatar May 29 '24 08:05 mortenfc