mirror of
https://github.com/postgres/postgres.git
synced 2026-04-11 20:16:33 -04:00
The checkpointer shouldn't ignore its latch. Other backends may be waiting for it to drain the request queue. Hopefully real systems don't have a full queue often, but the condition is reached easily when shared_buffers is small. This involves defining a new wait event, which will appear in the pg_stat_activity view often due to spread checkpoints. Back-patch only to 14. Even though the problem exists in earlier branches too, it's hard to hit there. In 14 we stopped using signal handlers for latches on Linux, *BSD and macOS, which were previously hiding this problem by interrupting the sleep (though not reliably, as the signal could arrive before the sleep begins; precisely the problem latches address). Reported-by: Andres Freund <andres@anarazel.de> Reviewed-by: Andres Freund <andres@anarazel.de> Discussion: https://postgr.es/m/20220226213942.nb7uvb2pamyu26dj%40alap3.anarazel.de |
||
|---|---|---|
| .. | ||
| autovacuum.c | ||
| bgworker.c | ||
| bgwriter.c | ||
| checkpointer.c | ||
| fork_process.c | ||
| interrupt.c | ||
| Makefile | ||
| pgarch.c | ||
| pgstat.c | ||
| postmaster.c | ||
| startup.c | ||
| syslogger.c | ||
| walwriter.c | ||