vscode: Extension Host Failure - Error interaction with MATLAB code on macOS Catalina
Version: 1.47.3 Commit: 91899dcef7b8110878ea59626991a18c8a6a1b3e Date: 2020-07-23T13:08:29.692Z (2 wks ago) Electron: 7.3.2 Chrome: 78.0.3904.130 Node.js: 12.8.1 V8: 7.8.279.23-electron.0 OS: Darwin x64 19.6.0
Note: Tested Insiders and it suffers from the same issue.
Steps to Reproduce:
- Have MATLAB 2018 or later installed on your system.
- Open VS Code via
/Applications/Visual Studio Code.app
(Launchpad, Finder, or Spotlight) - Observe Extension Host crash with the following error:
dyld: Symbol not found: _mecab_get_feature Referenced from: /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP Expected in: /Applications/MATLAB/MATLAB_Runtime/v95/bin/maci64/libmecab.dylib in /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
Does this issue occur when all extensions are disabled?: No
It should be noted that the issue does not occur when launched via Terminal at all (even when extensions are enabled). It appears to be something related to the app wrapper.
Workaround:
- Open via Terminal using
/Applications/Visual\ Studio\ Code.app/Contents/Resources/app/bin/code
instead of launching using the app launcher itself.
About this issue
- Original URL
- State: closed
- Created 4 years ago
- Comments: 29 (22 by maintainers)
cc: @bpasero – Verified
I talked with @deepak1556 in our Monday call and we think that removing this variable here should be fine:
https://github.com/microsoft/vscode/blob/e557e8bcc3ca6b4569eee3f6b746f00b4572db56/src/vs/workbench/services/extensions/electron-browser/localProcessExtensionHost.ts#L160
This means that the variable will never reach extensions, but my understanding is that people only want it for task execution which currently does not happen in the extension host (iirc).
yeah thats correct, the only way I see now is to pass them via command line flags and modify
process.env
in the app, should figure a good solution for this.we are not gonna change the out of sources cli wrapper, so this one should not be an issue.
đź‘Ť
To clarify: if we switch to
open
command, none of the shell process environment or anything we configure in our CLI scripts ends up in the process environment of the VSCode window? That would be pretty bad and we then need an alternative for how to getting these variables in. Even when running out of sources,code.sh
defines many variables:https://github.com/microsoft/vscode/blob/46860a105b2f2e115970ad0d54f5a39d5add9cc5/scripts/code.sh#L39
Yup thats correct
Sounds good, but I am not familiar with the task execution system to verify if this will work fine. Atleast would be good to verify with the sample from https://github.com/microsoft/vscode/issues/88306 . Also if there are other use cases, I would like to capture it in this issue.
That won’t be true with https://github.com/microsoft/vscode/pull/104470 , since the app won’t be invoked from the shell. We are trying to emulate the behavior of opening from finder. I just remembered that we missed
VSCODE_CLI
context in that PR, so wanted to capture it. I haven’t thought about the way forward, we can continue the discussion in the associated issue.Doesn’t cli.ts launch the app as a child process, so the env variables it launches gets propagated all the way down because of
process.env
. For example.$ export ABC=1 $ code-insiders vscode/ $ check process.env.ABC in renderer process $ check process.env.ABC in extension host process.
thats why the author didn’t see the crash when launching without the cli wrapper