Timeout: RecoveryRetrieveRetryInterval
Waiting during recovery when WAL data is not available from any source (pg_wal, archive or stream)
PostgreSQL wait event dossier
ClassTimeout
Event
RecoveryRetrieveRetryInterval
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting during recovery when WAL data is not available from any source (pg_wal, archive or stream)
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL at src/backend/access/transam/xlogrecovery.c:3764 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:179. The instrumented operation is: Waiting during recovery when WAL data is not available from any source (pg_wal, archive or stream). The RecoveryRetrieveRetryInterval path deliberately waits on a timer, retry interval, throttle, or safety backoff. The latch timeout expires before work is reconsidered.
Normal or trouble?
- Normal: The wait is normal when the configured policy is intentional and useful work advances at the expected rate.
- Investigate: Investigate when the policy causes missed maintenance, recovery, backup, or latency objectives, or when a spin delay persists.
Diagnostic SQL
Sessions waiting on Timeout/RecoveryRetrieveRetryInterval
Current Timeout cohort
Lock and relation context for these sessions
Response
- Identify the GUC or function that owns the timer.
- Compare productive work with time spent delayed.
- Adjust the policy only after checking the CPU, I/O, and durability pressure it was designed to control.
Source evidence
- PostgreSQL 18.6 · src/backend/access/transam/xlogrecovery.c:3764 —
WAIT_EVENT_RECOVERY_RETRIEVE_RETRY_INTERVAL - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:179 —
RECOVERY_RETRIEVE_RETRY_INTERVAL
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]