Re: [HACKERS] possible self-deadlock window after badProcessStartupPacket

Поиск
Список
Период
Сортировка
От Heikki Linnakangas
Тема Re: [HACKERS] possible self-deadlock window after badProcessStartupPacket
Дата
Msg-id 2b5322bc-b95c-e4bf-e6ef-6983b553dd16@iki.fi
обсуждение исходный текст
Ответ на Re: [HACKERS] possible self-deadlock window after badProcessStartupPacket  (Nico Williams <nico@cryptonector.com>)
Список pgsql-hackers
On 19/07/18 23:04, Nico Williams wrote:
> On Thu, Jun 22, 2017 at 03:10:31PM -0400, Tom Lane wrote:
>> Andres Freund <andres@anarazel.de> writes:
>>> Or, probably more robust: Simply _exit(2) without further ado, and rely
>>> on postmaster to output an appropriate error message. Arguably it's not
>>> actually useful to see hundreds of "WARNING: terminating connection because of
>>> crash of another server process" messages in the log anyway.
>>
>> At that point you might as well skip the entire mechanism and go straight
>> to SIGKILL.  IMO the only reason quickdie() exists at all is to try to
>> send a helpful message to the client.  And it is helpful --- your attempt
>> to claim that it isn't sounds very much like wishful thinking.
> 
> I dunno if it is or isn't helpful.  But I do know that this must be done
> in an async-signal-safe way.
> 
> Besides making ereport() async-signal-safe, which is tricky, you could
> write(2) the arguments to a pipe that another thread in the same process
> is reading from and which will then call ereport() and exit(3).

I don't see how that helps. It still wouldn't be safe for the other 
thread to call ereport(), because the main thread might be in the middle 
of calling ereport() itself.

- Heikki


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

Предыдущее
От: Oskari Saarenmaa
Дата:
Сообщение: Re: pread() and pwrite()
Следующее
От: AYahorau@ibagroup.eu
Дата:
Сообщение: Adding TCP_USER_TIMEOUT support for libpq/psqlodbc