-
Notifications
You must be signed in to change notification settings - Fork 2.5k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
After a disconnect of the browser, commands from a VSCode extension do not work #5025
Comments
@benoitf I can have a look if you don't plan yet for someone else? |
@benoitf @akosyakov this issue is critical for us. Are you actively working on it or could we try to contribute? (with your help 😃 ) |
@amiramw try to contribute |
I was on PTO and at Red Hat Summi. @akosyakov you may have a look |
I also tried with language server extension. When refreshing the browser connection is established fine. When restarting the server I see this error:
@benoitf @akosyakov does it give any hint where i should look for the problem? Also is there a nice way to debug the plugin host process code in plugin-ext extension code? |
@amiramw you can debug using
when you start Theia it will break on first line when you'll access with your browser the ide |
@benoitf is there a way to unload plugin in the browser side? I am trying to trigger reload of all plugins on reconnect and there are duplicate configurations. |
@akosyakov @benoitf
Any thoughts? |
I created #5257 for keeping the host process alive for a while. This should solve the disconnections issue. |
It's a proper solution. We do it in the similar way for other services already (i.e. language servers, file watching, git watching and so on). On JSON-RPC connection you can be notified when connection is lost and recovered. If a connection is lost then a client plugin state should be cleaned up. If a connection is restored a client should deploy similarly as on first opening. See for file watching for example: https://github.com/theia-ide/theia/blob/78e1cb474e72ed7e641ba7df54ea62b2098684d6/packages/filesystem/src/common/filesystem-watcher-protocol.ts#L80-L84 Not sure that you need to implement the proper unloading of individual plugins. It would beneficial for dynamic plugin uninstallation, but can complicate things for now. |
@akosyakov do you plan to implement the proper solution here? |
@amiramw I've started to work on it yesterday. |
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
also fix #5829: ensure that each plugin is loaded only once Signed-off-by: Anton Kosyakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix #5829: ensure that each plugin is loaded only once - fix #6186: start only one plugin host process for the same host instead of a new for each load as before - revert #5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Also: - fix eclipse-theia#5829: ensure that each plugin is loaded only once - fix eclipse-theia#6186: start only one plugin host process for the same host instead of a new for each load as before - revert eclipse-theia#5257: Reconnect same host plugin process and client" 797db75 Signed-off-by: Anton Kosiakov <[email protected]>
Description
If the browser disconnects from the server, either briefly due to network error, or if the server restarted, VSCode extension commands stop working.
I also noticed that if the server restarted, the browser reconnects but the VSCode extension was not activated.
Maybe related to this:
#4590
in that case the whole extension may stop functioning and commands is just a special case.
Reproduction Steps
You may clone this vscode extension: https://github.com/ariel-bentu/theia-vscode-gaps.git
when you start the browser first time, you can see that it functions (right click on a node in the view that was added, click one of the commands and see that they work.
Now restart Theia server, and wait for the browser to reconnect - see that now these commands don't work.
Also, in the server log, you can see that the extension did not load (it prints:
console.log('Congratulations, your extension "bugs" is now active!');
)In addition, try disconnecting the network w/o restart and still these commands don't work after the reconnect. (for disconnecting technic, see #4590)
OS and Theia version:
MAC, latest version
Diagnostics:
See above
The text was updated successfully, but these errors were encountered: