-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Need to tell user when start of plugin fails #12951
Comments
Not me, it seems I'm running into #12904 (found out after digging around minshift console). In my case, it just silently fails. |
are you using |
Whatever comes up when I use chectl server:start |
@tsmaeder yes but at some point you choose a stack (or devfile) no ? |
I choose the "Che 7" stack. |
@tsmaeder ok then please select in the config list (you've to change from 1.0.0 to next) |
@benoitf This issue is not about the fact that the Java plugins does not start. It is about the fact that we have no indication that the startup has failed, nor can we look at output from the plugin anywhere in Che. |
@benoitf I'm just telling that the issue is reported through vscode-java plug-in. (there is a popup) |
In my case there was absolutely no feedback. |
yes but I think the no feedback was because you were using latest tag and not next tag (we fixed some issues around plug-ins loading since latest) |
No, I just had a debugging session with @l0rd, who, for some reason, can't make the java support start (with the same workspace config as I have). It just silently does not start, even with theia:next |
same on my side, I have not seen the visual feedback. |
The reason being that he did not have userland-proxy=false as a docker opt. I guess the silent failure happens when the main theia cannot contact the sidecar. |
plug-in broker should now send plug-ins to each sidecar instead of sending all of them to the main theia instances. (At some point it was not supported) To come back to the root problem of userland, I already filed an issue last year: #11018 If userland is not set, platform won't work correctly (not limited to plug-ins) |
This issue is about the failure not being shown to the user. |
@benoitf even though the reason is the same for both issues I have concerns whether we should qualify this as a duplicate of the issue mentioned by you. |
Unfortunately it is not accurate to my knowledge. We didn't have a specific prioritized task to do that. |
Updated title to make it clear this issue is about informing the user, not about the failure to start the plugin. |
The user doesn't have any feedback about the status of the plugins included in the workspace. At least we should provide the state (loading/loaded/failed) in the plugin viewl. And a notification if the plugin fails to load. I believe these improvements should be done che-theia/theia side. @garagatyi avoiding copying plugin in theia container is important but not critical for GA. Is there an issue already? I am sure we mentioned that somewhere |
maybe I'm alone but here is what is my feeling: Let say Theia is displaying a very nice message that we can't reach the containers. It's very nice but it's too late and the user will never be able to use the plug-ins as it requires admin changes. This is why I'm in favour of failing fast. When admin is installing Che, we should let him know if what he's installing is gonna work or not. (And maybe user of the platform is not the admin so only admin needs to be aware) This is why I've issued a PR on chectl. |
@l0rd we don't have AFAIK
@benoitf It is very cool that you added that functionality to chectl when using minishift/minikube but when Che is running on a different cluster there are still might be issues like that and they could occur on a particular cluster or even node, so we might not be able to detect it beforehand. |
@l0rd ok in that case it means it's vscode-java that is not reporting the crash of its inner java process ? Theia is calling start event to the plug-ins but Theia is not aware that some processes start java process or something else. |
We won't ever be able to guarantee that we are 100% bug free or not flaky. Making the processes that are going on transparent to the user, including failures, will make the user feel more in control. Feeling in control is essential for a for users to be happy with a product. Also, it helps in diagnosing problems. The failure in question is a good example: The conversation on the problem you mentioned could go two ways: Curently: or, with good logging and failure feedback: User: Java support is not working |
@benoitf we may improve jdt ls but we can't control any vs code extension. If a user is installing a vs code extension that fails to start (for whatever reason) we need to inform the user anyway. That's something that will help us protect against buggy extensions: we should tell users that an extension is not behaving as expected. |
@l0rd AFAIk the start method is not reporting any error. |
@l0rd if vscode java is not able to start the java process we have the same reporting than VS Code |
@benoitf but both me and @l0rd have observed cases where you do not get any feedback for this. One such case is when -Xmx for the jdt.ls process is bigger than what is available in the sidecar. So there is at least one case we are not detecting. Running such a command line from a terminal in the sidecar just terminates with "killed" written to the terminal. Maybe the process is killed in a way that is not detected by vscode-java. |
@tsmaeder I played with different options of vscode java (like trying to get 4TB of memory, etc) and start method didn't receive anything. Basically it's because the start of the LS is handled by vscode-language-client library in an asynchronous way. And first, it tries to restart the process several times by using the ErrorHandler. it detects when connection is closed (java process exited): |
On my side, I saw the notification but I think from a UX point of view I feel that it is not obvious and hidden very shortly. So it can be missed by the user. |
Theia can only report what is done by lifeycle methods. (or connection issues with sidecar) : the underlying framework. The only stuff that could be displayed could be container log or process log but if you expect a red light for VS Code java if java process is not alive, it's not possible by Theia (or VS Code) itself. |
Issues go stale after Mark the issue as fresh with If this issue is safe to close now please do so. Moderators: Add |
Here's what I do:
We need to tell the user that the plugin was not started and give her the possibility to investigate the failure (logs, etc.) Currently, you're just stuck.
Also, when I log into the minishift console using the credentials I use for Che, nothing is visible. I have to log in as a different user (cluster admin?)
Correction: the sidecar container for the Java plugin seems to be visible, but I don't seem to have the ability to inspect the logs or anything from Che. Also, I the container has some cryptic display name that does not identify it as belong it to the Java support plugin
The text was updated successfully, but these errors were encountered: