Skip to content

Support mixed Citus 12/13/14 versions during pgmongo upgrades - #8853

Closed
DmitriMelnikov wants to merge 3 commits into
release-14.0from
users/dmmelnik/support12and13and14majorVersionsOnSameCluster
Closed

DmitriMelnikov wants to merge 3 commits into
release-14.0from
users/dmmelnik/support12and13and14majorVersionsOnSameCluster

Conversation

@DmitriMelnikov

@DmitriMelnikov DmitriMelnikov commented Sep 18, 2026

Copy link
Copy Markdown

Summary

  • allow a Citus 14 coordinator to communicate with Citus 12/13 workers during a rolling pgmongo upgrade
  • retain compatibility with the older worker metadata, internal-function, partial-aggregate, and EXPLAIN ANALYZE shapes
  • permit the temporary post-promotion state where Citus 14 binaries are loaded while the local catalog is still on Citus 12, until the catalog upgrade completes

Motivation

pgmongo upgrades nodes incrementally. During that window, the coordinator can be on Citus 14 while workers remain on Citus 12/13. A promoted standby can also temporarily run Citus 14 binaries with a Citus 12 catalog before the local ALTER EXTENSION citus UPDATE convergence step. Stock version checks and newer wire/catalog assumptions make those transitional states unavailable.

Validation

  • built and installed the changes with PostgreSQL 16 and Citus 14
  • validated a mixed cluster with a Citus 14 coordinator and Citus 12.1 workers
  • validated metadata synchronization and distributed EXPLAIN ANALYZE compatibility
  • validated promotion with Citus 14 binaries over a Citus 12.1 catalog, followed by successful ALTER EXTENSION citus UPDATE

Release targeting

Published releases currently include v14.1.0 and v14.2.0. The release-14.0 branch has already advanced to 14.3.0, so merging this PR there targets the future 14.3 release.

If this support is also required in the already-published 14.2 line, it must be shipped through a 14.2 patch release (for example, v14.2.1) from a dedicated maintenance branch or via the maintainers' chosen backport process; an existing release tag cannot be changed.

Dmitri Melnikov added 3 commits July 29, 2026 16:31
…e when gateway routes traffic to the nodes on citus 14 binary with citus 12 catalog. To avoid unavailability at that period we lift the version checks
@DmitriMelnikov

Copy link
Copy Markdown
Author

Closing because this targets the future 14.3 development branch and is unrelated to the requested 14.2-only backport of #8676.

@codecov

codecov Bot commented Sep 18, 2026

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 74.07407% with 7 lines in your changes missing coverage. Please review.
✅ Project coverage is 88.54%. Comparing base (fe25f68) to head (befcd4b).
⚠️ Report is 50 commits behind head on release-14.0.

Additional details and impacted files
@@               Coverage Diff                @@
##           release-14.0    #8853      +/-   ##
================================================
- Coverage         88.72%   88.54%   -0.19%     
================================================
  Files               287      289       +2     
  Lines             63266    64560    +1294     
  Branches           7931     8118     +187     
================================================
+ Hits              56133    57163    +1030     
- Misses             4864     5049     +185     
- Partials           2269     2348      +79     
🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant