Re: Printing backtrace of postgres processes
vignesh C <vignesh21@gmail.com>
From: vignesh C <vignesh21@gmail.com>
To: Andres Freund <andres@anarazel.de>
Cc: PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-17T16:56:30Z
Lists: pgsql-hackers
On Sat, Jan 16, 2021 at 11:10 PM Andres Freund <andres@anarazel.de> wrote: > > Hi, > > On Sat, Jan 16, 2021, at 09:34, vignesh C wrote: > > On Sat, Jan 16, 2021 at 1:40 AM Andres Freund <andres@anarazel.de> wrote: > > > > > > On 2021-01-15 09:53:05 +0100, Peter Eisentraut wrote: > > > > On 2020-12-08 10:38, vignesh C wrote: > > > > > I have implemented printing of backtrace based on handling it in > > > > > CHECK_FOR_INTERRUPTS. This patch also includes the change to allow > > > > > getting backtrace of any particular process based on the suggestions. > > > > > Attached patch has the implementation for the same. > > > > > Thoughts? > > > > > > > > Are we willing to use up a signal for this? > > > > > > Why is a full signal needed? Seems the procsignal infrastructure should > > > suffice? > > > > Most of the processes have access to ProcSignal, for these processes > > printing of callstack signal was handled by using ProcSignal. Pgstat > > process & syslogger process do not have access to ProcSignal, > > multiplexing with SIGUSR1 is not possible for these processes. So I > > handled the printing of callstack for pgstat process & syslogger using > > the SIGUSR2 signal. > > This is because shared memory is detached before pgstat & syslogger > > process is started by using the below: > > /* Drop our connection to postmaster's shared memory, as well */ > > dsm_detach_all(); > > PGSharedMemoryDetach(); > > Sure. But why is it important enough to support those that we are willing to dedicate a signal to the task? Their backtraces aren't often interesting, so I think we should just ignore them here. Thanks for your comments Andres, I will ignore it for the processes which do not have access to ProcSignal. I will make the changes and post a patch for this soon. Regards, Vignesh EnterpriseDB: http://www.enterprisedb.com
Commits
-
Perform apply of large transactions by parallel workers.
- 216a784829c2 16.0 cited
-
Enhance pg_log_backend_memory_contexts() for auxiliary processes.
- 790fbda90209 15.0 cited
-
Allow GRANT on pg_log_backend_memory_contexts().
- f0b051e322d5 15.0 cited
-
Move Perl test modules to a better namespace
- b3b4d8e68ae8 15.0 cited
-
Unify PostgresNode's new() and get_new_node() methods
- 201a76183e20 15.0 cited
-
Add backtrace support for error reporting
- 71a8a4f6e365 13.0 cited