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: [email protected]
To: [email protected]
Date: Mon, 19 Oct 2009 03:11:07 +0000
CC: [email protected]; [email protected]
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: [email protected]
> To: [email protected]
> CC: [email protected]; [email protected]
> 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/_______________________________________________
Help-gnutls mailing list
[email protected]
http://lists.gnu.org/mailman/listinfo/help-gnutls