Skip to content

Commit 54c60e3

Browse files
davidjarzebowskilecoursenitsJiaqirachaelrenk
authored
Document a known issue with MySQL when upgrading to GHES 3.9 (github#39751)
Co-authored-by: Laura Coursen <[email protected]> Co-authored-by: Jiaqi Liu <[email protected]> Co-authored-by: Rachael Rose Renk <[email protected]>
1 parent aab05b6 commit 54c60e3

File tree

26 files changed

+129
-7
lines changed

26 files changed

+129
-7
lines changed

content/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/known-issues-with-upgrades-to-your-instance.md

Lines changed: 74 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,4 +108,78 @@ Finally, if you're willing to help {% data variables.product.company_short %} u
108108

109109
The data you submit helps {% data variables.product.company_short %} continue to provide a performant product, but {% data variables.product.company_short %} does not guarantee any additional mitigation steps or changes to the product as a result of the data you provide.
110110

111+
## MySQL does not start after upgrade to {% data variables.product.prodname_ghe_server %} 3.9
112+
113+
During an upgrade to {% data variables.product.prodname_ghe_server %} 3.9, if MySQL did not gracefully shut down during the shutdown of the {% data variables.product.prodname_ghe_server %} 3.7 or 3.8 instance, MySQL will attempt to go through crash recovery when the {% data variables.product.prodname_ghe_server %} 3.9 instance starts up. Since {% data variables.product.prodname_ghe_server %} 3.7 and 3.8 uses MySQL 5.7 and {% data variables.product.prodname_ghe_server %} 3.9 has been upgraded to MySQL 8.0, MySQL will not be able to complete crash recovery.
114+
115+
If you experience this problem, the following error will be in the mysql error log (`/var/log/mysql/mysql.err`):
116+
117+
```shell copy
118+
[ERROR] [MY-012526] [InnoDB] Upgrade after a crash is not supported. This redo log was created with MySQL 5.7.40. Please follow the instructions at http://dev.mysql.com/doc/refman/8.0/en/upgrading.html
119+
```
120+
121+
### Avoiding this issue
122+
123+
To avoid this issue, update the nomad timeout for MySQL before starting an upgrade to {% data variables.product.prodname_ghe_server %} 3.9
124+
125+
1. Put your instance into maintenance mode:
126+
127+
```shell copy
128+
ghe-maintenance -s
129+
```
130+
1. Update consul template for nomad:
131+
132+
```shell copy
133+
sudo sed -i.bak '/kill_signal/i \ kill_timeout = "10m"' /etc/consul-templates/etc/nomad-jobs/mysql/mysql.hcl.ctmpl
134+
```
135+
1. Render consul template for nomad:
136+
137+
```shell copy
138+
sudo consul-template -once -template /etc/consul-templates/etc/nomad-jobs/mysql/mysql.hcl.ctmpl:/etc/nomad-jobs/mysql/mysql.hcl
139+
```
140+
1. Verify current `kill_timeout` setting:
141+
142+
```shell copy
143+
nomad job inspect mysql | grep KillTimeout
144+
```
145+
146+
Expected response:
147+
148+
```shell copy
149+
"KillTimeout": 5000000000
150+
```
151+
1. Stop MySQL:
152+
153+
```shell copy
154+
nomad job stop mysql
155+
```
156+
1. Run new MySQL job:
157+
158+
```shell copy
159+
nomad job run /etc/nomad-jobs/mysql/mysql.hcl
160+
```
161+
1. Verify kill_timeout has been updated:
162+
163+
```shell copy
164+
nomad job inspect mysql | grep KillTimeout
165+
```
166+
Expected response:
167+
168+
```shell copy
169+
"KillTimeout": 600000000000,
170+
```
171+
1. Take instance out of maintenance mode:
172+
173+
```shell copy
174+
ghe-maintenance -u
175+
```
176+
177+
Now that the nomad timeout for MySQL has been updated you can upgrade your {% data variables.product.prodname_ghe_server %} instance to 3.9.
178+
179+
### Mitigating a failed restart of MySQL
180+
181+
If you're affected by this problem, restore your {% data variables.product.prodname_ghe_server %} instance to the state it was in prior to the upgrade attempt, and then follow the steps from the previous section.
182+
183+
For more information about restoring from a failed upgrade, see "[AUTOTITLE](/admin/enterprise-management/updating-the-virtual-machine-and-physical-resources/upgrading-github-enterprise-server#restoring-from-a-failed-upgrade)."
184+
111185
{% endif %}

data/release-notes/enterprise-server/3-7/0.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -322,6 +322,8 @@ sections:
322322
- 'The maximum number of self-hosted runners in a runner group is limited to 10,000. Previously, there was no limit. [Updated: 2023-05-24]'
323323

324324
known_issues:
325+
- |
326+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
325327
- |
326328
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
327329
- On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user.
@@ -378,4 +380,4 @@ sections:
378380

379381
# https://github.com/github/releases/issues/2042
380382
- |
381-
"[Features](#3.7.0-features)" incorrectly indicated that users of the GitHub Advisory Database can see advisories for Elixir, Erlang's Hex package manager, and more. This feature is unavailable in GitHub Enterprise Server 3.7, and will be available in a future release. [Updated 2023-06-01]
383+
"[Features](#3.7.0-features)" incorrectly indicated that users of the GitHub Advisory Database can see advisories for Elixir, Erlang's Hex package manager, and more. This feature is unavailable in GitHub Enterprise Server 3.7, and will be available in a future release. [Updated 2023-06-01]

data/release-notes/enterprise-server/3-7/1.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ sections:
2626
- If a site administrator has not yet configured GitHub Actions for the instance, the UI for setting up code scanning will prompt the user to configure GitHub Actions.
2727
- To avoid failing domain verification due to the 63-character limit enforced by DNS providers for DNS records, the GitHub-generated `TXT` record to verify domain ownership is now limited to 63 characters.
2828
known_issues:
29+
- |
30+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
2931
- |
3032
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
3133
- On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user.

data/release-notes/enterprise-server/3-7/10.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ sections:
2424
- |
2525
People with administrative SSH access who generate a support bundle using the `ghe-support-bundle` or `ghe-cluster-support-bundle` utilities can specify the period of time to gather data with `-p` or `--period` without using spaces or quotes. For example, in addition to `'-p 5 days'` or `-p '4 days 10 hours'`, `-p 5days` or `-p 4days10hours` are valid.
2626
known_issues:
27+
- |
28+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
2729
- |
2830
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
2931
- |

data/release-notes/enterprise-server/3-7/11.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@ sections:
1212
changes:
1313
- People with administrative SSH access to an instance can configure the maximum memory usage in gigabytes for Redis using `ghe-config redis.max-memory-gb VALUE`.
1414
known_issues:
15+
- |
16+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
1517
- |
1618
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
1719
- |

data/release-notes/enterprise-server/3-7/12.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ sections:
1313
changes:
1414
- If a configuration runs fails due to Elasticsearch errors, `ghe-config-apply` displays a more actionable error message.
1515
known_issues:
16+
- |
17+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
1618
- |
1719
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
1820
- |

data/release-notes/enterprise-server/3-7/13.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,8 @@ sections:
5656
- |
5757
The Management Console displays a warning about unexpected consequences that may result from modification of the instance's hostname after initial configuration.
5858
known_issues:
59+
- |
60+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
5961
- |
6062
Custom firewall rules are removed during the upgrade process.
6163
- |

data/release-notes/enterprise-server/3-7/2.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,8 @@ sections:
2626
- A user's list of recently accessed repositories no longer includes deleted repositories.
2727
- '{% data reusables.release-notes.scim-custom-mappings-supported-change %}'
2828
known_issues:
29+
- |
30+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
2931
- |
3032
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
3133
- On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user.

data/release-notes/enterprise-server/3-7/3.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,8 @@ sections:
2222
- The performance of configuration runs started with `ghe-config-apply` has been improved.
2323
- When exporting account data, backing up a repository, or performing a migration, the link to a repository archive now expires after 1 hour. Previously the archive link expired after 5 minutes.
2424
known_issues:
25+
- |
26+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
2527
- |
2628
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
2729
- On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user.

data/release-notes/enterprise-server/3-7/4.yml

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ sections:
44
- |
55
{% data reusables.release-notes.2023-01-git-vulnerabilities %}
66
known_issues:
7+
- |
8+
{% data reusables.release-notes.upgrade-mysql8-cannot-start-up %}
79
- |
810
{% data reusables.release-notes.enterprise-backup-utils-encryption-keys %}
911
- On a freshly set up {% data variables.product.prodname_ghe_server %} instance without any users, an attacker could create the first admin user.
@@ -18,4 +20,4 @@ sections:
1820
- '{% data reusables.release-notes.babeld-max-threads-performance-issue %}'
1921
- '{% data reusables.release-notes.git-push-known-issue %}'
2022
- '{% data reusables.release-notes.replication-commands-in-maintenance-mode-known-issue %}'
21-
- '{% data reusables.release-notes.slow-deleted-repos-migration-known-issue %}'
23+
- '{% data reusables.release-notes.slow-deleted-repos-migration-known-issue %}'

0 commit comments

Comments
 (0)