eclipse-theia/theia

Language server of VSCode's C/C++ plugin does not stop when theia exit

Open

#5,899 opened on 2019年8月9日

GitHub で見る
 (12 comments) (0 reactions) (0 assignees)TypeScript (18,676 stars) (2,478 forks)batch import
bugcpphelp wantedplug-in systemvscode

説明

Description

VSCode's C/C++ plugin is working pretty well on theia now. But if one stops theia and then relaunch it, an error will be shown which says

root ERROR Uncaught Exception:  Error: ETXTBSY: text file is busy, open '/tmp/vscode-unpacked/cpptools-linux.vsix/extension/bin/Microsoft.VSCode.CPP.Extension.linux'
root ERROR Error: ETXTBSY: text file is busy, open '/tmp/vscode-unpacked/cpptools-linux.vsix/extension/bin/Microsoft.VSCode.CPP.Extension.linux'

and the plugin will not work at all. I can only have it work again either by removing /tmp/vscode-unpacked/cpptools-linux.vsix folder or by killing all the related plugin processes that run in the background even after theia is stopped.

Reproduction Steps

  1. Download master theia (in my case, the commit ID is 66976d0f29064f36f02d0090040828848da1a79e)
  2. Remove "@theia/cpp": "^0.9.0", dependency from examples/browser/package.json and compile theia
  3. Download VSCode's C/C++ plugin (https://github.com/microsoft/vscode-cpptools/releases/download/0.24.1/cpptools-linux.vsix) and put it into the plugins folder
  4. Launch theia. Open a C/C++ project and check for functions like auto-completion.
  5. Stop theia and check for the unstopped language server by running ps aux | grep CPP (linux)
  6. Re-run theia and you'll see the error information. Open a C/C++ project and you'll notice that it does not work again.

NOTE: Step 4 is necessary. If no C/C++ project is opened, the language server will stop as expected.

OS and Theia version: Ubuntu 18.04 Theia 66976d0f29064f36f02d0090040828848da1a79e

Diagnostics: No further diagnostic is available currently.

コントリビューターガイド