Re: Get memory contexts of an arbitrary backend process

torikoshia <torikoshia@oss.nttdata.com>

From: torikoshia <torikoshia@oss.nttdata.com>
To: Kasahara Tatsuhito <kasahara.tatsuhito@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, Fujii Masao <masao.fujii@oss.nttdata.com>, Georgios Kokolatos <gkokolatos@protonmail.com>, PostgreSQL-development <pgsql-hackers@postgresql.org>
Date: 2021-01-14T10:11:23Z
Lists: pgsql-hackers

Attachments

Since pg_get_target_backend_memory_contexts() waits to dump memory and
it could lead dead lock as below.

   - session1
   BEGIN; TRUNCATE t;

   - session2
   BEGIN; TRUNCATE t; -- wait

   - session1
   SELECT * FROM pg_get_target_backend_memory_contexts(<pid of session 
2>); --wait


Thanks for notifying me, Fujii-san.


Attached v8 patch that prohibited calling the function inside 
transactions.


Regards,

--
Atsushi Torikoshi

Commits

  1. Add function to log the memory contexts of specified backend process.

  2. Add pg_backend_memory_contexts system view.

  3. Limit the verbosity of memory context statistics dumps.