aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAlvaro Herrera <alvherre@alvh.no-ip.org>2020-01-07 17:38:48 -0300
committerAlvaro Herrera <alvherre@alvh.no-ip.org>2020-01-07 17:38:48 -0300
commitb175bd59fa54a90d21bc541f812643ac45281b98 (patch)
tree669efcda3700708d0db86e4d7b372438d7873285 /src
parentce242ae154dde3217971c6f262705d80999f4e00 (diff)
downloadpostgresql-b175bd59fa54a90d21bc541f812643ac45281b98.tar.gz
postgresql-b175bd59fa54a90d21bc541f812643ac45281b98.zip
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 11, where walsenders started appearing in pg_stat_activity. Reported-by: Tomas Vondra Discussion: https://postgr.es/m/20191209234409.exe7osmyalwkt5j4@development
Diffstat (limited to 'src')
-rw-r--r--src/backend/access/transam/xact.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/access/transam/xact.c b/src/backend/access/transam/xact.c
index 017f03b6d8c..cbc35454a7e 100644
--- a/src/backend/access/transam/xact.c
+++ b/src/backend/access/transam/xact.c
@@ -816,6 +816,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