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

Re: (ITS#5404) back-ldap fails intermittently with 80 Internal (implementation specific) error

toby@inf.ed.ac.uk wrote:

> The backtrace (in ldap_host_connected_to) is:
> (gdb) bt
> #0  ldap_host_connected_to (sb=0xb4124950, host=0x81b0efb "localhost")
>     at os-ip.c:586
> #1  0x081394b5 in ldap_int_sasl_bind (ld=0xb4131058, dn=0x0, 
>     mechs=<value optimized out>, sctrls=0x0, cctrls=0x0, flags=2, 
>     interact=0x81293b0 <lutil_sasl_interact>, defaults=0x892df98)
>     at cyrus.c:643
> #2  0x0813b45d in ldap_sasl_interactive_bind_s (ld=0xb4131058, dn=0x0, 
>     mechs=0x88bef98 "GSSAPI", serverControls=0x0, clientControls=0x0, flags=2, 
>     interact=0x81293b0 <lutil_sasl_interact>, defaults=0x892df98) at sasl.c:479
> #3  0x08109625 in ldap_back_dobind_int (lcp=0xb370e0a8, op=0x8952900, 
>     rs=0xb370f1c4, sendok=<value optimized out>, retries=0, dolock=1)
>     at bind.c:1997
> #4  0x080dab4b in ldap_back_search (op=0x8952900, rs=0xb370f1c4)
>     at search.c:166

Actually, I was too quick: the above stack backtrace looks inconsistent:
there is a call to ldap_sasl_interactive_bind_s at bind.c:1997, but it's
not inside ldap_back_dobind_int(); it's rather in
ldap_back_proxy_authz_bind(), which might be called by
ldap_back_dobind_int().  It might be useful if you try to see if the
issue can be reproduced with a non-optimized build, so that we can see
the actual behavior of the code from the backtrace, and see some arg
values that are now missing.

What could actually be happening is that although the authentication
fails, the fact that LDAP_OTHER is returned is not considered a
condition that requires to invalidate the connection handler, while
probably it should.  I'll provide a fix in this sense.


Ing. Pierangelo Masarati
OpenLDAP Core Team

SysNet s.r.l.
via Dossi, 8 - 27100 Pavia - ITALIA
Office:  +39 02 23998309
Mobile:  +39 333 4963172
Email:   pierangelo.masarati@sys-net.it