Summary
SpinDelay is a PostgreSQL Timeout wait event. The official server documentation describes it as: “Waiting while acquiring a contended spinlock.” (verbatim from PostgreSQL’s wait_event_names.txt catalog).
Classification
- wait_event:
SpinDelay - wait_event_type:
Timeout - Internal enum:
WAIT_EVENT_SPIN_DELAY - Reported in:
pg_stat_activity
What the Timeout class indicates
(Paraphrased explanation.) The process is deliberately sleeping for a timeout to elapse. These waits are expected and driven by configuration.
How to observe it
(Illustrative query — not from the catalog.) You can see which sessions are currently reporting this wait event in the cumulative statistics view:
SELECT pid, state, wait_event_type, wait_event, query
FROM pg_stat_activity
WHERE wait_event_type = 'Timeout'
AND wait_event = 'SpinDelay';
Version applicability
Confirmed present in PostgreSQL major version(s): 16, 17, 18, 19 (verified against each release’s server source).
This wait event has existed since at least PostgreSQL 16.
The machine-readable wait_event_names.txt catalog exists from PostgreSQL 17 onward; presence in PostgreSQL 12–16 was verified directly from the wait-event, lock, and lightweight-lock definitions in those releases’ source code.
References
- PostgreSQL documentation — Wait Events
- PostgreSQL source —
src/backend/utils/activity/wait_event_names.txt