Re: Probable memory leak with ECPG and AIX

Noah Misch <noah@leadboat.com>

From: Noah Misch <noah@leadboat.com>
To: Guillaume Lelarge <guillaume@lelarge.info>
Cc: PostgreSQL Developers <pgsql-hackers@postgresql.org>, "Dr. Michael Meskes" <michael.meskes@credativ.com>
Date: 2021-12-12T07:34:11Z
Lists: pgsql-hackers
On Fri, Dec 10, 2021 at 03:40:50PM +0100, Guillaume Lelarge wrote:
> After some time, the client
> crashes with a segfault error. According to him, it consumed around 256MB.
> What's weird is that it works great on Linux, but crashed on AIX.

That almost certainly means he's using a 32-bit binary with the default heap
size.  To use more heap on AIX, build 64-bit or override the heap size.  For
example, "env LDR_CNTRL=MAXDATA=0x80000000 ./a.out" gives 2GiB of heap.  See
https://www.postgresql.org/docs/devel/installation-platform-notes.html#INSTALLATION-NOTES-AIX
for more ways to control heap size.  While that documentation focuses on the
server, the same techniques apply to clients like your test program.

That said, I don't know why your test program reaches 256MB on AIX.  On
GNU/Linux, it uses a lot less.  What version of PostgreSQL provided your
client libraries?



Commits

  1. Fix previous commit's ecpg_clocale for ppc Darwin.

  2. ecpglib: call newlocale() once per process.