From: Andrey Borodin <x4mmm(at)yandex-team(dot)ru>
To: Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com>
Cc: Heikki Linnakangas <hlinnaka(at)iki(dot)fi>, Robert Haas <robertmhaas(at)gmail(dot)com>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Костя Кузнецов <chapaev28(at)ya(dot)ru>
Subject: Re: GiST VACUUM
Date: 2018-07-29 11:47:29
Views: Raw Message | Whole Thread | Download mbox | Resend email
Lists: pgsql-hackers


Thank you!

> 29 июля 2018 г., в 14:04, Thomas Munro <thomas(dot)munro(at)enterprisedb(dot)com> написал(а):
> On Tue, Jul 24, 2018 at 6:04 AM, Andrey Borodin <x4mmm(at)yandex-team(dot)ru> wrote:
>>> 21 июля 2018 г., в 17:11, Andrey Borodin <x4mmm(at)yandex-team(dot)ru> написал(а):
>>> <0001-Physical-GiST-scan-in-VACUUM-v13.patch>
>> Just in case, here's second part of patch series with actual page deletion.
> Hi Andrey,
> Cfbot says:
> That's because you declared a new variable after some other
> statements. You can't do that in old school C89.
Yep, mismerged patch steps and created misplaced declaration

> That segfaulted here:
> #0 0x00000000004ab620 in setinternal (state=<optimized out>,
> state=<optimized out>, blkno=368) at gistvacuum.c:44
> 44 state->internalPagesMap[blkno / 8] |= 1 << (blkno % 8);
> internalPagesMap was NULL, or pointed to memory that was too small and
> happened to be near an unmapped region (unlikely?), or was some other
> corrupted address?
Yes, there was conditionally uninitialized variable mapNumPages. I do not know why it didn't trigger failure last time, but now it was reproduced on my machine reliably.

Fixed both problems. PFA v14.

Best regards, Andrey Borodin.

Attachment Content-Type Size
0002-Delete-pages-during-GiST-VACUUM-v14.patch application/octet-stream 23.8 KB
0001-Physical-GiST-scan-in-VACUUM-v14.patch application/octet-stream 16.6 KB

In response to


Browse pgsql-hackers by date

  From Date Subject
Next Message Tomas Vondra 2018-07-29 12:03:22 Re: [PATCH] Improve geometric types
Previous Message Thomas Munro 2018-07-29 11:28:49 Re: [PATCH] Improve geometric types