diff options
author | Michael Paquier <michael@paquier.xyz> | 2019-09-04 15:46:54 +0900 |
---|---|---|
committer | Michael Paquier <michael@paquier.xyz> | 2019-09-04 15:46:54 +0900 |
commit | 4950f09e7ae2f4c311843f1ba56c927f820ff785 (patch) | |
tree | 79e9bee5b495cc78133d0972fde245b80dab3c75 | |
parent | dbbae33bcd3357f4dd880f9214c18e0ed2c92c49 (diff) |
Fix thinko when ending progress report for a backend
The logic ending progress reporting for a backend entry introduced by
b6fb647 causes callers of pgstat_progress_end_command() to do some extra
work when track_activities is enabled as the process fields are reset in
the backend entry even if no command were started for reporting.
This resets the fields only if a command is registered for progress
reporting, and only if track_activities is enabled.
Author: Masahiho Sawada
Discussion: https://postgr.es/m/CAD21AoCry_vJ0E-m5oxJXGL3pnos-xYGCzF95rK5Bbi3Uf-rpA@mail.gmail.com
Backpatch-through: 9.6
-rw-r--r-- | src/backend/postmaster/pgstat.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c index 1c6a751d2fd..5180ccd8871 100644 --- a/src/backend/postmaster/pgstat.c +++ b/src/backend/postmaster/pgstat.c @@ -3181,10 +3181,10 @@ pgstat_progress_end_command(void) { volatile PgBackendStatus *beentry = MyBEEntry; - if (!beentry) + if (!beentry || !pgstat_track_activities) return; - if (!pgstat_track_activities - && beentry->st_progress_command == PROGRESS_COMMAND_INVALID) + + if (beentry->st_progress_command == PROGRESS_COMMAND_INVALID) return; PGSTAT_BEGIN_WRITE_ACTIVITY(beentry); |