Use stable PG19 Beta 4 images and refresh reindexed metadata - #8881
Merged
ibrahim halatci (ihalatci) merged 4 commits intoSep 28, 2026
Merged
Conversation
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8881 +/- ##
==========================================
- Coverage 88.76% 88.76% -0.01%
==========================================
Files 290 290
Lines 65102 65132 +30
Branches 8220 8223 +3
==========================================
+ Hits 57790 57816 +26
- Misses 4937 4941 +4
Partials 2375 2375 🚀 New features to boost your workflow:
|
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Onur Tirtir (onurctirtir)
approved these changes
Sep 28, 2026
ibrahim halatci (ihalatci)
deleted the
ihalatci-pg19-beta4-stable-images
branch
September 28, 2026 09:56
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
-vc231ab7MetadataCachepg_dist_nodecreate_viewfailure and the resulting shard-split isolation hangRoot cause
PostgreSQL's vanilla
create_indextest runsREINDEX SCHEMA CONCURRENTLY pg_catalogin parallel withcreate_view. Concurrent reindex replaces Citus catalog indexes incrementally rather than atomically.The initial implementation reset metadata OIDs only when the
pg_dist_objecttable was invalidated. That fixed stalepg_dist_object_pkeyOID16757, but a parallel backend could repopulate a later cached index while reindex was still progressing. CI subsequently failed on stalepg_dist_schema_pkeyOID17321.The final implementation recognizes relcache invalidations for every index OID stored in
MetadataCacheand resets the cached OIDs each time one is replaced. The list covers all 23*IndexIdfields exactly, without catalog lookups inside the relcache callback or resets for unrelated relations.A full metadata reset is unsafe in WAL senders: it invalidates the worker-node cache, which then attempts to scan
pg_dist_nodeinside logical decoding. PostgreSQL rejects that non-catalog scan, shard-split replication workers repeatedly restart, andcreate_distributed_table_concurrentlywaits indefinitely for replication catch-up. WAL senders therefore clear onlyMetadataCache, while ordinary backends retain the full metadata-system reset.Stable image evidence
c231ab76c3c3d0e8e57d61bfecad08fb2d6132ac-vc231ab7extbuilder:19beta4-vc231ab7,exttester:19beta4-vc231ab7,failtester:19beta4-vc231ab7, andpgupgradetester:17.11-18.6-19beta4-vc231ab7Validation
create_viewisolation_create_distributed_table_concurrently: passed six final-candidate runs in 17-20 secondsmulti_1_create_citus_schedule: 38/38 passed, includingmulti_replicate_reference_tableandpg19MetadataCacheData*IndexIdfields covered exactly oncegit diff --check: passedFollow-up to #8870 and citusdata/the-process#250.