fix(walrestore): use timeline-aware barman-cloud end-of-WAL markers#11133
fix(walrestore): use timeline-aware barman-cloud end-of-WAL markers#11133ardentperf wants to merge 3 commits into
Conversation
|
❗ By default, the pull request is configured to backport to all release branches.
|
|
Warning Linked issue missing. Reference one in the PR body using a keyword (Closes / Fixes / Resolves / Refs / See) followed by Alternatively, apply the |
|
👍 LGTM. This looks safe to me and could fix a lot of issues 🤔 . |
Update in-tree `wal-restore` to use the new `barman-cloud` restorer APIs, resolving a bug that can cause replicas to enter a broken state that CNPG cant recover from. Local marker naming, WAL timeline parsing, and restore-result filtering policy now lives in `github.com/cloudnative-pg/barman-cloud/pkg/restorer`. depends on cloudnative-pg/barman-cloud#277 Signed-off-by: Jeremy Schneider <schneider@ardentperf.com>
…e-pg#277 Point barman-cloud at the fork branch behind cloudnative-pg/barman-cloud#277 so this PR builds and CI can run, and allow the replace directive in the linter configuration. Both changes must be reverted in favor of an upstream barman-cloud release when merging. Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
|
/test |
|
@armru, here's the link to the E2E on CNPG workflow run: https://github.com/cloudnative-pg/cloudnative-pg/actions/runs/28954401725 |
|
/test |
|
@armru, here's the link to the E2E on CNPG workflow run: https://github.com/cloudnative-pg/cloudnative-pg/actions/runs/29002285379 |
The tests directory is a separate Go module, and replace directives are only honored from the main module, so the fork replace in the root go.mod does not apply when the e2e suite compiles the operator packages. Mirror it in tests/go.mod so vet and the e2e build resolve the barman-cloud fork too. To be reverted together with the root replace once cloudnative-pg/barman-cloud#277 is merged and released. Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
|
/test |
|
@armru, here's the link to the E2E on CNPG workflow run: https://github.com/cloudnative-pg/cloudnative-pg/actions/runs/29005484149 |
A global end-of-WAL marker can be set by a parent-timeline prefetch miss and then consumed by a child-timeline restore request. In snapshot-restored replica flows, that can cause PostgreSQL to miss valid child-timeline WAL and replay wrong parent-timeline bytes. Reference cloudnative-pg/barman-cloud#276
Update in-tree
wal-restoreto use the newbarman-cloudrestorer APIs:ConsumeEndOfWALStreamForWALSetEndOfWALStreamFromResultsDepends on cloudnative-pg/barman-cloud#277