Re: Probable memory leak with ECPG and AIX

From: Noah Misch <noah(at)leadboat(dot)com>
To: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
Cc: Benoit Lobréau <benoit(dot)lobreau(at)gmail(dot)com>, Guillaume Lelarge <guillaume(at)lelarge(dot)info>, PostgreSQL Developers <pgsql-hackers(at)postgresql(dot)org>, "Dr(dot) Michael Meskes" <michael(dot)meskes(at)credativ(dot)com>
Subject: Re: Probable memory leak with ECPG and AIX
Date: 2022-01-02 00:07:50
Message-ID: 20220102000750.GB54621@rfd.leadboat.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

On Sat, Jan 01, 2022 at 11:35:02AM -0500, Tom Lane wrote:
> Noah Misch <noah(at)leadboat(dot)com> writes:
> > I get the same results. The leak arises because AIX freelocale() doesn't free
> > all memory allocated in newlocale(). The following program uses trivial
> > memory on GNU/Linux, but it leaks like you're seeing on AIX:
>
> Bleah.
>
> > If you have access to file an AIX bug, I recommend doing so. If we want
> > PostgreSQL to work around this, one idea is to have ECPG do this newlocale()
> > less often. For example, do it once per process or once per connection
> > instead of once per ecpg_do_prologue().
>
> It's worse than that: see also ECPGget_desc(). Seems like a case
> could be made for doing something about this just on the basis
> of cycles expended, never mind freelocale() bugs.

Agreed. Once per process seems best. I only hesitated before since it means
nothing will free this storage, which could be annoying in the context of
Valgrind and similar. However, ECPG already has bits of never-freed memory in
the form of pthread_key_create() calls having no pthread_key_delete(), so I
don't mind adding a bit more.

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Fabien COELHO 2022-01-02 12:07:29 Re: pg_ls_tmpdir to show directories and shared filesets (and pg_ls_*)
Previous Message Zhihong Yu 2022-01-01 21:16:47 Re: Collecting statistics about contents of JSONB columns