BUG #17184: When using openssl, the memory of a static variable is not freed in libpq
The following bug has been logged on the website:
Bug reference: 17184
Logged by: Alexander Dzyuba
Email address: kaegoorn48@gmail.com
PostgreSQL version: 12.8
Operating system: Linux
Description:
Valgrind shows static variable memory is not freed when using openssl
libpq/fe-secure-openssl.c:1571
static BIO_METHOD *my_bio_methods;
Please add a method that will free memory after use
PG Bug reporting form <noreply@postgresql.org> writes:
Valgrind shows static variable memory is not freed when using openssl
libpq/fe-secure-openssl.c:1571
static BIO_METHOD *my_bio_methods;
Please add a method that will free memory after use
Why? It's not leaked: the struct is still available for use
in future connection attempts.
regards, tom lane
I know that this is not the real leak, but memcheck analysis shows that the
memory was not released. Because of this, CI tests fail and deploy is
blocked.
ср, 8 сент. 2021 г. в 16:35, Tom Lane <tgl@sss.pgh.pa.us>:
Show quoted text
PG Bug reporting form <noreply@postgresql.org> writes:
Valgrind shows static variable memory is not freed when using openssl
libpq/fe-secure-openssl.c:1571
static BIO_METHOD *my_bio_methods;Please add a method that will free memory after use
Why? It's not leaked: the struct is still available for use
in future connection attempts.regards, tom lane
On Thu, Sep 09, 2021 at 08:32:58AM +0300, Alexander Dzuba wrote:
I know that this is not the real leak, but memcheck analysis shows that the
memory was not released. Because of this, CI tests fail and deploy is
blocked.
Perhaps there is room for improvement in valgrind.supp then?
--
Michael
At Fri, 10 Sep 2021 11:12:21 +0900, Michael Paquier <michael@paquier.xyz> wrote in
On Thu, Sep 09, 2021 at 08:32:58AM +0300, Alexander Dzuba wrote:
I know that this is not the real leak, but memcheck analysis shows that the
memory was not released. Because of this, CI tests fail and deploy is
blocked.Perhaps there is room for improvement in valgrind.supp then?
If I specified '--leak-check=full --show-leak-kinds=reachable' (or
'all') for psql, I see many other complaints for the other than the
my_BIO_s_socket. And I saw two errors in my_BIO_s_socket.
So even if I tried to silence valgrind about the errors by inserting
something like the below into the file, still there are many other
errors.
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: reachable
fun:malloc
...
fun:initialize_SSL
}
The following beats out all reachable errors come from malloc, realloc
and calloc (and any other *alloc's:p) but I don't think this is what
we want here...
{
<insert_a_suppression_name_here>
Memcheck:Leak
match-leak-kinds: reachable
fun:*alloc
}
regards.
--
Kyotaro Horiguchi
NTT Open Source Software Center