Re: EINTR in ftruncate()

Поиск
Список
Период
Сортировка
От Alvaro Herrera
Тема Re: EINTR in ftruncate()
Дата
Msg-id 20220701175516.elwda36gwmfqw2c4@alvherre.pgsql
обсуждение исходный текст
Ответ на Re: EINTR in ftruncate()  (Andres Freund <andres@anarazel.de>)
Ответы Re: EINTR in ftruncate()  (Andres Freund <andres@anarazel.de>)
Список pgsql-hackers
On 2022-Jul-01, Andres Freund wrote:

> On 2022-07-01 17:41:05 +0200, Alvaro Herrera wrote:
> > Nicola Contu reported two years ago to pgsql-general[1] that they were
> > having sporadic query failures, because EINTR is reported on some system
> > call.  I have been told that the problem persists, though it is very
> > infrequent.  I propose the attached patch.  Kyotaro proposed a slightly
> > different patch which also protects write(), but I think that's not
> > necessary.
> 
> What is the reason for the || ProcDiePending || QueryCancelPending bit? What
> if there's dsm operations intentionally done while QueryCancelPending?

That mirrors the test for the other block in that function, which was
added by 63efab4ca139, whose commit message explains:

    Allow DSM allocation to be interrupted.
    
    Chris Travers reported that the startup process can repeatedly try to
    cancel a backend that is in a posix_fallocate()/EINTR loop and cause it
    to loop forever.  Teach the retry loop to give up if an interrupt is
    pending.  Don't actually check for interrupts in that loop though,
    because a non-local exit would skip some clean-up code in the caller.

Thanks for looking!

-- 
Álvaro Herrera         PostgreSQL Developer  —  https://www.EnterpriseDB.com/



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

Предыдущее
От: Andres Freund
Дата:
Сообщение: Re: Issue with pg_stat_subscription_stats
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: First draft of the PG 15 release notes