[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
times?

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

-- 
Every new beginning comes from some other beginning's end