Re: possible deadlock: different lock ordering for heap pages

2019-02-03 Thread Amit Kapila
On Fri, Feb 1, 2019 at 10:50 AM Amit Kapila wrote: > > On Mon, Jan 21, 2019 at 10:39 PM Nishant, Fnu wrote: > > > > Thanks Amit for your review. > > > > On 1/20/19, 6:55 AM, "Amit Kapila" wrote: > > > I think you need to change below code as well > >Assert(buffer2 ==

Re: possible deadlock: different lock ordering for heap pages

2019-01-31 Thread Nishant, Fnu
On 1/31/19, 9:21 PM, "Amit Kapila" wrote: > BTW, do you have a reproducible test case for this fix? How did you catch this, browsing code? Yes, I observed it while reading code. I do not have a repro. > How do we pronounce your name, is Nishant Fnu okay? I would like to

Re: possible deadlock: different lock ordering for heap pages

2019-01-31 Thread Amit Kapila
On Mon, Jan 21, 2019 at 10:39 PM Nishant, Fnu wrote: > > Thanks Amit for your review. > > On 1/20/19, 6:55 AM, "Amit Kapila" wrote: > > I think you need to change below code as well >Assert(buffer2 == InvalidBuffer || buffer1 <= buffer2); > > Done. Updated the patch. > Attached

Re: possible deadlock: different lock ordering for heap pages

2019-01-31 Thread Robert Haas
On Sun, Jan 20, 2019 at 9:55 AM Amit Kapila wrote: > Robert, can you please once see if we are missing anything here > because to me the report and fix look genuine. I think so, too. I guess the probability of a deadlock here must be *very* low. -- Robert Haas EnterpriseDB:

Re: possible deadlock: different lock ordering for heap pages

2019-01-20 Thread Amit Kapila
On Sat, Jan 19, 2019 at 4:02 AM Nishant, Fnu wrote: > > Hello, > > While locking heap pages (function RelationGetBufferForTuple() in file hio.c) > we acquire locks in increasing block number order to avoid deadlock. In > certain cases, we do have to drop and reacquire lock on heap pages (when