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

Cannot backup to SeaweedFS objectstore

Open
#679 1 comment 0 reactions 0 assignees View on GitHub
bug
Dominant language
Go
Stars
191
Forks
72
Avg merge
2d 21h
Merged PRs (30d)
21

Description

When creating ObjectStore CR that points to SeaweedFS s3 objectstore it starts uploading the wal archives, makes a .upload directory, but then I got the error:
`
{"level":"error","ts":"2025-12-16T10:46:23.075022375Z","msg":"Error while handling GRPC request","logging_pod":"postgresql-1","info":{"Server":{"Client":{"Client":{}},"InstanceName":"postgresql-1","SpoolDirectory":"/controller/wal-restore-spool","PGDataPath":"/var/lib/postgresql/data/pgdata","PGWALPath":"/var/lib/postgresql/data/pgdata/pg_wal"},"FullMethod":"/cnpgi.wal.v1.WAL/Archive"},"error":"unexpected failure invoking barman-cloud-wal-archive: exit status 4","stacktrace":"github.com/cloudnative-pg/machinery/pkg/log.(*logger).Error\n\t/go/pkg/mod/github.com/cloudnative-pg/machinery@v0.3.1/pkg/log/log.go:125\ngithub.com/cloudnative-pg/cnpg-i-machinery/pkg/pluginhelper/http.(*Server).Start.logFailedRequestsUnaryServerInterceptor.func2\n\t/go/pkg/mod/github.com/cloudnative-pg/cnpg-i-machinery@v0.4.1/pkg/pluginhelper/http/grpc.go:53\ngoogle.golang.org/grpc.NewServer.chainUnaryServerInterceptors.chainUnaryInterceptors.func1\n\t/go/pkg/mod/google.golang.org/grpc@v1.76.0/server.go:1234\ngithub.com/cloudnative-pg/cnpg-i/pkg/wal._WAL_Archive_Handler\n\t/go/pkg/mod/github.com/cloudnative-pg/cnpg-i@v0.3.0/pkg/wal/wal_grpc.pb.go:196\ngoogle.golang.org/grpc.(*Server).processUnaryRPC\n\t/go/pkg/mod/google.golang.org/grpc@v1.76.0/server.go:1431\ngoogle.golang.org/grpc.(*Server).handleStream\n\t/go/pkg/mod/google.golang.org/grpc@v1.76.0/server.go:1842\ngoogle.golang.org/grpc.(*Server).serveStreams.func2.1\n\t/go/pkg/mod/google.golang.org/grpc@v1.76.0/server.go:1061"}
`

However, with awscli I can reach the bucket and can upload objects

Objectstore definition
`
apiVersion: barmancloud.cnpg.io/v1
kind: ObjectStore
metadata:
name: azure-backup-store
namespace: postgres
spec:
# Base configuration for Barman Cloud to connect to Azure
configuration:
destinationPath: "s3://backups"
endpointURL: "http://seaweedfs-s3.seaweedfs.svc.cluster.local:8333"
s3Credentials:
accessKeyId:
name: aws-creds
key: ACCESS_KEY_ID
secretAccessKey:
name: aws-creds
key: ACCESS_SECRET_KEY
wal:
compression: gzip
data:
jobs: 2
`

Cluster definition:
`
apiVersion: postgresql.cnpg.io/v1
kind: Cluster
metadata:
name: postgresql
namespace: postgres
spec:
instances: 1
storage:
size: 2Gi

plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: true
parameters:
barmanObjectName: azure-backup-store
serverName: postgresql

bootstrap:
initdb:
database: authentik
owner: authentik
secret:
name: authentik-secret

enableSuperuserAccess: true
superuserSecret:
name: pgsuperuser
`

I also tried other options, and all of them worked except for the Barman Cloud Plugin, which drops an error.

Contributor guide

Open the contributing guide

Research direction

Start by reproducing the ObjectStore and Cluster configuration against SeaweedFS, then inspect the barman-cloud-wal-archive failure reported in the WAL Archive request. Done means WAL archives upload successfully to the configured destination without the exit status 4 error.

Written by the indexing model from the issue text.

Assessment

Tech stack
go, postgresql
Domain
backend, databases
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.