2023-05-18: Code suggestions service is down
Customer Impact
Current Status
The code suggestions service has been unable to handle the load as it was enabled widely for all users for a beta test https://about.gitlab.com/blog/2023/05/16/code-suggestions-for-all-during-beta/. This resulted in increased latency and failed requests to the service from 08:50 to 10:00 UTC.
The main cause of the outage was liveness probe failures logs (internal) for the model gateway resulting in most of the pods going into CrashLoopBackOff
state. The pod restarts only exacerbated the issue since we had fewer pods servicing requests.
Two immediate actions were taken to mitigate the issue:
- Increase the replica count from 3 to 6
- Removed the liveness probe.
Corrective action followups
- Even after increasing the replica count, we continue to see liveness probe failures. We are also concerned that since there is no timeout for these requests that they may exhaust threads if they hang gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#101 (closed)
- There are no requests/limits set for this service gitlab-org/modelops/applied-ml/code-suggestions/ai-assist#103 (moved)
- We need a very basic runbook for EOC that we can be used for the beta, with the limited observability we have now https://gitlab.com/gitlab-com/gl-infra/reliability/-/issues/23713
📚 References and helpful links
Recent Events (available internally only):
- Feature Flag Log - Chatops to toggle Feature Flags Documentation
- Infrastructure Configurations
- GCP Events (e.g. host failure)
Deployment Guidance
- Deployments Log | Gitlab.com Latest Updates
- Reach out to Release Managers for S1/S2 incidents to discuss Rollbacks, Hot Patching or speeding up deployments. | Rollback Runbook | Hot Patch Runbook
Use the following links to create related issues to this incident if additional work needs to be completed after it is resolved:
- Corrective action ❙ Infradev
- Incident Review ❙ Infra investigation followup
- Confidential Support contact ❙ QA investigation
Note: In some cases we need to redact information from public view. We only do this in a limited number of documented cases. This might include the summary, timeline or any other bits of information, laid out in out handbook page. Any of this confidential data will be in a linked issue, only visible internally. By default, all information we can share, will be public, in accordance to our transparency value.