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 5 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 🤔 . |
|
/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 |
|
/test |
|
@armru, here's the link to the E2E on CNPG workflow run: https://github.com/cloudnative-pg/cloudnative-pg/actions/runs/29005484149 |
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>
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>
The fork branch is based on barman-cloud main, which adds the restoreAdditionalCommandArgs field to the barman object store API that is not part of the released v0.5.1, so the generated Cluster CRD gains that field. The change is purely additive and stays valid once the dependency moves to the next upstream barman-cloud release. Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
|
Hello @ardentperf I tried to run e2e test suite but I see consistent failing for
|
…g#277 Point the fork replace at 1953fc7, the original commit proposed in cloudnative-pg/barman-cloud#277, instead of the branch head that also carries a follow-up refactor. This keeps the end-to-end investigation running against the unmodified original change. The generated CRDs are unaffected since the follow-up only touched the restorer internals. 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/29016380587 |
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