I've seen something similar in recent code. I was just tracking it down, so you basically saved me the effort of opening a ticket :). What I found so far is that when ldap_unbind(3) is called (which is required to release resources after the connection broke), the client library tries to send a LDAPUnbind request to the server, even though it just got a LDAP_SERVER_DOWN (-1). The behavior seems to be more frequent when the connection brakes while using ldapi://, and I couldn't spot the difference up to now, I'm just mentioning it in case it rings any bells.
I think not trapping SIGPIPE is correct, since this should definitely be delegated to the application. But the library itself shouldn't trigger false SIGPIPEs by trying to use a connection it knows it's broken.
I'll keep digging. p.
Ing. Pierangelo Masarati OpenLDAP Core Team
SysNet s.r.l. via Dossi, 8 - 27100 Pavia - ITALIA http://www.sys-net.it --------------------------------------- Office: +39 02 23998309 Mobile: +39 333 4963172 Email: pierangelo.masarati@sys-net.it ---------------------------------------