Re: Printing backtrace of postgres processes
Tom Lane <tgl@sss.pgh.pa.us>
From: Tom Lane <tgl@sss.pgh.pa.us>
To: Robert Haas <robertmhaas@gmail.com>
Cc: vignesh C <vignesh21@gmail.com>, Andres Freund <andres@anarazel.de>,
Peter Eisentraut <peter.eisentraut@enterprisedb.com>,
PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2021-01-19T17:50:55Z
Lists: pgsql-hackers
Robert Haas <robertmhaas@gmail.com> writes: > On Sat, Jan 16, 2021 at 3:21 PM Tom Lane <tgl@sss.pgh.pa.us> wrote: >> (Personally, I think this whole patch fails the safety-vs-usefulness >> tradeoff, but I expect I'll get shouted down.) > What do you see as the main safety risks here? The thing that is scaring me the most is the "broadcast" aspect. For starters, I think that that is going to be useless in the field because of the likelihood that different backends' stack traces will get interleaved in whatever log file the traces are going to. Also, having hundreds of processes spitting dozens of lines to the same place at the same time is going to expose any little weaknesses in your logging arrangements, such as rsyslog's tendency to drop messages under load. I think it's got security hazards as well. If we restricted the feature to cause a trace of only one process at a time, and required that process to be logged in as the same database user as the requestor (or at least someone with the privs of that user, such as a superuser), that'd be less of an issue. Beyond that, well, maybe it's all right. In theory anyplace that there's a CHECK_FOR_INTERRUPTS should be okay to call elog from; but it's completely untested whether we can do that and then continue, as opposed to aborting the transaction or whole session. I share your estimate that there'll be small-fraction-of-a-percent hazards that could still add up to dangerous instability if people go wild with this. regards, tom lane
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