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

(ITS#5127) ldap_unbind unhandled SIGPIPE



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.