Re: Cancel/Kill backend functions
От | Tom Lane |
---|---|
Тема | Re: Cancel/Kill backend functions |
Дата | |
Msg-id | 14315.1085720470@sss.pgh.pa.us обсуждение исходный текст |
Ответ на | Re: Cancel/Kill backend functions (Neil Conway <neilc@samurai.com>) |
Ответы |
Re: Cancel/Kill backend functions
|
Список | pgsql-patches |
Neil Conway <neilc@samurai.com> writes: > Magnus Hagander wrote: >> You'd actually need to get a pid *reuse* during that short time. > That isn't so implausible on a system which assigns PIDs randomly. > Holding the SInvalLock doesn't remove the race condition, but it > makes it less likely to occur for essentially very little cost. Other than holding a fairly critical lock for an operation that will take an unknown amount of time. Since PG is not root, even if the PID has been reused, it's not possible to kill some random process with this. You could only kill another postgres process, and in practice this would more or less have to be a new backend that had gotten reassigned the same PID just abandoned a moment before by the one you intended to kill. I don't think this is a very likely scenario. In fact, I suspect there are interlocks in the kernel to prevent recycling a PID quite that quickly, because otherwise practically *any* use of kill() would be too hazardous to contemplate. >> Bottom line - while maybe slightly more correcet, not sure it's >> necessary. > IMHO it's worth doing. I disagree. regards, tom lane
В списке pgsql-patches по дате отправления: