I should have subscribed to this list years ago... I have a problem with an LDAP search. In one particular script, it's returning a non-zero result code, with an error message of "I/O interrupted system call." In addition, the "net-ldap-socket" field in the LDAP object is disappearing (verified through a Dumper output of the LDAP object.) This occurs whether the LDAP object is scoped to the innermost loop, or globally scoped (reusing the connection.)
Here's a chunk of code: until (defined($LDAP->{'net_ldap_socket'})) { $LDAP_REGEN++; if (!defined($LDAP->{'net_ldap_socket'})) { $LDAP = Net::LDAP->new("ldap://localhost"); } $result = $LDAP->search ( "base" => $CFG{"base_dn"}, "scope" => "sub", "filter" => $ldapsearch, "attrs" => ['uid', 'uidnumber', 'gidnumber', 'gecos', 'homedirectory', 'loginshell' ] ); } The problem crops up during the $LDAP->search call. I've discovered that if I check the resultCode field, or the existence of the net-ldap-socket field, for the error condition, and simply loop until successful, I will get the intended results. At the moment, out of some 85-90 expected searches, it's having to regen the LDAP object some 60-65 times. This condition is somewhat consistent in that the failed searches do occasionally change, but only slightly from execution to execution. It also doesn't seem to matter if I connect to ldap://localhost, ldaps://localhost, ldap://some.other.host, ldaps://some.other.host, etc. Even when changing from non-secure to secure connections, the error appears to be largely similar. Running a wireshark capture against this traffic shows a connection reset(closure) from the script side, not the server side. Environment: <jkalc>:(/home/jkalc/389-ds) $ cat /etc/redhat-release CentOS release 6.6 (Final) <jkalc>:(/home/jkalc/389-ds) $ rpm -qa | grep -i ^perl perl-Array-Utils-0.5-1.el6.noarch perl-Excel-Writer-XLSX-0.84-1.el6.noarch perl-Pod-Escapes-1.04-136.el6_6.1.x86_64 perl-Module-Load-0.16-136.el6_6.1.x86_64 perl-IPC-Cmd-0.56-136.el6_6.1.x86_64 perl-Archive-Extract-0.38-136.el6_6.1.x86_64 perl-Digest-SHA-5.47-136.el6_6.1.x86_64 perl-Parse-CPAN-Meta-1.40-136.el6_6.1.x86_64 perl-Net-SSLeay-1.35-9.el6.x86_64 perl-NetAddr-IP-4.027-7.el6.x86_64 perl-MIME-Lite-3.027-2.el6.noarch perl-5.10.1-136.el6_6.1.x86_64 perl-ExtUtils-MakeMaker-6.55-136.el6_6.1.x86_64 perl-IO-Zlib-1.09-136.el6_6.1.x86_64 perl-Compress-Raw-Bzip2-2.021-136.el6_6.1.x86_64 perl-Test-Simple-0.92-136.el6_6.1.x86_64 perl-DBD-SQLite-1.27-3.el6.x86_64 perl-HTML-Parser-3.64-2.el6.x86_64 perl-Digest-SHA1-2.12-2.el6.x86_64 perl-Text-Iconv-1.7-6.el6.x86_64 perl-TermReadKey-2.30-13.el6.x86_64 perl-TimeDate-1.16-13.el6.noarch perl-Pod-Simple-3.13-136.el6_6.1.x86_64 perl-XML-Dumper-0.81-8.el6.noarch perl-Locale-Maketext-Simple-0.18-136.el6_6.1.x86_64 perl-Log-Message-0.02-136.el6_6.1.x86_64 perl-devel-5.10.1-136.el6_6.1.x86_64 perl-Compress-Raw-Zlib-2.021-136.el6_6.1.x86_64 perl-Archive-Tar-1.58-136.el6_6.1.x86_64 perl-Log-Message-Simple-0.04-136.el6_6.1.x86_64 perl-Module-CoreList-2.18-136.el6_6.1.x86_64 perl-IO-Compress-Bzip2-2.021-136.el6_6.1.x86_64 perl-parent-0.221-136.el6_6.1.x86_64 perl-Time-Piece-1.15-136.el6_6.1.x86_64 perl-HTML-Tagset-3.20-4.el6.noarch perl-XML-SAX-0.96-7.el6.noarch perl-libxml-perl-0.08-10.el6.noarch perl-Digest-HMAC-1.01-22.el6.noarch perl-XML-SAX-Writer-0.50-8.el6.noarch perl-Socket6-0.23-4.el6.x86_64 perl-Proc-ProcessTable-0.48-1.el6.x86_64 perl-Archive-Zip-1.30-2.el6.noarch perl-MailTools-2.04-4.el6.noarch perl-DBI-1.609-4.el6.x86_64 perl-libs-5.10.1-136.el6_6.1.x86_64 perl-XML-Twig-3.34-1.el6.noarch perl-Params-Check-0.26-136.el6_6.1.x86_64 perl-IO-Compress-Base-2.021-136.el6_6.1.x86_64 perl-ExtUtils-ParseXS-2.2003.0-136.el6_6.1.x86_64 perl-IO-Compress-Zlib-2.021-136.el6_6.1.x86_64 perl-File-Fetch-0.26-136.el6_6.1.x86_64 perl-Term-UI-0.20-136.el6_6.1.x86_64 perl-Module-Loaded-0.02-136.el6_6.1.x86_64 perl-Module-Build-0.3500-136.el6_6.1.x86_64 perl-CGI-3.51-136.el6_6.1.x86_64 perl-Time-HiRes-1.9721-136.el6_6.1.x86_64 perl-XML-LibXML-1.70-5.el6.x86_64 perl-XML-Parser-2.36-7.el6.x86_64 perl-Convert-ASN1-0.22-1.el6.noarch perl-Net-LibIDN-0.12-3.el6.x86_64 perl-LDAP-0.40-1.el6.noarch perl-Config-General-2.52-1.el6.noarch perl-Mozilla-LDAP-1.5.3-4.el6.x86_64 perl-Crypt-SSLeay-0.57-17.el6.x86_64 perl-Authen-SASL-2.13-3.el6.noarch perl-Email-Date-Format-1.002-5.el6.noarch perl-XML-Grove-0.46alpha-40.el6.noarch perl-version-0.77-136.el6_6.1.x86_64 perl-Test-Harness-3.17-136.el6_6.1.x86_64 perl-Compress-Zlib-2.021-136.el6_6.1.x86_64 perl-Object-Accessor-0.34-136.el6_6.1.x86_64 perl-ExtUtils-Embed-1.28-136.el6_6.1.x86_64 perl-core-5.10.1-136.el6_6.1.x86_64 perl-DBIx-Simple-1.32-3.el6.noarch perl-libwww-perl-5.833-2.el6.noarch perl-XML-Filter-BufferText-1.01-8.el6.noarch perl-IO-Socket-SSL-1.31-2.el6.noarch perl-Net-DNS-0.65-5.el6.x86_64 perl-MIME-Types-1.28-2.el6.noarch perl-URI-1.40-2.el6.noarch perl-Module-Pluggable-3.90-136.el6_6.1.x86_64 perl-Module-Load-Conditional-0.30-136.el6_6.1.x86_64 perl-Package-Constants-0.02-136.el6_6.1.x86_64 perl-ExtUtils-CBuilder-0.27-136.el6_6.1.x86_64 perl-CPAN-1.9402-136.el6_6.1.x86_64 perl-CPANPLUS-0.88-136.el6_6.1.x86_64 perl-XML-NamespaceSupport-1.10-3.el6.noarch perl-GSSAPI-0.26-6.el6.x86_64 I don't recall seeing this sort of error on other search calls, I'll have to spin through some other scripts I have here to verify. I do rather strongly suspect that I've got something strange happening in this script, as I've been able to abstract out the searches, and use them in another script en masse successfully and on the first pass through. Any suggestions on what/where to look next? Jeff Kalchik Systems Engineering Land O'Lakes This message may contain confidential material from Land O'Lakes, Inc. (or its subsidiary) for the sole use of the intended recipient(s) and may not be reviewed, disclosed, copied, distributed or used by anyone other than the intended recipient(s). If you are not the intended recipient, please contact the sender by reply email and delete all copies of this message.