Skip to content

Resolve Issue With Missing Login Button - Server Component Pod #8927

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

Closed
jimmybrancaccio opened this issue Mar 22, 2022 · 3 comments · Fixed by #9046
Closed

Resolve Issue With Missing Login Button - Server Component Pod #8927

jimmybrancaccio opened this issue Mar 22, 2022 · 3 comments · Fixed by #9046
Assignees
Labels
team: delivery Issue belongs to the self-hosted team team: webapp Issue belongs to the WebApp team type: bug Something isn't working

Comments

@jimmybrancaccio
Copy link

Bug description

It appears there's an odd timing issue with the server component pod that causes the Login button on the main page to not display properly.

image0

Restarting the server pod seems to resolve the issue:

kubectl delete pod -n <namespace> -l component=server

This was originally reported in Discord:

cc. @mrsimonemms

Steps to reproduce

I haven't had a chance to replicate this myself so I am not sure exactly what steps are required here or what build this happens in or started happening in. Simon may be able to fill out this section better, or advise me what I can put here for paper trail purposes.

Workspace affected

No response

Expected behavior

I would expect that after I log out from my Gitpod instance that I am shown a login button or link on the page I am redirected too so I can log back in.

Example repository

No response

Anything else?

No response

@mrsimonemms
Copy link
Contributor

mrsimonemms commented Mar 24, 2022

My guess with this is that either the dashboard or the server startup occurs in an unknown order meaning that the service that the login button requires isn't available at runtime.

This should be a (fairly) simple fix:

  1. identify the service - would require looking at the if/else that loads the login buttons on the dashboard and what makes them display
  2. put a readinessProbe in the deployment that requires it - if it's not ready, it restarts the pod.

We must be careful that we don't end up in a CrashLoopBackOff situation if we have zero providers configured - this will happen if the user doesn't configure any authProviders in the Installer config.yaml

For testing purposes, I think you can get back into this state by running kubectl delete pod -n <namespace> -l app=gitpod as the pods will start in the same (random) order as when first deployed.

@mrsimonemms mrsimonemms self-assigned this Mar 30, 2022
@mrsimonemms mrsimonemms moved this from 🧊Backlog to ⚒In Progress in 🚚 Security, Infrastructure, and Delivery Team (SID) Mar 30, 2022
@mrsimonemms mrsimonemms removed their assignment Mar 30, 2022
@mrsimonemms mrsimonemms added the team: webapp Issue belongs to the WebApp team label Mar 30, 2022
@mrsimonemms
Copy link
Contributor

This actually isn't as simple as I'd hoped. I don't actually think it's a readiness problem and it's actually that the web socket doesn't get updated when you add a new Git integration via the UI.

As a test, I just added a self-hosted GitLab instance via the integration page in the dashboard settings, logged out and there was no option to log in via that GitLab instance. As soon as I restarted the server, it came up.

I think this is a bug that resides with @gitpod-io/engineering-webapp

@giovannirossini
Copy link

As you described above, restarting the server made the button appear.

@AlexTugarev AlexTugarev self-assigned this Mar 31, 2022
Repository owner moved this from ⚒In Progress to ✨Done in 🚚 Security, Infrastructure, and Delivery Team (SID) Mar 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
team: delivery Issue belongs to the self-hosted team team: webapp Issue belongs to the WebApp team type: bug Something isn't working
Projects
No open projects
Development

Successfully merging a pull request may close this issue.

5 participants