aboutsummaryrefslogtreecommitdiff
path: root/src/backend/postmaster/pgstat.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/postmaster/pgstat.c')
-rw-r--r--src/backend/postmaster/pgstat.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/backend/postmaster/pgstat.c b/src/backend/postmaster/pgstat.c
index e539bac0c1d..a52377fc9db 100644
--- a/src/backend/postmaster/pgstat.c
+++ b/src/backend/postmaster/pgstat.c
@@ -3602,6 +3602,13 @@ pgstat_write_statsfiles(bool permanent, bool allDbs)
{
slist_mutable_iter iter;
+ /*
+ * Strictly speaking we should do slist_delete_current() before
+ * freeing each request struct. We skip that and instead
+ * re-initialize the list header at the end. Nonetheless, we must use
+ * slist_foreach_modify, not just slist_foreach, since we will free
+ * the node's storage before advancing.
+ */
slist_foreach_modify(iter, &last_statrequests)
{
DBWriteRequest *req;