Full_Name: Arlene Berry Version: 2.3.38 OS: Solaris URL: ftp://ftp.openldap.org/incoming/ Submission from: (NULL) (64.221.115.100)
I am using OpenLDAP 2.3.38 with Cyrus SASL and MIT Kerberos to communicate with Active Directory on Windows Server 2003 R2. I have been primarily working on Solaris 8 and 9 but we've also seen signs of this problem on Solaris 10, AIX, and HPUX. Initially I was using OpenLDAP 2.3.19 which also had the problem.
The sequence of events is that I bind to Active Directory, do a search, and successfully retrieve the results. Then I let my program and the LDAP connection sit idle for at least 15 minutes so that the LDAP connection will time out. Next I have the program do another ldap_search_ext which returns 0 and then ldap_result which returns -1. At this point the program does an ldap_unbind. What the program is supposed to do next is create a new LDAP connection and try the search again. Sometimes it does and sometimes I see an unhandled SIGPIPE error which causes the program to halt. When run under a debugger with the LDAP debug level set to 65535 this is what it shows:
ldap_unbind ldap_free_request (origid 8, msgid 8) ldap_free_connection 1 1 ldap_send_unbind t@1 (l@1) signal PIPE (Broken Pipe) in _libc_write at 0xff21e15c 0xff21e15c: _libc_write+0x000c: bgeu _libc_write+0x40 ! 0xff21e190 Current function is sb_stream_write 521 return write( sbiod->sbiod_sb->sb_fd, buf, len );
If I tell the debugger to continue or if I set SIGPIPE to SIG_IGN at the beginning of the program, it appears to continue successfully.