Re: [HACKERS] Parallel Bitmap scans a bit broken
| От | Robert Haas |
|---|---|
| Тема | Re: [HACKERS] Parallel Bitmap scans a bit broken |
| Дата | |
| Msg-id | CA+TgmoYTHt7WUio2Kx+qbR1Uk3ufcMsvejMCDx7WB90Gf4DjDw@mail.gmail.com обсуждение исходный текст |
| Ответ на | Re: [HACKERS] Parallel Bitmap scans a bit broken (Dilip Kumar <dilipbalaut@gmail.com>) |
| Ответы |
Re: [HACKERS] Parallel Bitmap scans a bit broken
Re: [HACKERS] Parallel Bitmap scans a bit broken |
| Список | pgsql-hackers |
On Thu, Mar 9, 2017 at 11:50 AM, Dilip Kumar <dilipbalaut@gmail.com> wrote:
> On Thu, Mar 9, 2017 at 10:02 PM, Dilip Kumar <dilipbalaut@gmail.com> wrote:
>> I slightly modified your query to reproduce this issue.
>>
>> explain analyze select * from r1 where value<555;
>>
>> Patch is attached to fix the problem.
>
> I forgot to mention the cause of the problem.
>
> if (istate->schunkptr < istate->nchunks)
> {
> PagetableEntry *chunk = &ptbase[idxchunks[istate->schunkptr]];
> PagetableEntry *page = &ptbase[idxpages[istate->spageptr]];
> BlockNumber chunk_blockno;
>
> In above if condition we have only checked istate->schunkptr <
> istate->nchunks that means we have some chunk left so we are safe to
> access idxchunks, But just after that we are accessing
> ptbase[idxpages[istate->spageptr]] without checking that accessing
> idxpages is safe or not.
>
> tbm_iterator already handling this case, I broke it in tbm_shared_iterator.
I don't know if this is the only problem -- it would be good if David
could retest -- but it's certainly *a* problem, so committed.
--
Robert Haas
EnterpriseDB: http://www.enterprisedb.com
The Enterprise PostgreSQL Company
В списке pgsql-hackers по дате отправления: