2021-05-04: The shared_runner_queues SLI of the ci-runners service (`main` stage) has an apdex violating SLO
Current Status
GitLab.com shared runners are operating normally.
Shared Runners on GitLab.com were significantly delayed due to a combination of an influx of jobs and correlated degraded queries related to that influx for picking up new jobs. Running tools to fix the tables affected and then cleaning up jobs brought the runners back to a normal state.
Summary for CMOC notice / Exec summary:
- Customer Impact: ServiceCI Runners Shared runners on GitLab.com
- Customer Impact Duration: approximately 06:10 UTC - 20:10 (14 hours) - there were periods in this time where runners were in better states, but noting total time.
- Current state: IncidentMitigated
- Root cause: RootCauseSaturation RootCauseMalicious-Traffic
Timeline
View recent production deployment and configuration events (internal only)
All times UTC.
2021-05-04
-
09:53
- @rehab declares incident in Slack. -
15:00
- Larger spike in queue times for CI jobs -
16:50
- Vacuum/Analyze done for two related tables and runners start picking up jobs -
17:00
- further analysis of abusive jobs and cleanup -
20:07
- initial recovery of shared runner apdex -
20:30
- called all clear
source (internal only)
Corrective Actions
Corrective actions should be put here as soon as an incident is mitigated, ensure that all corrective actions mentioned in the notes below are included.
- gitlab-org/gitlab!60942 (merged) - create a partial index to find pending jobs. Should prevent the problem where requests by runner managers to find pending jobs get into a state of timing out and then stop picking up jobs.
- gitlab-org&5909 (closed)
- https://gitlab.com/gitlab-com/gl-infra/infrastructure/-/issues/13277
- https://gitlab.com/gitlab-com/gl-security/security-operations/trust-and-safety/pipeline-validation-service/-/issues/25
- &440 (closed)
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.
Click to expand or collapse the Incident Review section.
Incident Review
Summary
- Service(s) affected:
- Team attribution:
- Time to detection:
- Minutes downtime or degradation:
Metrics
Customer Impact
-
Who was impacted by this incident? (i.e. external customers, internal customers)
- ...
-
What was the customer experience during the incident? (i.e. preventing them from doing X, incorrect display of Y, ...)
- ...
-
How many customers were affected?
- ...
-
If a precise customer impact number is unknown, what is the estimated impact (number and ratio of failed requests, amount of traffic drop, ...)?
- ...
What were the root causes?
- ...
Incident Response Analysis
-
How was the incident detected?
- ...
-
How could detection time be improved?
- ...
-
How was the root cause diagnosed?
- ...
-
How could time to diagnosis be improved?
- ...
-
How did we reach the point where we knew how to mitigate the impact?
- ...
-
How could time to mitigation be improved?
- ...
-
What went well?
- ...
Post Incident Analysis
-
Did we have other events in the past with the same root cause?
- ...
-
Do we have existing backlog items that would've prevented or greatly reduced the impact of this incident?
- ...
-
Was this incident triggered by a change (deployment of code or change to infrastructure)? If yes, link the issue.
- ...
Lessons Learned
- ...
Guidelines
Resources
- If the Situation Zoom room was utilised, recording will be automatically uploaded to Incident room Google Drive folder (private)