Finding memory corruption in an extension

From: Jack Orenstein <jao(at)geophile(dot)com>
To: pgsql-general(at)postgresql(dot)org
Subject: Finding memory corruption in an extension
Date: 2021-01-08 17:47:53
Message-ID: CAGNxcavzErZhb+7h6O33wBJOo1qVhTYGNRyC-j3ZydDaQJOy7w@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

An extension I'm creating is causing Postgres to crash, almost certainly
due to memory corruption. I am using palloc0/pfree, calling SET_VARSIZE,
and generally following the procedures documented here:
https://www.postgresql.org/docs/12/xfunc-c.html. I am also testing my code
outside of Postgres (using alloc/free instead of palloc0/pfree), and
valgrind is not finding any corruption or leaks.

The crash is not completely reproducible, but when it does happen, it's
pretty fast -- create a table, insert a couple of rows, explain a query.
(My goal is to create a GIN index on my datatype, but this crash occurs
without the index.)

I'm interested in advice on how to go about hunting down my problem.
Something along the lines of a debugging malloc, or valgrind, for Postgres.

Jack Orenstein

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Pavel Stehule 2021-01-08 17:53:52 Re: Finding memory corruption in an extension
Previous Message Michael Lewis 2021-01-08 17:26:40 Re: Suggestion: provide a "TRUNCATE PARTITION" command