Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-07-17 21:09:20 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2020-07-17 21:09:20 +0300
commitec72da1833d94bb1556af94193ccf2a93c9cb939 (patch)
tree6227669a11aaf8370186a7aa6591d5fa9d853bb0 /doc/development/multi_version_compatibility.md
parent283fb71e02992b6687e3264d53bbc718b7567109 (diff)
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'doc/development/multi_version_compatibility.md')
-rw-r--r--doc/development/multi_version_compatibility.md15
1 files changed, 15 insertions, 0 deletions
diff --git a/doc/development/multi_version_compatibility.md b/doc/development/multi_version_compatibility.md
index aedd5c1ffb7..ce6cc6610f4 100644
--- a/doc/development/multi_version_compatibility.md
+++ b/doc/development/multi_version_compatibility.md
@@ -60,3 +60,18 @@ We added a `NOT NULL` constraint to a column and marked it as a `NOT VALID` cons
But even with that, this was still a problem because the old servers were still inserting new rows with null values.
For more information, see [the relevant issue](https://gitlab.com/gitlab-com/gl-infra/production/-/issues/1944).
+
+### Downtime on release features between canary and production deployment
+
+To address the issue, we added a new column to an existing table with a `NOT NULL` constraint without
+specifying a default value. In other words, this requires the application to set a value to the column.
+
+The older version of the application didn't set the `NOT NULL` constraint since the entity/concept didn't
+exist before.
+
+The problem starts right after the canary deployment is complete. At that moment,
+the database migration (to add the column) has successfully run and canary instance starts using
+the new application code, hence QA was successful. Unfortunately, the production
+instance still uses the older code, so it started failing to insert a new release entry.
+
+For more information, see [this issue related to the Releases API](https://gitlab.com/gitlab-org/gitlab-foss/-/issues/64151).