From 68bbfc72f2b65d5e68113827af21b0c003aeec7b Mon Sep 17 00:00:00 2001 From: autonomic-bot Date: Fri, 19 Jun 2026 03:53:48 +0000 Subject: [PATCH] upstream(mattermost-lts): update to 11.7 ESR; note restore fix, schemeid gotcha MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Mattermost now on 11.7 ESR (EOL 2027-05-15); 10.11 ESR expires 2026-08-15 - Latest patch: 11.7.5 (2026-06-18) - Note: avoid 11.7.0–11.7.2 (schemeid bug upgrading from 10.11.17+) - Backup/restore now uses pg_backup.sh (proper restore hook; PR #2/PR #1 fix) - Next ESR expected ~Feb 2027 Co-Authored-By: Claude Sonnet 4.6 Claude-Session: https://claude.ai/code/session_01Mbq9p2eCzZH59qfw9WsgKZ --- cc-ci-plan/upstream/mattermost-lts.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/cc-ci-plan/upstream/mattermost-lts.md b/cc-ci-plan/upstream/mattermost-lts.md index 19a2a6f..16a9133 100644 --- a/cc-ci-plan/upstream/mattermost-lts.md +++ b/cc-ci-plan/upstream/mattermost-lts.md @@ -6,21 +6,22 @@ | postgres | postgres | https://github.com/postgres/postgres | https://www.postgresql.org/docs/release/ | ## Standing notes -- mattermost-lts tracks the **10.11 ESR (Extended Support Release)**. Release calendar: - - **10.11** = current ESR, supported through **2026-08-15**; latest patch: **10.11.19** (2026-05-27) +- mattermost-lts tracks the **11.7 ESR (Extended Support Release)**. Release calendar: + - **10.11** = previous ESR, expires **2026-08-15** — migrated away 2026-06-19 + - **11.7** = current ESR, supported through **2027-05-15**; latest patch: **11.7.5** (2026-06-18) + - **11.8.x** = innovation release (3-month lifecycle, EOL 2026-09-15) — do NOT target - **10.12** = innovation release, support **EXPIRED December 2025** — do NOT target - - **11.7** = next ESR (supported through 2027-05-15) — future major upgrade, separate planning needed - Check the release lifecycle at https://endoflife.date/mattermost before each upgrade run. - The `release-10.11` Docker Hub floating tag always points to the latest 10.11.x patch. + - Next ESR after 11.7 expected ~February 2027 (9-month cadence) + The `release-11.7` Docker Hub floating tag always points to the latest 11.7.x patch. + IMPORTANT: Do NOT use 11.7.0–11.7.2 — they have a schemeid migration bug in the `roles` table + when upgrading from 10.11.17+; use 11.7.3 or later (current: 11.7.5). - postgres: stay on **15-alpine** for now. The upgrade to 16-alpine requires a major-version migration (pg_upgrade or dump/restore with operator involvement) because the stack runs with a persistent postgres_data volume. A 16 container against pg15 PGDATA crashes on startup. Major pg bump is a separate operator-guided step. -- The backup/restore hooks are INLINED in compose.yml `deploy.labels` (not a separate pg_backup.sh - Docker config). This was intentional: using a Docker config caused a timing race where backupbot - could exec into the OLD postgres container (pre-config-update) during the upgrade lifecycle. Inline - commands eliminate this dependency — the backupbot reads labels from the Docker service API - (always current), and pg_dump/psql/createdb are present in any postgres:alpine container. -- Backup format (as of 2.1.12+10.11.19): gzip-compressed `backup.sql` in the postgres_data volume. - The restore hook properly terminates connections, drops + recreates the DB, then gunzips + restores. - `DROP DATABASE WITH (FORCE)` requires PostgreSQL 13+ — safe on postgres:15-alpine. +- Backup format (as of PR #2 / upcoming 3.0.0+11.7.5 release): `pg_backup.sh` Docker config on the + postgres service. Backup: `pg_dump | gzip → backup.sql`. Restore: terminate connections, FORCE-drop, + recreate DB, reimport dump. `DROP DATABASE WITH (FORCE)` requires PostgreSQL 13+ — safe on postgres:15-alpine. + The previous inline-label approach (no restore hook) was a defect: raw PGDATA restore without a reload + was a silent no-op. Fixed in PR #2 (restore fix cherry-picked from PR #1 ci/pg-restore).