Posting on behalf of Sushmita ([EMAIL PROTECTED]), since
she is not in the mozilla "whitelist" :
---------------------------------------------------
Hi,
  I am implementing an LDAP client using Netscape LDAP sdk 5.
  The client fires async ldap searches and keeps polling for results
  in a loop. Every request is associated with a timer so that every
  request is polled for only a fixed amout of time. This timer
  has nothing to do with the timeout specified in the LDAP sdk APIs.
   If no results were obtained within the specified timeout value, I abandon
the
  request using ldap_abandon_ext. Please note that while polling
  I am not blocked on the ldap_result call since the timeval value
  passed to ldap_result is 0,0 for tv_sec and tv_usec.
  I am facing a very rapid growth in memory with the following scenario:
  - search requests fired at the rate of 100 per sec
  - the LDAP server is very slow and is not able to respond within
     the specified timeout value for every search, causing most (90 out of a
     total of 100 requests) to timeout and thus abandoned.
 The memory is going down only when I call an unbind on the ldap handle.

 I looked into the code of result.c and found the following:
  - in function read1msg(), a ber element is allocated.
    However it is not being freed in the following cases:
     -  ber_get_next() does not return LDAP_TAG_MESSAGE
        (line 500 - 513)
     -  ber_get_int() returns LBER_ERROR (line 523-526)

  I had some other questions regarding  LDAP_RES_UNSOLICITED :
  -  Under what conditions is LDAP_RES_UNSOLICITED returned from the
      Ldap server?
  -   How should the LDAPMessage allocated on obtaining a
LDAP_RES_UNSOLICITED
      be freed?

 Thanks and regards,
 Sushmita ([EMAIL PROTECTED])











Reply via email to