Re: BUG #15290: Stuck Parallel Index Scan query

From: Amit Kapila <amit(dot)kapila16(at)gmail(dot)com>
To: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
Cc: Andres Freund <andres(at)anarazel(dot)de>, Victor Yegorov <vyegorov(at)gmail(dot)com>, PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org>
Subject: Re: BUG #15290: Stuck Parallel Index Scan query
Date: 2018-07-25 05:46:55
Message-ID: CAA4eK1KW0aGZ4zHYNkGXEbbogXbsfZVwLyQDo_QY1TAO3i+WdQ@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

On Wed, Jul 25, 2018 at 8:43 AM, Amit Kapila <amit(dot)kapila16(at)gmail(dot)com> wrote:
> On Wed, Jul 25, 2018 at 8:29 AM, Thomas Munro
> <thomas(dot)munro(at)enterprisedb(dot)com> wrote:
>> On Wed, Jul 25, 2018 at 2:08 PM, Andres Freund <andres(at)anarazel(dot)de> wrote:
>>> On 2018-07-25 14:04:11 +1200, Thomas Munro wrote:
>>>> Ok, I see it:
>>>>
>>>> /* check for interrupts while we're not
>>>> holding any buffer lock */
>>>> CHECK_FOR_INTERRUPTS();
>>>> /* step right one page */
>>>> so->currPos.buf = _bt_getbuf(rel, blkno, BT_READ);
>>>> ...
>>>> /* nope, keep going */
>>>> if (scan->parallel_scan != NULL)
>>>> {
>>>> status = _bt_parallel_seize(scan, &blkno);
>>>>
>>>> That leads to a condition variable wait, while we still hold that
>>>> buffer lock. That prevents interrupts. Oops.
>>>
>
> Well spotted. I think here we can release the current page lock
> before calling _bt_parallel_seize as we don't need it to get the next
> page.
>

I have written a patch on the above lines and manually verified (by
reproducing the issue via debugger) that it fixes the issue. Thomas,
Victor, is it possible for you guys to see if the attached fixes the
issue for you?

--
With Regards,
Amit Kapila.
EnterpriseDB: http://www.enterprisedb.com

Attachment Content-Type Size
rel_buf_before_seize_pi_v1.patch application/octet-stream 757 bytes

In response to

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Michael Paquier 2018-07-25 05:48:57 Re: LLVM jit and matview
Previous Message Amit Kapila 2018-07-25 03:13:04 Re: BUG #15290: Stuck Parallel Index Scan query