Re: Printing backtrace of postgres processes

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: Printing backtrace of postgres processes
Дата
Msg-id 202402090848.j6evnpunbehe@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: Printing backtrace of postgres processes  (Michael Paquier <michael@paquier.xyz>)
Ответы Re: Printing backtrace of postgres processes  (Ashutosh Bapat <ashutosh.bapat.oss@gmail.com>)
Список pgsql-hackers
On 2024-Feb-09, Michael Paquier wrote:

> Anyway, I've been digging around the signal-safety of backtrace(3)
> (even looking a bit at some GCC code, brrr), and I am under the
> impression that backtrace() is just by nature not safe and also
> dangerous in signal handlers.  One example of issue I've found:
> https://github.com/gperftools/gperftools/issues/838
> 
> This looks like enough ground to me to reject the patch.

Hmm, but the backtrace() manpage says

       •  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.

and the patch ensures that libgcc is loaded by calling a dummy
backtrace() at the start of the process.

-- 
Álvaro Herrera               48°01'N 7°57'E  —  https://www.EnterpriseDB.com/
"All rings of power are equal,
But some rings of power are more equal than others."
                                 (George Orwell's The Lord of the Rings)



В списке pgsql-hackers по дате отправления:

Предыдущее
От: Julien Rouhaud
Дата:
Сообщение: Re: Small fix on query_id_enabled
Следующее
От: Ashutosh Bapat
Дата:
Сообщение: Re: Printing backtrace of postgres processes