This is the multi-page printable view of this section. .
Activity waits
- 1: Activity: ArchiverMain
- 2: Activity: AutovacuumMain
- 3: Activity: BgwriterHibernate
- 4: Activity: BgwriterMain
- 5: Activity: CheckpointerMain
- 6: Activity: CheckpointerShutdown
- 7: Activity: IoWorkerMain
- 8: Activity: LogicalApplyMain
- 9: Activity: LogicalLauncherMain
- 10: Activity: LogicalParallelApplyMain
- 11: Activity: PgStatMain
- 12: Activity: RecoveryWalStream
- 13: Activity: ReplicationSlotsyncMain
- 14: Activity: ReplicationSlotsyncShutdown
- 15: Activity: SysloggerMain
- 16: Activity: WalReceiverMain
- 17: Activity: WalSenderMain
- 18: Activity: WalSummarizerWal
- 19: Activity: WalWriterMain
Activity is mostly the sound of a healthy idle background process. Archiver, checkpointer, WAL writer, autovacuum launcher, replication workers, and related processes publish distinct names while waiting in their main loop.
Interpret by backend type
These events should not be counted in a foreground “waiting session percentage.” Instead, compare the event with backend_type and ask whether that process should currently have work.
- Normal: one matching background process waits in its documented main loop.
- Watch: the event appears on the wrong backend type, the process is absent, or work queues grow while it remains idle.
- Urgent: required background progress has stopped—archiving backlog, no checkpoints, replication not advancing, or shutdown unable to finish.
Events to recognize
| Event | Expected process |
|---|---|
| AutovacuumMain | Autovacuum launcher between scheduling cycles |
| CheckpointerMain | Checkpointer awaiting work |
| WalWriterMain | WAL writer main loop |
| ArchiverMain | Archiver waiting for a completed segment |
| WalReceiverMain | WAL receiver main loop |
| RecoveryWalStream | Startup process waiting for streamed WAL |
| IoWorkerMain | PG18 asynchronous I/O worker awaiting work |
Common misreads
- Activity waits dominating all backends can simply mean the cluster is idle.
- An idle checkpointer is not evidence that checkpoints are disabled.
- A normal wait name does not prove progress; check the queue/backlog and timestamps.
- Missing expected background processes is often more important than seeing their Activity wait.
1 - Activity: ArchiverMain
ArchiverMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of archiver process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_ARCHIVER_MAIN at src/backend/postmaster/pgarch.c:362 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:54. The instrumented operation is: Waiting in main loop of archiver process. The ArchiverMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/postmaster/pgarch.c:362 —
WAIT_EVENT_ARCHIVER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:54 —
ARCHIVER_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
2 - Activity: AutovacuumMain
AutovacuumMain
VersionsPG 17-18
Evidence4 source location(s)
Official description
Waiting in main loop of autovacuum launcher process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Earlier names: Activity/AutoVacuumMain (PG 13-16)
Trigger mechanism
WAIT_EVENT_AUTOVACUUM_MAIN at src/backend/postmaster/autovacuum.c:667 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event.c:216. The instrumented operation is: Waiting in main loop of autovacuum launcher process. The AutovacuumMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 16.15 · src/backend/postmaster/autovacuum.c:667 —
WAIT_EVENT_AUTOVACUUM_MAIN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:216 —
AutoVacuumMain - PostgreSQL 18.6 · src/backend/postmaster/autovacuum.c:595 —
WAIT_EVENT_AUTOVACUUM_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:55 —
AUTOVACUUM_MAIN
Related controls and signals
3 - Activity: BgwriterHibernate
BgwriterHibernate
VersionsPG 17-18
Evidence4 source location(s)
Official description
Waiting in background writer process, hibernating
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Earlier names: Activity/BgWriterHibernate (PG 13-16)
Trigger mechanism
WAIT_EVENT_BGWRITER_HIBERNATE at src/backend/postmaster/bgwriter.c:339 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event.c:219. The instrumented operation is: Waiting in background writer process, hibernating. The BgwriterHibernate background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 16.15 · src/backend/postmaster/bgwriter.c:339 —
WAIT_EVENT_BGWRITER_HIBERNATE - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:219 —
BgWriterHibernate - PostgreSQL 18.6 · src/backend/postmaster/bgwriter.c:337 —
WAIT_EVENT_BGWRITER_HIBERNATE - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:56 —
BGWRITER_HIBERNATE
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
4 - Activity: BgwriterMain
BgwriterMain
VersionsPG 17-18
Evidence4 source location(s)
Official description
Waiting in main loop of background writer process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Earlier names: Activity/BgWriterMain (PG 13-16)
Trigger mechanism
WAIT_EVENT_BGWRITER_MAIN at src/backend/postmaster/bgwriter.c:311 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event.c:222. The instrumented operation is: Waiting in main loop of background writer process. The BgwriterMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 16.15 · src/backend/postmaster/bgwriter.c:311 —
WAIT_EVENT_BGWRITER_MAIN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:222 —
BgWriterMain - PostgreSQL 18.6 · src/backend/postmaster/bgwriter.c:309 —
WAIT_EVENT_BGWRITER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:57 —
BGWRITER_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
5 - Activity: CheckpointerMain
CheckpointerMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of checkpointer process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_CHECKPOINTER_MAIN at src/backend/postmaster/checkpointer.c:583 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:58. The instrumented operation is: Waiting in main loop of checkpointer process. The CheckpointerMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:583 —
WAIT_EVENT_CHECKPOINTER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:58 —
CHECKPOINTER_MAIN
Related controls and signals
6 - Activity: CheckpointerShutdown
CheckpointerShutdown
VersionsPG 18
Evidence2 source location(s)
Official description
Waiting for checkpointer process to be terminated
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
Trigger mechanism
WAIT_EVENT_CHECKPOINTER_SHUTDOWN at src/backend/postmaster/checkpointer.c:631 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:59. The instrumented operation is: Waiting for checkpointer process to be terminated. The CheckpointerShutdown background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/postmaster/checkpointer.c:631 —
WAIT_EVENT_CHECKPOINTER_SHUTDOWN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:59 —
CHECKPOINTER_SHUTDOWN
Related controls and signals
7 - Activity: IoWorkerMain
IoWorkerMain
VersionsPG 18
Evidence2 source location(s)
Official description
Waiting in main loop of IO Worker process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | — | ✓ |
Trigger mechanism
WAIT_EVENT_IO_WORKER_MAIN at src/backend/storage/aio/method_worker.c:573 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:60. The instrumented operation is: Waiting in main loop of IO Worker process. The IoWorkerMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/storage/aio/method_worker.c:573 —
WAIT_EVENT_IO_WORKER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:60 —
IO_WORKER_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
8 - Activity: LogicalApplyMain
LogicalApplyMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of logical replication apply process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_LOGICAL_APPLY_MAIN at src/backend/replication/logical/worker.c:3766 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:61. The instrumented operation is: Waiting in main loop of logical replication apply process. The LogicalApplyMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/logical/worker.c:3766 —
WAIT_EVENT_LOGICAL_APPLY_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:61 —
LOGICAL_APPLY_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
9 - Activity: LogicalLauncherMain
LogicalLauncherMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of logical replication launcher process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_LOGICAL_LAUNCHER_MAIN at src/backend/replication/logical/launcher.c:1242 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:62. The instrumented operation is: Waiting in main loop of logical replication launcher process. The LogicalLauncherMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/logical/launcher.c:1242 —
WAIT_EVENT_LOGICAL_LAUNCHER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:62 —
LOGICAL_LAUNCHER_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
10 - Activity: LogicalParallelApplyMain
LogicalParallelApplyMain
VersionsPG 16-18
Evidence2 source location(s)
Official description
Waiting in main loop of logical replication parallel apply process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN at src/backend/replication/logical/applyparallelworker.c:810 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:63. The instrumented operation is: Waiting in main loop of logical replication parallel apply process. The LogicalParallelApplyMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/logical/applyparallelworker.c:810 —
WAIT_EVENT_LOGICAL_PARALLEL_APPLY_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:63 —
LOGICAL_PARALLEL_APPLY_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
11 - Activity: PgStatMain
PgStatMain
VersionsPG 13-14
Evidence2 source location(s)
Official description
Waiting in main loop of statistics collector process.
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | — | — | — | — |
Trigger mechanism
WAIT_EVENT_PGSTAT_MAIN at src/backend/postmaster/pgstat.c:3425 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event.c:234. The instrumented operation is: Waiting in main loop of statistics collector process. The PgStatMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 14.24 · src/backend/postmaster/pgstat.c:3425 —
WAIT_EVENT_PGSTAT_MAIN - PostgreSQL 14.24 · src/backend/utils/activity/wait_event.c:234 —
PgStatMain
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
12 - Activity: RecoveryWalStream
RecoveryWalStream
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of startup process for WAL to arrive, during streaming recovery
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_RECOVERY_WAL_STREAM at src/backend/access/transam/xlogrecovery.c:4038 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:64. The instrumented operation is: Waiting in main loop of startup process for WAL to arrive, during streaming recovery. The RecoveryWalStream background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/access/transam/xlogrecovery.c:4038 —
WAIT_EVENT_RECOVERY_WAL_STREAM - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:64 —
RECOVERY_WAL_STREAM
Related controls and signals
13 - Activity: ReplicationSlotsyncMain
ReplicationSlotsyncMain
VersionsPG 17-18
Evidence2 source location(s)
Official description
Waiting in main loop of slot sync worker
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_REPLICATION_SLOTSYNC_MAIN at src/backend/replication/logical/slotsync.c:1369 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:65. The instrumented operation is: Waiting in main loop of slot sync worker. The ReplicationSlotsyncMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/logical/slotsync.c:1369 —
WAIT_EVENT_REPLICATION_SLOTSYNC_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:65 —
REPLICATION_SLOTSYNC_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
14 - Activity: ReplicationSlotsyncShutdown
ReplicationSlotsyncShutdown
VersionsPG 17-18
Evidence2 source location(s)
Official description
Waiting for slot sync worker to shut down
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_REPLICATION_SLOTSYNC_SHUTDOWN at src/backend/replication/logical/slotsync.c:1732 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:66. The instrumented operation is: Waiting for slot sync worker to shut down. The ReplicationSlotsyncShutdown background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/logical/slotsync.c:1732 —
WAIT_EVENT_REPLICATION_SLOTSYNC_SHUTDOWN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:66 —
REPLICATION_SLOTSYNC_SHUTDOWN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
15 - Activity: SysloggerMain
SysloggerMain
VersionsPG 17-18
Evidence4 source location(s)
Official description
Waiting in main loop of syslogger process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Earlier names: Activity/SysLoggerMain (PG 13-16)
Trigger mechanism
WAIT_EVENT_SYSLOGGER_MAIN at src/backend/postmaster/syslogger.c:487 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event.c:240. The instrumented operation is: Waiting in main loop of syslogger process. The SysloggerMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 16.15 · src/backend/postmaster/syslogger.c:487 —
WAIT_EVENT_SYSLOGGER_MAIN - PostgreSQL 16.15 · src/backend/utils/activity/wait_event.c:240 —
SysLoggerMain - PostgreSQL 18.6 · src/backend/postmaster/syslogger.c:513 —
WAIT_EVENT_SYSLOGGER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:67 —
SYSLOGGER_MAIN
Related controls and signals
- GUCs: None directly.
- Metrics: [metric:waiting_sessions] · [metric:wait_event_share]
16 - Activity: WalReceiverMain
WalReceiverMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of WAL receiver process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_WAL_RECEIVER_MAIN at src/backend/replication/walreceiver.c:600 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:68. The instrumented operation is: Waiting in main loop of WAL receiver process. The WalReceiverMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/walreceiver.c:600 —
WAIT_EVENT_WAL_RECEIVER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:68 —
WAL_RECEIVER_MAIN
Related controls and signals
17 - Activity: WalSenderMain
WalSenderMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of WAL sender process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_WAL_SENDER_MAIN at src/backend/replication/walsender.c:2963 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:69. The instrumented operation is: Waiting in main loop of WAL sender process. The WalSenderMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/replication/walsender.c:2963 —
WAIT_EVENT_WAL_SENDER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:69 —
WAL_SENDER_MAIN
Related controls and signals
18 - Activity: WalSummarizerWal
WalSummarizerWal
VersionsPG 17-18
Evidence2 source location(s)
Official description
Waiting in WAL summarizer for more WAL to be generated
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| — | — | — | — | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_WAL_SUMMARIZER_WAL at src/backend/postmaster/walsummarizer.c:1798 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:70. The instrumented operation is: Waiting in WAL summarizer for more WAL to be generated. The WalSummarizerWal background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/postmaster/walsummarizer.c:1798 —
WAIT_EVENT_WAL_SUMMARIZER_WAL - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:70 —
WAL_SUMMARIZER_WAL
Related controls and signals
19 - Activity: WalWriterMain
WalWriterMain
VersionsPG 13-18
Evidence2 source location(s)
Official description
Waiting in main loop of WAL writer process
| PG 13 | PG 14 | PG 15 | PG 16 | PG 17 | PG 18 |
|---|---|---|---|---|---|
| ✓ | ✓ | ✓ | ✓ | ✓ | ✓ |
Trigger mechanism
WAIT_EVENT_WAL_WRITER_MAIN at src/backend/postmaster/walwriter.c:271 is the grep-verified reporting path. The public identity/resource is mapped at src/backend/utils/activity/wait_event_names.txt:71. The instrumented operation is: Waiting in main loop of WAL writer process. The WalWriterMain background path reports this event around its latch wait when its main loop has no immediate work. A signal, timeout, or new work clears the sleep and the process loops again.
Normal or trouble?
- Normal: This is normally expected idleness for the matching background process.
- Investigate: Investigate only when queued work or a shutdown/failover deadline is not advancing while the process remains here, or when the event appears on an unexpected backend type.
Diagnostic SQL
Response
- Match the row to backend_type.
- Inspect the process-specific backlog and last-progress timestamp.
- Fix the missing work signal or stalled upstream phase; do not kill a normally idle worker.
Source evidence
- PostgreSQL 18.6 · src/backend/postmaster/walwriter.c:271 —
WAIT_EVENT_WAL_WRITER_MAIN - PostgreSQL 18.6 · src/backend/utils/activity/wait_event_names.txt:71 —
WAL_WRITER_MAIN