Re: Printing backtrace of postgres processes
Andres Freund <andres@anarazel.de>
From: Andres Freund <andres@anarazel.de>
To: Craig Ringer <craig.ringer@enterprisedb.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, vignesh C <vignesh21@gmail.com>, PostgreSQL Hackers <pgsql-hackers@lists.postgresql.org>
Date: 2020-12-01T03:31:03Z
Lists: pgsql-hackers
Hi, On 2020-11-30 13:35:46 +0800, Craig Ringer wrote: > I find that when I most often want a backtrace of a running, live > backend, it's because the backend is doing something that isn't > passing a CHECK_FOR_INTERRUPTS() so it's not responding to signals. So > it wouldn't help if a backend is waiting on an LWLock, busy in a > blocking call to some loaded library, a blocking syscall, etc. But > there are enough other times I want live backtraces, and I'm not the > only one whose needs matter. Random thought: Wonder if it could be worth adding a conditionally compiled mode where we track what the longest time between two CHECK_FOR_INTERRUPTS() calls is (with some extra logic for client IO). Obviously the regression tests don't tend to hit the worst cases of CFR() less code, but even if they did, we currently wouldn't know from running the regression tests. Greetings, Andres Freund
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