Re: Enhancing Memory Context Statistics Reporting

Fujii Masao <masao.fujii@oss.nttdata.com>

From: Fujii Masao <masao.fujii@oss.nttdata.com>
To: Daniel Gustafsson <daniel@yesql.se>, Rahila Syed <rahilasyed90@gmail.com>
Cc: Andres Freund <andres@anarazel.de>, PostgreSQL Hackers <pgsql-hackers@postgresql.org>
Date: 2025-04-08T16:41:49Z
Lists: pgsql-hackers

Attachments


On 2025/04/08 18:46, Daniel Gustafsson wrote:
>> On 8 Apr 2025, at 10:03, Daniel Gustafsson <daniel@yesql.se> wrote:
> 
>> There was a bug in the shmem init function which caused it to fail on Windows,
>> the attached fixes that.
> 
> With this building green in CI over several re-builds, and another pass over
> the docs and code with pgindent etc done, I pushed this earlier today.  A few
> BF animals have built green so far but I will continue to monitor it.

Thanks for committing this feature!


I noticed that the third argument of pg_get_process_memory_contexts() is named
"retries" in pg_proc.dat, while the documentation refers to it as "timeout".
Since "retries" is misleading, how about renaming it to "timeout" in pg_proc.dat?
Patch attached.


Also, as I mentioned earlier, I encountered an issue when calling
pg_get_process_memory_contexts() on the PID of a backend that had just
encountered an error but hadn't finished rolling back. It led to
the following situation:

    Session 1 (PID=70011):
    =# begin;
    =# select 1/0;
    ERROR:  division by zero

    Session 2:
    =# select * from pg_get_process_memory_contexts(70011, false, 10);

    Session 1 terminated with:
    ERROR:  ResourceOwnerEnlarge called after release started
    FATAL:  terminating connection because protocol synchronization was lost

Shouldn't this be addressed?

Regards,

-- 
Fujii Masao
Advanced Computing Technology Center
Research and Development Headquarters
NTT DATA CORPORATION

Commits

Same data as JSON: GET /api/v1/messages/:b64id/commits the thread's linked commits as JSON, with link sources. API reference →
  1. Cross-check lists of built-in LWLock tranches.

  2. Convert strncpy to strlcpy

  3. Typo and doc fixups for memory context reporting

  4. Add missing string terminator

  5. Rename argument in pg_get_process_memory_contexts().

  6. Add function to get memory context stats for processes