Skip to content

test(e2e): cover parallel WAL restore via the plugin#978

Merged
mnencia merged 5 commits into
mainfrom
dev/10954
Jul 9, 2026
Merged

test(e2e): cover parallel WAL restore via the plugin#978
mnencia merged 5 commits into
mainfrom
dev/10954

Conversation

@armru

@armru armru commented Jun 22, 2026

Copy link
Copy Markdown
Member

Recreate the parallel WAL-restore coverage in the plugin repo: a 2-instance cluster archiving to minio with wal.maxParallel=3, forged WAL segments on the object store, and assertions on the plugin's prefetch/spool/end-of-wal-stream state machine driven through /controller/manager wal-restore on the standby.

Part of cloudnative-pg/cloudnative-pg#10954.

@armru armru requested a review from a team as a code owner June 22, 2026 15:58
@dosubot dosubot Bot added the size:XS This PR changes 0-9 lines, ignoring generated files. label Jun 22, 2026
@dosubot dosubot Bot added the lgtm This PR has been approved by a maintainer label Jun 23, 2026
armru and others added 5 commits July 9, 2026 11:00
Recreate the parallel WAL-restore coverage in the plugin repo: a 2-instance
cluster archiving to minio with wal.maxParallel=3, forged WAL segments on the
object store, and assertions on the plugin's prefetch/spool/end-of-wal-stream
state machine driven through `/controller/manager wal-restore` on the standby.

Part of cloudnative-pg/cloudnative-pg#10954.

Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
If pod-1 is not the primary we'd fail anyway because a timeline
bump would make all assertions about the walLogDir fail.
Also there's no reason why there should have been a switchover,
so we should not hide a failure if that happens.

Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
Every other e2e fixture pins its image by digest with a companion
Version comment; the s3-client image was the only one still pinned by
a mutable tag.

Note this doesn't yet restore renovate parity with those fixtures:
renovate.json5's ignorePaths still excludes anything under
test/e2e/internal/tests/**, which is where every Ginkgo test package in
this suite (including this one) lives, so the digest won't be bumped
automatically until that gap is closed separately. The digest pin is
still worth having on its own for reproducibility.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Assert the actual exit code on the end-of-wal-stream fast-fail path
instead of just HaveOccurred(), which would pass for any error. Also
correct a comment claiming ExecuteInContainer folds command output
into the returned error; it only carries the exit code, so forging a
WAL segment fails with no indication of the underlying aws CLI error.
Drop an unnecessary var declaration and note the real bound on the
forged segment numbering.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
@mnencia mnencia merged commit 21aadbf into main Jul 9, 2026
8 checks passed
@mnencia mnencia deleted the dev/10954 branch July 9, 2026 09:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

lgtm This PR has been approved by a maintainer size:XS This PR changes 0-9 lines, ignoring generated files.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants