@@ -266,12 +266,12 @@ for details on this standard behavior.
266266
267267# # Backup Volume Snapshot Deadlines
268268
269- CloudNativePG supports backups using the volume snapshot method. In some
270- environments, volume snapshots may encounter temporary issues that can be
271- retried .
269+ CloudNativePG supports backups using the volume snapshot method. Volume
270+ snapshot operations may encounter errors, which CloudNativePG retries for a
271+ configurable amount of time before giving up .
272272
273273The `backup.cnpg.io/volumeSnapshotDeadline` annotation defines how long
274- CloudNativePG should continue retrying recoverable errors before marking the
274+ CloudNativePG should continue retrying these errors before marking the
275275backup as failed.
276276
277277You can add the `backup.cnpg.io/volumeSnapshotDeadline` annotation to both
@@ -283,22 +283,20 @@ If not specified, the default retry deadline is **10 minutes**.
283283
284284# ## Error Handling
285285
286- When a retryable error occurs during a volume snapshot operation :
286+ When an error occurs during a volume snapshot operation :
287287
2882881. CloudNativePG records the time of the first error.
2892892. The system retries the operation every **10 seconds**.
2902903. If the error persists beyond the specified deadline (or the default 10
291291 minutes), the backup is marked as **failed**.
292292
293- # ## Retryable Errors
294-
295- CloudNativePG treats the following types of errors as retryable :
296-
297- - **Server timeout errors** (HTTP 408, 429, 500, 502, 503, 504)
298- - **Conflicts** (optimistic locking errors)
299- - **Internal errors**
300- - **Context deadline exceeded errors**
301- - **Timeout errors from the CSI snapshot controller**
293+ The CSI driver reports snapshot errors as free text, with no reliable way to
294+ tell a permanent condition (for example, a missing `VolumeSnapshotClass` or
295+ invalid credentials) from a transient one, and a condition that looks
296+ permanent can become resolvable at any point, for example if someone creates
297+ the missing class or fixes the credentials while CloudNativePG is retrying.
298+ For this reason, CloudNativePG retries every volume snapshot error the same
299+ way, until the deadline is reached.
302300
303301# ## Examples
304302
@@ -322,7 +320,7 @@ When you define a `ScheduledBackup` with the annotation, any `Backup` resources
322320created from this schedule automatically inherit the specified timeout value.
323321
324322In the following example, all backups created from the schedule will have a
325- 30-minute timeout for retrying recoverable snapshot errors.
323+ 30-minute timeout for retrying snapshot errors.
326324
327325` ` ` yaml
328326apiVersion: postgresql.cnpg.io/v1
0 commit comments