Skip to content

release-14.0 is missing five bug fixes that are on main (found during 12.1.14 / 13.2 triage) #8713

Description

While triaging backports for the 12.1.14 patch release, I found the same four bug fixes missing from release-14.0 that were missing from release-12.1 (shipped in 12.1.14 via #8703#8706) and from release-13.2 (#8707, PRs #8709#8712). A fifth, #8465, is missing from all three lines.

Raising this separately because it looks like a cross-branch miss rather than a deliberate 14.x exclusion — and because two of these were explicitly labeled cherry-pick-14, closed, and then never shipped.

Missing commits

Fix main commit Merged to main On main On release-14.0
#8465CREATE EXTENSION IF NOT EXISTS fails for non-owner users (fixes #7091) fde8ceace 2026-02-10
#8561 — crash on writable standby coordinator writing to a coordinator-local shard (fixes #8426) 8b99e078b 2026-05-06
#8556 — segfault in EXPLAIN with LEFT JOIN + correlated subqueries (fixes #8548) a3d5708a6 2026-05-07
#8498 — type mismatch when COLLATE is used with a type cast (fixes #8469) 810e7fbb9 2026-05-22
#8594CleanupRecordExists uses a stale snapshot (shard-cleanup race) c41586cc8 2026-06-03

Why this looks unintentional

Note on methodology: a naive #\d+ grep over commit subjects gives false positives here, because Citus backport subjects use three different forms ((#8700), (Backport PR8692), (Backport PR#8651)). Matching on (?:#|PR#?)(\d{4,5}) and then confirming with a content diff is what produced the list above.

Severity

Four of the five are crash / wrong-result class:

The label queue already flagged two of these for 14.x

Issue State Fixed on main by On release-14.0
#8548 — segfault on EXPLAIN, reported against released Citus 14.0.0 / PG18.1 CLOSED #8556 ❌ not delivered
#8426 — error on insert on secondary worker node CLOSED #8561 ❌ not delivered

Both carry cherry-pick-14 and can have the label cleared once the backports land. (#8470 also carries it, but its fix #8535 is still unmerged upstream, so it stays deferred.)

Backport complexity: lower than 12.1 or 13.2

release-14.0 shares main's PG16/17/18 support range and its pseudoconstant-quals error string byte-for-byte (recursive_planning.c:531-534). So neither of the adaptations the other two lines needed applies here:

  • the 12.1 foreach_declared_ptrforeach_ptr rename — not needed, foreach_declared_ptr exists on 14.0
  • the 13.2 five-line rewrite of subquery_in_where_0.outnot needed, the strings already match

All five cherry-pick cleanly with zero conflicts and zero adaptation; git patch-id --stable is identical to upstream for every one. release-14.0 also has no _N numbered expected-output variants at all, so the PG-version-variant trap that bit the 13.2 backport of #8556 cannot occur here.

Suggested action

Cherry-pick all five onto release-14.0, one PR each. Note that release-14.0 is the 14.x line itself (configure.ac = 14.2.0, default_version = 14.2-1; there is no release-14.1/release-14.2 branch), so these would ship in 14.2.0.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions