cloudnative-pg / cloudnative-pg/plugin-barman-cloud
[Bug] Plugins are always used to archive WAL files if they have the capability
- Dominant language
- Go
- Stars
- 191
- Forks
- 72
- Avg merge
- 2d 21h
- Merged PRs (30d)
- 21
Description
`isWALArchiver` is ignored and [plugins are always used to archive WAL files](https://github.com/cloudnative-pg/cloudnative-pg/blob/3f2626d709c24ffdb3fb325e2fb09861d816467c/pkg/management/postgres/archiver/archiver.go#L298) if they have the capability to do it.
Given the following plugins stanza:
```yaml
plugins:
- name: barman-cloud.cloudnative-pg.io
enabled: true
isWALArchiver: false
parameters:
serverName: cnpg-default
barmanObjectName: cnpg-default-barman
```
You would expect WAL not to be archived using this plugin. However, there is no filtering in the [archiveWALViaPlugins](https://github.com/cloudnative-pg/cloudnative-pg/blob/3f2626d709c24ffdb3fb325e2fb09861d816467c/pkg/management/postgres/archiver/archiver.go#L277). It always archives with plugins that support WAL archiving.
The only cases where it won't archive WAL are:
1. if you specify a plugin as the WAL archiver and it doesn't have that capability.
2. you don't specify any plugins
Contributor guide
Research direction
Start in pkg/management/postgres/archiver/archiver.go, especially archiveWALViaPlugins and the handling of isWALArchiver. Reproduce the YAML case with isWALArchiver: false and verify that WAL is not archived through that plugin; done means the explicit setting is respected while capable plugins can still archive when enabled.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go, postgresql
- Domain
- backend, databases
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 48/100