Re: BUG #16329: Valgrind detects an invalid read when building a gist index with buffering

Pavel Borisov <pashkin.elfe@gmail.com>

From: Pavel Borisov <pashkin.elfe@gmail.com>
To: Alexander Lakhin <exclusion@gmail.com>
Cc: Tom Lane <tgl@sss.pgh.pa.us>, pgsql-bugs@lists.postgresql.org
Date: 2020-10-12T12:30:02Z
Lists: pgsql-bugs

Attachments

>
>
> 2020-05-12 06:51:30.764 MSK postmaster[1439231] LOG:  server process (PID
> 1439277) was terminated by signal 11: Segmentation fault
> 2020-05-12 06:51:30.764 MSK postmaster[1439231] DETAIL:  Failed process
> was running: create index gist_pointidx6 on gist_point_tbl using gist(p)
> include(t) with (buffering = on, fillfactor=50);
>
> Best regards,
> Alexander
>

I investigated this issue under Valgrind and found that in v13 it is no
longer detected and the patch in the discussion above is no longer needed.
But I think that increasing test coverage is useful anyway, and it's good
to commit tests from this patch (the re-formatted version is below).
Also, there is a minor correction for the case of covering index where only
part of the columns are keys, others are just INCLUDE columns.

>
-- 
Best regards,
Pavel Borisov

Postgres Professional: http://postgrespro.com <http://www.postgrespro.com>

Commits

  1. Fix dereference of dangling pointer in GiST index buffering build.

  2. Fix GiST buffering build to work when there are included columns.

  3. Re-allow testing of GiST buffered builds.

  4. Add support for building GiST index by sorting.