Re: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )

Поиск
Список
Период
Сортировка
От Bruce Momjian
Тема Re: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
Дата
Msg-id 199908171733.NAA02451@candle.pha.pa.us
обсуждение исходный текст
Ответ на Re: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )  (Tom Lane <tgl@sss.pgh.pa.us>)
Список pgsql-hackers
Got it.


> Bruce Momjian <maillist@candle.pha.pa.us> writes:
> >> storage/ipc/ipc.c ). Why it is, I don't know, but it seems that my solution
> >> uses the ipc library in the right way. There are no longer any error
> >> messages from the ipc library when running the server. And I can't say that
> >> the ipc library is a 100% correct implementation of SysV IPC, it is probably
> >> (sure ;-) )caused by the Windows internals.
> 
> > Seems we may have to use the patch, or make some other patch for NT-only
> > that works around this NT bug.
> 
> I don't have a problem with installing an NT patch (lord knows there
> are plenty of #ifdef __CYGWIN32__'s in the code already).  But I have
> a problem with *this* patch because I don't believe we understand what
> it is doing, and therefore I have no confidence in it.  The extent of
> our understanding so far is that one backend can create a semaphore that
> can be used by a later backend, but the postmaster cannot create a
> semaphore that can be used by a later backend.  I don't really believe
> that; I think there is something else going on.  Until we understand
> what the something else is, I don't think we have a trustworthy
> solution.
> 
> The real reason I feel itchy about this is that I know that interprocess
> synchronization is a very tricky area, so I'm not confident that the
> limited amount of testing Dan can do by himself proves that things are
> solid.  As the old saw goes, "testing cannot prove the absence of bugs".
> I want to have both clean test results *and* an understanding of what
> we are doing before I will feel comfortable.
> 
> Looking again at the code, it occurs to me that a backend exiting
> normally will probably leave its semaphore set nonzero, which could
> (given a buggy IPC library) have something to do with whether another
> process can attach to the sema or not.  The postmaster code is *trying*
> to create the semas with nonzero starting values, but I see that the
> backend code takes the additional step of doing
>         semun.val = IpcSemaphoreDefaultStartValue;
>         semctl(semId, semNum, SETVAL, semun);
> whereas the postmaster code doesn't.  Maybe the create call isn't
> initializing the semaphores the way it's told to?  It'd be worth
> trying adding a step like this to the postmaster preallocation.
> 
> In any case, I'd really like us to get some feedback from the author of
> cygipc about this issue.  I don't mind working around a bug once we
> understand exactly what the bug is --- but in this particular area,
> I think guessing our way to a workaround isn't good enough.
> 
>             regards, tom lane
> 


--  Bruce Momjian                        |  http://www.op.net/~candle maillist@candle.pha.pa.us            |  (610)
853-3000+  If your life is a hard drive,     |  830 Blythe Avenue +  Christ can be your backup.        |  Drexel Hill,
Pennsylvania19026
 


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

Предыдущее
От: Tom Lane
Дата:
Сообщение: Re: [HACKERS] backend freezeing on win32 fixed (I hope ;-) )
Следующее
От: "D'Arcy" "J.M." Cain
Дата:
Сообщение: Re: [HACKERS] Re: [CORE] Re: tomorrow