From: | Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> |
---|---|
To: | Victor Yegorov <vyegorov(at)gmail(dot)com> |
Cc: | PostgreSQL mailing lists <pgsql-bugs(at)lists(dot)postgresql(dot)org> |
Subject: | Re: BUG #15290: Stuck Parallel Index Scan query |
Date: | 2018-07-25 02:04:11 |
Message-ID: | CAEepm=3mshr1rq_wdD20w3CDtK11HoCd-eg6Q26-PMusyTKXDQ@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-bugs |
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.
--
Thomas Munro
http://www.enterprisedb.com
From | Date | Subject | |
---|---|---|---|
Next Message | Andres Freund | 2018-07-25 02:08:05 | Re: BUG #15290: Stuck Parallel Index Scan query |
Previous Message | Andres Freund | 2018-07-24 22:06:30 | Re: BUG #15293: Stored Procedure Triggered by Logical Replication is Unable to use Notification Events |