mirror of
https://github.com/postgres/postgres.git
synced 2025-11-10 17:42:29 +03:00
Improve wording of log messages triggered by max_slot_wal_keep_size.
The one about "terminating process to release replication slot" told
you nothing about why that was happening. The one about "invalidating
slot because its restart_lsn exceeds max_slot_wal_keep_size" told you
what was happening, but violated our message style guideline about
keeping the primary message short. Add DETAIL/HINT lines to carry
the appropriate detail and make the two cases more uniform.
While here, fix bogus test logic in 019_replslot_limit.pl: if it timed
out without seeing the expected log message, no test failure would be
reported. This is flat broken since commit 549ec201d removed the test
counts; even before that it was horribly bad style, since you'd only
get told that not all tests had been run.
Kyotaro Horiguchi, reviewed by Bertrand Drouvot; test fixes by me
Discussion: https://postgr.es/m/20211214.130456.2233153190058148084.horikyota.ntt@gmail.com
This commit is contained in:
@@ -1293,8 +1293,12 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlot *s, XLogRecPtr oldestLSN,
|
||||
if (last_signaled_pid != active_pid)
|
||||
{
|
||||
ereport(LOG,
|
||||
(errmsg("terminating process %d to release replication slot \"%s\"",
|
||||
active_pid, NameStr(slotname))));
|
||||
errmsg("terminating process %d to release replication slot \"%s\"",
|
||||
active_pid, NameStr(slotname)),
|
||||
errdetail("The slot's restart_lsn %X/%X exceeds the limit by %llu bytes.",
|
||||
LSN_FORMAT_ARGS(restart_lsn),
|
||||
(unsigned long long) (oldestLSN - restart_lsn)),
|
||||
errhint("You might need to increase max_slot_wal_keep_size."));
|
||||
|
||||
(void) kill(active_pid, SIGTERM);
|
||||
last_signaled_pid = active_pid;
|
||||
@@ -1331,9 +1335,12 @@ InvalidatePossiblyObsoleteSlot(ReplicationSlot *s, XLogRecPtr oldestLSN,
|
||||
ReplicationSlotRelease();
|
||||
|
||||
ereport(LOG,
|
||||
(errmsg("invalidating slot \"%s\" because its restart_lsn %X/%X exceeds max_slot_wal_keep_size",
|
||||
NameStr(slotname),
|
||||
LSN_FORMAT_ARGS(restart_lsn))));
|
||||
errmsg("invalidating obsolete replication slot \"%s\"",
|
||||
NameStr(slotname)),
|
||||
errdetail("The slot's restart_lsn %X/%X exceeds the limit by %llu bytes.",
|
||||
LSN_FORMAT_ARGS(restart_lsn),
|
||||
(unsigned long long) (oldestLSN - restart_lsn)),
|
||||
errhint("You might need to increase max_slot_wal_keep_size."));
|
||||
|
||||
/* done with this slot for now */
|
||||
break;
|
||||
|
||||
Reference in New Issue
Block a user