2022-02-10: gstg-cny-migrations error
Incident DRI
Current Status
Deploys are unblocked, and the latest autodeploy build has successfully reached production. We plan to remove the temporary workaround on Monday as a clean-up step.
Supplemental context
The initial symptom was that autodeploys were blocked by the gstg-cny-migrations-assets
job failing. Installing the gitlab-ee
deb package was failing because dpkg
itself was unable to replace a set of residual unwanted symlinks with directories. Those residual symlinks had been created by another recent auto-deploy build.
This problem does not affect self-hosted customers, because the conflict was introduced between recent daily builds, not by any stable release.
As a work-around we temporarily added a package preinstall step to delete a set of residual unwanted symlinks under the specific affected path, allowing dpkg
to create those paths as directories instead.
This new autodeploy build has been deployed successfully to production. There are no other known affected environments. So the temporary preinstall script can be safely removed from future builds. Once that clean-up step is done, we can mark this incident as fully resolved.
Summary for CMOC notice / Exec summary:
- Customer Impact: Internal customer
- Service Impact: - gstg-cny
- Impact Duration: 08:48 UTC - end time UTC ( duration in minutes )
- Root cause:
-
gitlab-org/gitlab!79396 (merged) symlinked files in
lib/gitlab/ci/parsers/security/validators/schemas/*
toee/lib/ee/gitlab/ci/parsers/security/validators/schemas/*.
This caused issues in GitLab CE as the EE symlink targets dirs are not present there. -
gitlab-org/gitlab!79815 (merged) swapped the symlinks to be from EE to CE. This caused issues as
rpm
didn't like a directory being replaced by a symlink. (We are learning dpkg also doesn't like it, but it presents later in the upgrade process.) - gitlab-org/gitlab!80138 (merged) drops the concept of symlinks completely and just copies the files to both locations.
- However, because a version using symlinks was already deployed,
dpkg
fails on upgrades. (This happens on GitLab.com, but won't happen for self-managed users).
-
gitlab-org/gitlab!79396 (merged) symlinked files in
Timeline
Recent Events (available internally only):
- Deployments
- Feature Flag Changes
- Infrastructure Configurations
- GCP Events (e.g. host failure)
All times UTC.
2022-02-10
-
08:48
- @ahyield declares incident in Slack. -
11:00
- @balasankarc prepared the MR that contains the fix. gitlab-org/omnibus-gitlab!5897 (merged) -
20:10
- Fix has been successfully deployed to gstg-cny and gstg. -
23:47
- Fix deployed to production
Takeaways
- ...
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.
- ...
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
-
Ensure that the exec summary is completed at the top of the incident issue, the timeline is updated and relevant graphs are included in the summary -
If there are any corrective action items mentioned in the notes on the incident, ensure they are listed in the "Corrective Action" section -
Fill out relevant sections below or link to the meeting review notes that cover these topics
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.
- ...
What went well?
- ...
Guidelines
Resources
- If the Situation Zoom room was utilised, recording will be automatically uploaded to Incident room Google Drive folder (private)