Re: Bug in ginRedoRecompress that causes opaque data on page to be overrun

From: Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru>
To: sivasubr(at)amazon(dot)com
Cc: Peter Geoghegan <pg(at)bowt(dot)ie>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: Bug in ginRedoRecompress that causes opaque data on page to be overrun
Date: 2018-09-05 09:26:46
Message-ID: CAPpHfdv1FkM3Lk7xGh1Wmo+u7xKV9GqNzLkc2mxiiX5OOqkN1Q@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Wed, Sep 5, 2018 at 1:45 AM R, Siva <sivasubr(at)amazon(dot)com> wrote:
> On Tue, Sep 4, 2018 at 09:16 PM, Alexander Korotkov <a(dot)korotkov(at)postgrespro(dot)ru> wrote:
> > Do you have a test scenario for reproduction of this issue? We need
> > it to ensure that fix is correct.
>
> Unfortunately, I do not have a way of reproducing this issue.
> So far I have tried a workload consisting of inserts (of the
> same attribute value that is indexed), batch deletes of rows
> and vacuum interleaved with engine crash/restarts.

Issue reproduction and testing is essential for bug fix. Remember
last time you reported GIN bug [1], after issue reproduction it
appears that we have more things to fix. I's quite clear for me that
if segment list contains GIN_SEGMENT_INSERT before GIN_SEGMENT_DELETE,
then it might lead to wrong behavior in ginRedoRecompress(). But it's
not yet clear to understand what code patch could lead to such segment
list... I'll explore code more and probably will come with some idea.

Links
[1] https://www.postgresql.org/message-id/flat/1531867212836.63354%40amazon.com

------
Alexander Korotkov
Postgres Professional: http://www.postgrespro.com
The Russian Postgres Company

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Alexander Korotkov 2018-09-05 09:35:41 Re: [HACKERS] Bug in to_timestamp().
Previous Message Gunnlaugur Thor Briem 2018-09-05 08:49:50 unaccent(text) fails depending on search_path (WAS: pg_upgrade fails saying function unaccent(text) doesn't exist)