Memory leaks are observed for libgnutls in multi-thread mode

tangtong tang__tong at hotmail.com
Mon Oct 19 05:37:18 CEST 2009


Hi,Nikos and Simon

I find out another condition for memory leaks beside -53 error is tls sessions's handshake process are interweaven together. If the hanshake of  tls sessions are finished before another session is launched,no memory leaks happen;
But if the handshake of tls sessions are interlaced and at the same time -53 error is observed, the memory leaks will happen. BTW, In my program, all tls session share the same credentials.

Regards
Tony

From: tang__tong at hotmail.com
To: nmav at gnutls.org
Date: Mon, 19 Oct 2009 03:11:07 +0000
CC: simon at josefsson.org; help-gnutls at gnu.org
Subject: RE: Memory leaks are observed for libgnutls in multi-thread mode








Hi,Nikos

The attach is the log for 8tps/20tps, both have memory-leaks.

Regards
Tony


> Date: Sun, 18 Oct 2009 10:32:45 +0300
> From: nmav at gnutls.org
> To: tang__tong at hotmail.com
> CC: simon at josefsson.org; help-gnutls at gnu.org
> Subject: Re: Memory leaks are observed for libgnutls in multi-thread mode
> 
> tangtong wrote:
> > Hi,Nikos and Simon
> > 
> > To verify the issue, I have configured my server to run as signle thread mode. Under high TPS, the memory leak still happen in gnutls_handshake, which means the root-cause is not caused by multi-thread. 
> > 
> > By more logs and analysis, I have the following findings:
> > Under high TPS, my server can't serve every session timely, which leads to the closure of the sockets by the clients for timeout reason. The write operation on the server side of the corresponding socket leads to broken pipe error. gnutls_handshake() reports GNUTLS_E_PUSH_ERROR, -53. As a result, the hand-shake stage of tls session is not finished successfully. 
> > 
> > After repeated testing, It is evident when aborted tls session caused by error -53 are observed, the memory leak happen. 
> > 
> > I have double check my codes, for these aborted session, I have called the gnutls_bye()/gnutls_deinit() function.
> > 
> > My assumption now is for those session which has unfinished hand-shake stage, the resourses are not released properly in gnutls_handshake() for some reason.
> 
> Could you for this (memory leak) scenario to send us debugging output of
> gnutls? To do that just add a logging function such as:
> 
> static void
> tls_log_func (int level, const char *str)
> {
>   fprintf (stderr, "|<%d>| %s", level, str);
> }
> 
> and call those after initialization of gnutls.
>   gnutls_global_set_log_function (tls_log_func);
>   gnutls_global_set_log_level (2);
> 
> 
> regards,
> Nikos
 		 	   		  
更多热辣资讯尽在新版MSN首页! 立刻访问! 		 	   		  
_________________________________________________________________
Messenger安全保护中心,免费修复系统漏洞,保护Messenger安全!
http://im.live.cn/safe/
-------------- next part --------------
An HTML attachment was scrubbed...
URL: </pipermail/attachments/20091019/5b816ac3/attachment.htm>


More information about the Gnutls-help mailing list