Skip to content
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

Improve che.isCheServerReady() method (flapping route/ingress issue) #145

Closed
rhopp opened this issue Jun 7, 2019 · 4 comments
Closed

Improve che.isCheServerReady() method (flapping route/ingress issue) #145

rhopp opened this issue Jun 7, 2019 · 4 comments
Labels
enhancement New feature or request

Comments

@rhopp
Copy link
Contributor

rhopp commented Jun 7, 2019

It turns out, that once k8s ingress is created it could be flapping between two states for some time -

  • correctly redirecting to the service
  • returning 503

This is causing some problems in our Happy Path test scenario:
We first start server by chectl server:start and then (pretty immediately) we are starting workspaces by chectl workspace:start --devfile=<devfile>.
What's happening?

  • chectl server:start starts the server. In the step Che status check it calls <cheurl>/api/system/state to verify che server is up and running. This succeeds
  • The same call (<cheurl>/api/system/state) is part of pre-flight checks for workspace:start command, but because the route/ingress flapping issue this fails.

We are implementing a workaround in our tests to overcome this issue (calling the ingress endpoint every second and waiting for multiple subsequent successful return codes), but we were thinking if it wouldn't be better to implement this logic into che.isCheServerReady() directly.

WDYT @l0rd @benoitf ?

@rhopp
Copy link
Contributor Author

rhopp commented Jun 7, 2019

Nice description of the flapping issue is here: redhat-developer/rh-che#479 (comment)
At that time we were blaming openshift starter clusters, but it seems this problem is more general (appearing also in k8s - minikube)

@ibuziuk
Copy link
Contributor

ibuziuk commented Jun 7, 2019

looks like there should be smth. similar to CHE_WORKSPACE_SERVER_PING__SUCCESS__THRESHOLD , but for chectl Che server ingress / route (configurable property, with number of sequential successful pings to server after which it is treated as available)

@benoitf
Copy link
Collaborator

benoitf commented Jun 7, 2019

@rhopp yes we could introduce a polling check parameter to increase the rate on calls on remote API.
Like wrapping axios calls to a polling-aware call.

@benoitf
Copy link
Collaborator

benoitf commented Sep 9, 2019

Kamino closed and cloned this issue to eclipse/che

@benoitf benoitf closed this as completed Sep 9, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants