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

unclean shutdown



I have a problem (see my recent commit of libraries/libldap/cyrus.c)
When a back-{ldap,meta} has a connection open with a client (e.g.
a ldapmodify waiting for data) and I shut down the server, back-*
calls ldap_unbind to clear the ldap session with the target server;
this causes a SIGSEGV because ldap_int_sasl_close() calls sasl_dispose(),
which on turn calls ldap_pvt_sasl_mutex_lock() apparently passing a NULL
mutex. I put assertions in these helper functions to trap their
improper use; I also tried to handle these occurrences, by forcing
a SASL_FAIL return code when they're improperly called; in this case
the failure happens somewhere else in thread handling in libc.


I'm unable to debug this deeper. Another quick fix would be
not to ldap_unbind().


Pierangelo.

Dr. Pierangelo Masarati               | voice: +39 02 2399 8309
Dip. Ing. Aerospaziale                | fax:   +39 02 2399 8334
Politecnico di Milano                 | mailto:pierangelo.masarati@polimi.it
via La Masa 34, 20156 Milano, Italy   | http://www.aero.polimi.it/~masarati