Re: PATCH: pg_restore parallel-execution-deadlock issue
От | Amit Kapila |
---|---|
Тема | Re: PATCH: pg_restore parallel-execution-deadlock issue |
Дата | |
Msg-id | CAA4eK1JZtRUzL2=heRHSfmoBtxk=4XO=ySW1CK5KRrwyCLq9zA@mail.gmail.com обсуждение исходный текст |
Ответ на | Re: PATCH: pg_restore parallel-execution-deadlock issue (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: PATCH: pg_restore parallel-execution-deadlock issue
|
Список | pgsql-hackers |
On Fri, May 27, 2016 at 3:05 AM, Tom Lane <tgl@sss.pgh.pa.us> wrote:
>
> Michael Paquier <michael.paquier@gmail.com> writes:
> > ea274b2 has changed the way disconnection is done is is now closing
> > both the read and write pipes. So you may want to retry if things get
> > better with the next round of minor releases.
>
> Hadn't paid attention to this thread before ...
>
> It looks like there are still a few things we need to deal with before
> considering Armin's submission resolved:
>
> 1. Armin proposes using "shutdown(pipeWrite, SD_BOTH)" where the code
> committed this morning (df8d2d8c4) has "closesocket(pipeWrite)".
> I'd prefer to leave it that way since it's the same as for the Unix case,
> and Kyotaro-san says it works for him. Is there a reason we'd need
> shutdown() instead?
>
> 2. Armin proposes that WaitForTerminatingWorkers needs to do CloseHandle()
> on the various thread handles. That sounds plausible but I don't know
> enough Windows programming to know if it really matters.
>
> 3. Should we replace ExitThread() with _endthreadex()? Again, it
> seems plausible but I'm not the person to ask.
>
>
> Michael Paquier <michael.paquier@gmail.com> writes:
> > ea274b2 has changed the way disconnection is done is is now closing
> > both the read and write pipes. So you may want to retry if things get
> > better with the next round of minor releases.
>
> Hadn't paid attention to this thread before ...
>
> It looks like there are still a few things we need to deal with before
> considering Armin's submission resolved:
>
> 1. Armin proposes using "shutdown(pipeWrite, SD_BOTH)" where the code
> committed this morning (df8d2d8c4) has "closesocket(pipeWrite)".
> I'd prefer to leave it that way since it's the same as for the Unix case,
> and Kyotaro-san says it works for him. Is there a reason we'd need
> shutdown() instead?
>
> 2. Armin proposes that WaitForTerminatingWorkers needs to do CloseHandle()
> on the various thread handles. That sounds plausible but I don't know
> enough Windows programming to know if it really matters.
>
> 3. Should we replace ExitThread() with _endthreadex()? Again, it
> seems plausible but I'm not the person to ask.
>
I think point (2) and (3) are related because using _endthreadex won't close the thread handle explicitly [1].
Refer line "_endthread automatically closes the thread handle, whereas _endthreadex does not."
В списке pgsql-hackers по дате отправления: