cloudnative-pg / cloudnative-pg/plugin-barman-cloud

[BUG]: Restore breaks when increasing wal.maxParallel to 8.

Open
#516 4 comments 5 reactions 0 assignees View on GitHub
bug
Dominant language
Go
Stars
191
Forks
72
Avg merge
2d 21h
Merged PRs (30d)
21

Description

**Environment**

Kubernetes 1.32
CNPG Version: 1.26.1
Plugin Barman Cloud Version: 0.6.0

**Observation:**

We verify our CNPG Backups nightly by restoring them. Thats when we noticed that most backups can not be restored. When decreasing wal.maxParallel from 8 to 1 in the objectstore it works as expected again. Even previously failed attempts to verify a backup work again.

Sample objectstore configuration:

```
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: fah-db-backup
namespace: kimi
spec:
configuration:
data:
compression: gzip
destinationPath: s3://XXX/db
endpointURL: https://s3.eu-central-1.ionoscloud.com
historyTags:
backupRetentionPolicy: keep
s3Credentials:
accessKeyId:
key: accessKey
name: kimi-s3-backup
secretAccessKey:
key: secretKey
name: kimi-s3-backup
tags:
backupRetentionPolicy: expire
wal:
compression: gzip
maxParallel: 1
instanceSidecarConfiguration:
env:
- name: AWS_REQUEST_CHECKSUM_CALCULATION
value: when_required
- name: AWS_RESPONSE_CHECKSUM_VALIDATION
value: when_required
retentionPolicyIntervalSeconds: 1800
retentionPolicy: 30d
```

Here an example of trying to restore a backup:

```
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
labels:
cnpg-backup-verification: "true"
original-cluster: fah-db
name: fah-db-verify-post-barman
namespace: kimi
spec:
storage:
size: 10Gi
bootstrap:
recovery:
database: kf-fah
owner: kf-fah
secret:
name: fah-db-owner-secret
source: fah-db
env:
- name: AWS_REQUEST_CHECKSUM_CALCULATION
value: when_required
- name: AWS_RESPONSE_CHECKSUM_VALIDATION
value: when_required
externalClusters:
- name: fah-db
plugin:
enabled: true
isWALArchiver: false
name: barman-cloud.cloudnative-pg.io
parameters:
barmanObjectName: fah-db-backup
serverName: fah-db
```

Attached is the complete log of the plugin-barman-cloud sidecar in the CNPG full-recovery job. The critical problem seems to be "end of wal reached" which occurs when restoring with maxParallel 8 but not with maxParallel 1.

[plugin_barman_cloud.log](https://github.com/user-attachments/files/22270128/plugin_barman_cloud.log)

**Expectation**

Restore works independently of the maxParallel setting.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the restore with the provided ObjectStore and Cluster configurations, then inspect the plugin-barman-cloud sidecar log around the "end of wal reached" error. Trace the restore path handling wal.maxParallel and compare behavior at 1 and 8; done means backup restoration succeeds independently of that setting.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, kubernetes, postgresql
Domain
databases, infrastructure
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
50/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.