lib/libecpg.so.6.11 && valgrind

Started by Matthias Apitzalmost 6 years ago2 messagesgeneral
Jump to latest
#1Matthias Apitz
guru@unixarea.de

Hello,

We're getting to the finish line in the port of our servers to
PostgreSQL 11.4. and started valgrind'ing the code, as the PostgreSQL is
new in the servers. Of course we have our own homework to do, but there
are also complaints of valgrind pointing to the lib/libecpg.so.6.11, for
example:

==9773== 9 bytes in 1 blocks are still reachable in loss record 3 of 52
==9773== at 0x4C2E2E3: malloc (vg_replace_malloc.c:299)
==9773== by 0x1439F749: strdup (in /lib64/libc-2.26.so)
==9773== by 0x146DF448: ecpg_strdup (in /usr/local/sisis-pap/pgsql/lib/libecpg.so.6.11)
==9773== by 0x146E048E: ECPGconnect (in /usr/local/sisis-pap/pgsql/lib/libecpg.so.6.11)
==9773== by 0xB03E846: DB_opdbP (dbcall.pgc:794)
==9773== by 0xB03DFDB: DB_opdb (dbcall.pgc:556)
==9773== by 0x5CC22F2: EC_General::OpenDatabase(_SQL_EXCL) (eC_general.C:121)
==9773== by 0x40AEB8: SlnpInitDaemon (ACQDaemon.C:644)
==9773== by 0x40A878: main (ACQDaemon.C:213)

How the PostgreSQL community likes us to deal with this?

matthias
--
Matthias Apitz, ✉ guru@unixarea.de, http://www.unixarea.de/ +49-176-38902045
Public GnuPG key: http://www.unixarea.de/key.pub
May, 9: Спаси́бо освободители! Thank you very much, Russian liberators!

#2Michael Paquier
michael@paquier.xyz
In reply to: Matthias Apitz (#1)
Re: lib/libecpg.so.6.11 && valgrind

On Fri, May 29, 2020 at 02:37:29PM +0200, Matthias Apitz wrote:

We're getting to the finish line in the port of our servers to
PostgreSQL 11.4. and started valgrind'ing the code, as the PostgreSQL is
new in the servers. Of course we have our own homework to do, but there
are also complaints of valgrind pointing to the lib/libecpg.so.6.11, for
example:

==9773== 9 bytes in 1 blocks are still reachable in loss record 3 of 52
==9773== at 0x4C2E2E3: malloc (vg_replace_malloc.c:299)
==9773== by 0x1439F749: strdup (in /lib64/libc-2.26.so)
==9773== by 0x146DF448: ecpg_strdup (in /usr/local/sisis-pap/pgsql/lib/libecpg.so.6.11)
==9773== by 0x146E048E: ECPGconnect (in /usr/local/sisis-pap/pgsql/lib/libecpg.so.6.11)
==9773== by 0xB03E846: DB_opdbP (dbcall.pgc:794)
==9773== by 0xB03DFDB: DB_opdb (dbcall.pgc:556)
==9773== by 0x5CC22F2: EC_General::OpenDatabase(_SQL_EXCL) (eC_general.C:121)
==9773== by 0x40AEB8: SlnpInitDaemon (ACQDaemon.C:644)
==9773== by 0x40A878: main (ACQDaemon.C:213)

How the PostgreSQL community likes us to deal with this?

ECPGconnect() in src/interfaces/ecpg/ecpglib/connect.c is rather
careful in freeing any resource it allocates with ecpg_strdup() in the
various code paths where the call returns, particularly after calling
PQconnectdbParams(), and a quick installcheck run on a valgrind'ed
instance does not show me any leaks similar to what you have here
after testing on HEAD and REL_11_STABLE. It is likely possible that
we are missing something though, so could you send a test case to
reproduce what you are seeing?
--
Michael