[Date Prev][Date Next] [Chronological] [Thread] [Top]

RE: ldap_result() fails on large results



This sounds like ITS#2490. This may be rather difficult to track down since
it appears to be timing related, and also depending on the CPU speeds. It is
unlikely that you're returning thru line 680 of liblber/io.c unless your C
compiler ignores assert() statements. If you've gotten this far, you might
try putting some breakpoints in there and also look at the error code in
errno when it's about to return LBER_DEFAULT. Set a breakpoint at each of the
return statements so you can see what's really making it return the error. Or
examine the pointers in the ber structure and see where they're pointing, if
that's really the problem.

  -- Howard Chu
  Chief Architect, Symas Corp.       Director, Highland Sun
  http://www.symas.com               http://highlandsun.com/hyc
  Symas: Premier OpenSource Development and Support 

> -----Original Message-----
> From: owner-openldap-software@OpenLDAP.org
> [mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of Patrick Dreyer,
SY-UCP

> Hi
> 
> I'm doing a search with ldap_search_ext() which returns 1000 results.
> The problem is, that ldap_result() fails during processing the results
> and returns with -1 and zero for the LDAPMessage.

> ber_get_next() returns with LBER_DEFAULT.
> 
> ber_get_next() (io.c v 1.70.2.10)
> ==============
> Line 641:
>   if ((ber->ber_rwptr>=ber->ber_buf) && 
> (ber->ber_rwptr<ber->ber_end)) {
> 
> ber->ber_rwptr is not between ber->ber_buf and ber->ber_end and so the
> line 680
> 
>   assert( 0 ); /* ber structure is messed up ?*/
>   return LBER_DEFAULT;
> 
> is reached.

<<attachment: winmail.dat>>