Re: Printing backtrace of postgres processes

From: Kyotaro Horiguchi <horikyota(dot)ntt(at)gmail(dot)com>
To: bharath(dot)rupireddyforpostgres(at)gmail(dot)com
Cc: vignesh21(at)gmail(dot)com, robertmhaas(at)gmail(dot)com, pryzby(at)telsasoft(dot)com, stark(at)mit(dot)edu, torikoshia(at)oss(dot)nttdata(dot)com, pgsql-hackers(at)lists(dot)postgresql(dot)org
Subject: Re: Printing backtrace of postgres processes
Date: 2022-11-11 02:29:04
Message-ID: 20221111.112904.1759562894444558610.horikyota.ntt@gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

At Thu, 10 Nov 2022 15:56:35 +0530, Bharath Rupireddy <bharath(dot)rupireddyforpostgres(at)gmail(dot)com> wrote in
> On Mon, Apr 18, 2022 at 9:10 AM vignesh C <vignesh21(at)gmail(dot)com> wrote:
> >
> > The attached v21 patch has the changes for the same.
>
> Thanks for the patch. Here are some comments:
>
> 1. I think there's a fundamental problem with this patch, that is, it
> prints the backtrace when the interrupt is processed but not when
> interrupt is received. This way, the backends/aux processes will

Yeah, but the obstacle was backtrace(3) itself. Andres pointed [1]
that that may be doable with some care (and I agree to the opinion).
AFAIS no discussions followed and things have been to the current
shape since then.

[1] https://www.postgresql.org/message-id/20201201032649.aekv5b5dicvmovf4%40alap3.anarazel.de
| > Surely this is *utterly* unsafe. You can't do that sort of stuff in
| > a signal handler.
|
| That's of course true for the current implementation - but I don't think
| it's a fundamental constraint. With a bit of care backtrace() and
| backtrace_symbols() itself can be signal safe:

man 3 backtrace
> * backtrace() and backtrace_symbols_fd() don't call malloc() explic‐
> itly, but they are part of libgcc, which gets loaded dynamically
> when first used. Dynamic loading usually triggers a call to mal‐
> loc(3). If you need certain calls to these two functions to not
> allocate memory (in signal handlers, for example), you need to make
> sure libgcc is loaded beforehand.

regards.

--
Kyotaro Horiguchi
NTT Open Source Software Center

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Justin Pryzby 2022-11-11 02:59:58 Re: Reducing the WAL overhead of freezing in VACUUM by deduplicating per-tuple freeze plans
Previous Message houzj.fnst@fujitsu.com 2022-11-11 02:27:13 RE: Perform streaming logical transactions by background workers and parallel apply