[tpop3d-discuss] Memory leak?

Chris Lightfoot chris at ex-parrot.com
Fri, 10 May 2002 19:19:00 +0100

On Fri, May 10, 2002 at 11:12:28AM -0700, Marc Lewis wrote:
> On Thu, May 09, 2002 at 11:36:00PM +0100, Chris Lightfoot wrote:
> > I still don't understand this. The example code in the
> > openldap distribution doesn't seem to handle this
> > specially.
> > 
> > > tpop3d: getentry.c:46: ldap_next_entry: Assertion `entry != ((void *)0)'
> > > failed.quit: signal 6 post_fork = 0
> > > Aborted
> > 
> > Well, the patch was a bit bogus. Try the following instead
> > (it's against the original source code):
> Tried applying both patches, and its better, but it still fails after a
> bit.  It always seems to fail in the call to ldap_search_s.  The re-bind
> patch did seem to slow it down a bit, which is fine by me as long as valid
> passwords never get rejected.
> This patch, against your patched auth_ldap.c, fixed it for me.  Its
> probably the totally wrong way to do it, but I beat the snot out of it with
> multiple expect scripts doing nothing but logging in and logging out for 30
> minutes, generating between 100 and 150 connections per minute, and had not
> a single failure to authenticate.  There were quite a few ldap timeouts,
> but it retries and succeeds on the second try.  Not sure why, but it looks
> like it needs this on our system.

How bizarre. I see that you've put both the call to
ldap_search_s and to ldap_simple_bind_s in loops -- is the
latter necessary? Perhaps I should alter the code so that
all calls to the ldap library are attempted multiple

Did you try your patch without reconnecting to the LDAP
server on each authentication?

Every new beginning comes from some other beginning's end