1
0
mirror of https://github.com/postgres/postgres.git synced 2025-05-28 05:21:27 +03:00

pg_stat_activity: show NULL stmt start time for walsenders

Returning a non-NULL time is pointless, sinc a walsender is not a
process that would be running normal transactions anyway, but the code
was unintentionally exposing the process start time intermittently,
which was not only bogus but it also confused monitoring systems looking
for idle transactions.  Fix by avoiding all updates in walsenders.

Backpatch to pg10: previously I misidentified the branches that show
auxiliary processes in pg_stat_activity.

Reported-by: Tomas Vondra
Discussion: https://postgr.es/m/20191209234409.exe7osmyalwkt5j4@development
This commit is contained in:
Alvaro Herrera 2020-01-07 17:38:48 -03:00
parent 66fd0adc73
commit 8de3b68faf

View File

@ -758,6 +758,13 @@ GetCurrentTransactionStopTimestamp(void)
void
SetCurrentStatementStartTimestamp(void)
{
/*
* Skip if on a walsender; this is not needed, and it confuses monitoring
* if we publish non-NULL values.
*/
if (am_walsender)
return;
if (!IsParallelWorker())
stmtStartTimestamp = GetCurrentTimestamp();
else