On Thu, Apr 21, 2016 at 9:47 PM, Kyotaro HORIGUCHI <horiguchi.kyot...@lab.ntt.co.jp> wrote: > A lock was already held in BackendPidGetProc(). Is it also > needless? If so, we should use BackendPidGetProcWithLock() instad > (the name seems a bit confusing, though).
Oh, that's really sad. No, that lock is definitely needed. We should probably try to figure out some day if there is a way to make this completely lockless, but that'll have to be 9.7 material or later. :-( > What I did in the patch was just extending the lock duration > until reading the pointer proc. I didn't added any additional > lock. Sorry, I didn't realize that. Good point. >> > The >> > only thing we need to do is to prevent the value from being read >> > twice, and we already have precedent for how to prevent that in >> > freelist.c. > > However, I don't have objections for the patch applied. OK, let's leave it like that for now, then. -- Robert Haas EnterpriseDB: http://www.enterprisedb.com The Enterprise PostgreSQL Company -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers