Memory leaks are observed for libgnutls in multi-thread mode

Nikos Mavrogiannopoulos nmav at gnutls.org
Tue Oct 13 15:56:42 CEST 2009


Hi,
 thanks for the investigation.
>From the following trace:
                libgcrypt.so.11`md_enable+0xfc
                libgcrypt.so.11`md_open+0xfc

I suppose that this leak occurs in libgcrypt md_enable() in md.c. I
cannot figure out where exactly though. I CC the gcrypt-devel list for
more insight.

best regards,
Nikos

2009/10/12 tangtong <tang__tong at hotmail.com>:
> I have redone my test and go through the memory leak points, I get the
> following info:
>> ::findleaks
> CACHE     LEAKED   BUFCTL CALLER
> 00204e08       1 004ab7e8 libclntsh.so.10.1`sigpnm+0x80
> 0020b188    7816 007f53b0 libgcrypt.so.11`do_malloc+0x54
> 0020ae08     106 0130e960 libgcrypt.so.11`do_malloc+0x54
> 0020dc08       1 00c0cd98 libgcrypt.so.11`do_malloc+0x54
> 0020dc08      63 008a5e78 libgcrypt.so.11`do_malloc+0x54
> 0020ae08    8153 0043f518 libgcrypt.so.11`do_malloc+0x54
> 0020b188     422 01046168 libgcrypt.so.11`do_malloc+0x54
> 0020dc08    8330 00b3d860 libgcrypt.so.11`do_malloc+0x54
> 0020dc08    8230 01206438 libgcrypt.so.11`do_malloc+0x54
> ----------------------------------------------------------------------
>    To! tal   33122 buffers, 21130336 bytes
>
>> 007f53b0$<bufctl_audit
> 0x7f53b0:       next            addr            slab
>                 0               7f3700          21aa50
> 0x7f53bc:       cache           timestamp       thread
>                 20b188          738886035200566511        &nb! sp;
> 0x7f53cc:       lastlog         contents        stackdepth
>                 1d8000          0               15
>                 libumem.so.1`umem_cache_alloc+0x208
>                 libumem.so.1`umem_alloc+0x44
>                 libumem.so.1`malloc+0x2c
>                 libgcrypt.so.11`do_malloc+0x54
>       &nbs! p;         libgcrypt.so.11`_gcry_malloc+0x10
>                 libgcrypt.so.11`md_enable+0xfc
>                 libgcrypt.so.11`md_open+0xfc
>                 libgcrypt.so.11`_gcry_md_open+0x4c
>                 libgnutls.so.26`wrap_gcry_hash_init+0x60
>                 libgnutls.so.26`_gnutls_hash_init+0x78
>                 libgnutls.so.26`gnutls_handshake+0xe8
>                 libUE.so`_ZN12SSLSETDriver9onRec! eiveEv+0x268
>                 libUE.so`_ZN12InTaskRunner3runEv+0x118
>                 libclassutil.so`_ZN7MThread7routineEv+0x28
>                 libclassutil.so`_ZN7MThread10thrRoutineEPv+0x1c
>
> All other leaks points also show the same clues: memory leaks happen during
> the gnutls_handshake.
>
> For the report of MDB, total 21130336 bytes memory leaks are observed. I
> have launched 167201 session in 3344 seconds.
>
> Anybody can give me some helps? If I am not using gnutls in the proper
> way???
>
> Regards
> Tony
>
> ________________________________
> From: tang__tong at hotmail.com
> To: help-gnutls at gnu.org
> Date: Sat, 10 Oct 2009 08:21:05 +0000
> Subject: Memory leaks are observed for libgcrypt.so.11 in multi-thread mode
>
> Hi,
> My program is a multi-thread server(pthread) working in Solaris enviorment,
> For thread-safe consideration, according to the guide, I have defined the
> following macro and call the specific function during iniatlization:
> GCRY_THREAD_OPTION_PTHREAD_IMPL;
>  gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
>
> Scenario1:
> Launch Tls session one after another to guarantee there is no concurrency
> existing between tls session, there is no memory leak reported by MDB;
>
>
> Scenario2:
> Launch TLS session concurrently, e.g., 50 TPS,  memory leaks are reported by
> MDB
>
>> ::findleaks
> CACHE     LEAKED   BUFCTL CALLER
> 00204a88      17 0053b860 libUE.so`_ZN12PacketHelper12createPacketEi+0x34
> 0020dc08      27 00aea708 libgcrypt.so.11`do_malloc+0x54
> 0020b188      88 012f0b40 libgcrypt.so.11`do_malloc+0x54
> 0020dc08&n! bsp;    100 013aa000 libgcrypt.so.11`do_malloc+0x54
> 0020ae08      64 00461e00 libgcrypt.so.11`do_malloc+0x54
> 0020b188      39 0073a780 libgcrypt.so.11`do_malloc+0x54
> 0020ae08      65 016cf248 libgcrypt.so.11`do_malloc+0x54
> 0020dc08     129 00aea7f8 libgcrypt.so.11`do_malloc+0x54
> ----------------------------------------------------------------------
>    Total     529 buffers, 325752 bytes
>
> I have disabled the session reusage and deinit tls sessions structure with
> gnutls_deinit().
>
> Anybody can give me some tips on this issue?
>
> Regards
> Tony
>
>
>
>
>
>
>
>
>
>
>
> ________________________________
> 使用新一代 Windows Live Messenger 轻松交流和共享! 立刻下载!
> ________________________________
> 使用新一代 Windows Live Messenger 轻松交流和共享! 立刻下载!
> _______________________________________________
> Help-gnutls mailing list
> Help-gnutls at gnu.org
> http://lists.gnu.org/mailman/listinfo/help-gnutls
>
>



More information about the Gcrypt-devel mailing list