Re: pgsql: Add function to log the memory contexts of specified backend pro
Fujii Masao <masao.fujii@oss.nttdata.com>
From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Robert Haas <robertmhaas@gmail.com>
Cc: torikoshia <torikoshia@oss.nttdata.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2025-07-14T13:53:38Z
Lists: pgsql-hackers
Commits
Same data as JSON:
GET /api/v1/messages/:b64id/commits
the thread's linked commits as JSON, with link sources.
API reference →
-
Add guard to prevent recursive memory context logging.
- 1a9a49699c21 14.21 landed
- 0fc2f533a96c 15.16 landed
- 3853f61681e8 16.12 landed
- 699293d2749a 17.8 landed
- b863d8d87fc1 18.2 landed
- b3ccb0a2cb2e 19 (unreleased) landed
-
Add function to log the memory contexts of specified backend process.
- 43620e328617 14.0 cited
-
Add pg_backend_memory_contexts system view.
- 3e98c0bafb28 14.0 cited
Attachments
- v4-0001-PG14-PG16-Add-guard-to-prevent-recursive-memory-context-log.txt (text/plain)
- v4-0001-PG17-master-Add-guard-to-prevent-recursive-memory-context-log.patch (text/plain) patch v4-0001
On 2025/05/07 18:06, Fujii Masao wrote: > > > On 2025/05/05 23:57, Robert Haas wrote: >> On Fri, May 2, 2025 at 9:54 PM Fujii Masao <masao.fujii@oss.nttdata.com> wrote: >>> Thanks for the review and testing! I've fixed the issue you pointed out. >>> Updated patch attached. >> >> Thanks for addressing this. However, I believe this commit may need to >> take note of the following comment from elog.h: > > Thanks for the review! > > >> * Note: if a local variable of the function containing PG_TRY is modified >> * in the PG_TRY section and used in the PG_CATCH section, that variable >> * must be declared "volatile" for POSIX compliance. This is not mere >> * pedantry; we have seen bugs from compilers improperly optimizing code >> * away when such a variable was not marked. Beware that gcc's -Wclobbered >> * warnings are just about entirely useless for catching such oversights. >> >> Based on this comment, I believe in_progress must be declared volatile. > > You're right. OTOH, setting the flag inside the PG_TRY() block isn't necessary, > so I've moved it outside instead of leaving it inside and marking the flag volatile. > > >> As a stylistic comment, I think I would prefer making in_progress a >> file-level global and giving it a less generic name (e.g. >> LogMemoryContextInProgress). However, perhaps others will disagree. > > I'm fine with this. I've renamed the flag and made it a file-level global > variable as suggested. Updated patch is attached. I've attached the rebased versions of the patches. The patch for v14–v16 is labeled with a .txt extension to prevent cfbot from treating it as a patch for master, which would cause it to fail when applying. Regards, -- Fujii Masao NTT DATA Japan Corporation