[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
error on select()
> I'am using sendmail (8.12.3) and openldap (2.0.25) for access map. At
> some times, sendmail receive LDAP_SERVER_DOWN from libldap. LDAP server
> i'snt down and others sendmail's are using access map at this time.
> Looking at the libldap code
> (openldap-2.0.25/libraries/libldap/os-ip.c), at the do_ldap_select(),
> the call of select( fd, .. ,... ,...,...) return "Interrupted system
> call" and this return generate LDAP_SERVER_DOWN.
I send message above to sendmail-questions@sendmail.org
Response from sendmail Team:
"This appears to be a problem in the LDAP library. There is nothing
sendmail can do to avoid this. OpenLDAP should be patched to do the
right thing with signal interrupts (EINTR)."
I change "select()" call at os-ip.c (row 667 )to :
....
do {
result = select( ldap_int_tblsize,
&sip->si_use_readfds,
&sip->si_use_writefds,
NULL, timeout );
}
while ((result == -1) && (errno == EINTR));
return( result );
....
With this, the problems had finished.
My question, this implementation can be used to skirt this
problem or
can cause other bigger problems ?
Thanks,
--
Luiz Henrique Duma