aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/backend/utils/activity/pgstat_shmem.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/backend/utils/activity/pgstat_shmem.c b/src/backend/utils/activity/pgstat_shmem.c
index fb79c5e771b..634b9678206 100644
--- a/src/backend/utils/activity/pgstat_shmem.c
+++ b/src/backend/utils/activity/pgstat_shmem.c
@@ -246,6 +246,14 @@ pgstat_detach_shmem(void)
pgStatLocal.shared_hash = NULL;
dsa_detach(pgStatLocal.dsa);
+
+ /*
+ * dsa_detach() does not decrement the DSA reference count as no segment
+ * was provided to dsa_attach_in_place(), causing no cleanup callbacks to
+ * be registered. Hence, release it manually now.
+ */
+ dsa_release_in_place(pgStatLocal.shmem->raw_dsa_area);
+
pgStatLocal.dsa = NULL;
}