čt 7. 11. 2019 v 6:56 odesílatel Amit Kapila <amit.kapil...@gmail.com> napsal:
> On Thu, Nov 7, 2019 at 10:46 AM Pavel Stehule <pavel.steh...@gmail.com> > wrote: > > > > čt 7. 11. 2019 v 3:42 odesílatel Amit Kapila <amit.kapil...@gmail.com> > napsal: > >> > >> On Wed, Nov 6, 2019 at 11:46 PM Pavel Stehule <pavel.steh...@gmail.com> > wrote: > >> > > >> > st 6. 11. 2019 v 14:59 odesílatel Tom Lane <t...@sss.pgh.pa.us> > napsal: > >> >> > >> >> Amit Kapila <amit.kapil...@gmail.com> writes: > >> >> > I think there is still a window where the same problem can happen, > say > >> >> > the signal has been sent by SendProcSignal to the required process > and > >> >> > it releases the ProcArrayLock. Now, the target process exits and a > >> >> > new process gets the same pid before the signal is received. > >> >> > >> >> In principle, no use of Unix signals is ever safe against this sort > >> >> of race condition --- process A can never know that process B didn't > >> >> exit immediately before A does kill(B, n). In practice, it's okay > >> >> because the kernel is expected not to reassign a dead PID for some > >> >> reasonable grace period [1]. I'd be inclined to lean more heavily > >> >> on that expectation than anything internal to Postgres. That is, > >> >> remembering the PID we want to kill for some small number of > >> >> microseconds is probably a safer API than anything that depends on > >> >> the contents of the ProcArray, because there indeed *isn't* any > >> >> guarantee that a ProcArray entry won't be recycled immediately. > >> >> > >> > >> Right, this makes sense. I think I was overly paranoid about this > >> behavior even though that was used at a few other places as this patch > >> might need to rely on many pids not being reused after the lock is > >> released. > >> > >> > > >> > > >> > so we can return back to just simple killing. > >> > > >> > >> I think so. I think we might want to add a comment about this race > >> condition and add or reference to comments in pg_signal_backend which > >> mentions the same race condition. > > > > > > Please, can you do it. It's bad task for my with my bad English. > > > > Okay, no problem. I will pick the previous version and do this. I > will post the patch in a day or so for your review. > Thank you very much Pavel > > -- > With Regards, > Amit Kapila. > EnterpriseDB: http://www.enterprisedb.com >