From: | Denis Smirnov <sd(at)arenadata(dot)io> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de> |
Cc: | Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, Robert Haas <robertmhaas(at)gmail(dot)com>, PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: Async-unsafe functions in signal handlers |
Date: | 2021-08-28 00:45:57 |
Message-ID: | 214224BE-DF50-4BA0-9170-36DF813F2BEA@arenadata.io |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> 28 авг. 2021 г., в 07:05, Andres Freund <andres(at)anarazel(dot)de> написал(а):
>
> However, we have a
> bandaid that deals with possible hangs, by SIGKILLing when processes don't
> shut down (at that point things have already gone quite south, so that's not
> an issue).
Thanks for the explanation. I can see that child process SIGKILL machinery was introduced by 82233ce7ea42d6ba519aaec63008aff49da6c7af commit to fix a malloc() deadlock in quickdie() signal handler. As a result, all child processes that die too long are killed in the ServerLoop() with SIGKILL. But bgworker_die() is a problem as we initialize bgworkers right before ServerLoop(). So we can face malloc() deadlock on postmaster startup (before ServerLoop() started). Maybe we should simply use write() and exit() instead of ereport() for bgworker_die()?
Best regards,
Denis Smirnov | Developer
sd(at)arenadata(dot)io
Arenadata | Godovikova 9-17, Moscow 129085 Russia
From | Date | Subject | |
---|---|---|---|
Next Message | Michael Paquier | 2021-08-28 01:40:42 | Re: [PATCH] Disable bgworkers during servers start in pg_upgrade |
Previous Message | Stephen Frost | 2021-08-27 23:24:55 | Re: automatic analyze: readahead - add "IO read time" log message |