From: Brad D. <brad@DiggsFamily.net> - 2003-03-26 18:08:47
|
Per Graham's recommendations in the "unblessed reference?" thread, I enabled debug level 15 and got the following output: Net::LDAP=HASH(0x8169f70) sending: 30 28 02 01 01 60 23 02 01 03 04 14 63 6E 3D 44 0(...`#.....cn=D 69 72 65 63 74 6F 72 79 20 4D 61 6E 61 67 65 72 irectory Manager 80 08 61 64 6D 69 6E 31 32 33 __ __ __ __ __ __ ..password 0000 40: SEQUENCE { 0002 1: INTEGER = 1 0005 35: [APPLICATION 0] { 0007 1: INTEGER = 3 000A 20: STRING = 'cn=Directory Manager' 0020 8: [CONTEXT 0] 0022 : 61 64 6D 69 6E 31 32 33 __ __ __ __ __ __ __ __ password 002A : } 002A : } Net::LDAP=HASH(0x8169f70) received: 30 0C 02 01 01 61 07 0A 01 00 04 00 04 00 __ __ 0....a........ 0000 12: SEQUENCE { 0002 1: INTEGER = 1 0005 7: [APPLICATION 1] { 0007 1: ENUM = 0 000A 0: STRING = '' 000C 0: STRING = '' 000E : } 000E : } Adding Fname1, LName1, to samsun:389 via cn=Directory Manager:password DN before update "cn=Fname1 LName1, ou=People, o=diggsfamily" Net::LDAP=HASH(0x8169f70) sending: substr outside of string at /usr/lib/perl5/site_perl/5.8.0/Convert/ASN1/Debug.pm line 33, <PSAFILE> line 1. ------------------------------------------------------ Doing the same at debug level 12 yields the following: Net::LDAP=HASH(0x8169f70) sending: 0000 40: SEQUENCE { 0002 1: INTEGER = 1 0005 35: [APPLICATION 0] { 0007 1: INTEGER = 3 000A 20: STRING = 'cn=Directory Manager' 0020 8: [CONTEXT 0] 0022 : 61 64 6D 69 6E 31 32 33 __ __ __ __ __ __ __ __ password 002A : } 002A : } Net::LDAP=HASH(0x8169f70) received: 0000 12: SEQUENCE { 0002 1: INTEGER = 1 0005 7: [APPLICATION 1] { 0007 1: ENUM = 0 000A 0: STRING = '' 000C 0: STRING = '' 000E : } 000E : } Adding Fname1, LName1, to samsun:389 via cn=Directory Manager:password DN before update "cn=Fname1 LName1, ou=People, o=diggsfamily" Net::LDAP=HASH(0x8169f70) sending: 0000 194: SEQUENCE { 0003 1: INTEGER = 2 0006 194: [APPLICATION 8] { 0009 42: STRING 000B : C2 B2 04 2A 63 6E 3D 46 6E 61 6D 65 31 20 4C 4E ...*cn=Fname1 LN 001B : 61 6D 65 31 2C 20 6F 75 3D 50 65 6F 70 6C 65 2C ame1, ou=People, 002B : 20 6F 3D 64 69 67 67 73 66 61 __ __ __ __ __ __ o=diggsfa 0035 194: SEQUENCE { 0038 21: SEQUENCE { 003A 2: STRING 003C : C2 81 __ __ __ __ __ __ __ __ __ __ __ __ __ __ .. 003E 15: SET { 0040 13: STRING 0042 : 63 6E 31 0F 04 0D 46 6E 61 6D 65 31 20 __ __ __ cn1...Fname1 004F : } 004F : } 004F 65: SEQUENCE { 0051 11: STRING 0053 : 65 31 30 41 04 0B 6F 62 6A 65 63 __ __ __ __ __ e10A..objec 005E 50: SET { 0060 3: STRING = 'ss1' 0065 6: STRING 0067 : 03 74 6F 70 04 06 __ __ __ __ __ __ __ __ __ __ .top.. 006D 20: STRING 006F : 72 73 6F 6E 04 14 6F 72 67 61 6E 69 7A 61 74 69 rson..organizati 007F : 6F 6E 61 6C __ __ __ __ __ __ __ __ __ __ __ __ onal 0083 13: STRING 0085 : 72 73 6F 6E 04 0D 69 6E 65 74 4F 72 67 __ __ __ rson..inetOrg 0092 : } 0092 : } 0092 14: SEQUENCE { 0094 2: STRING = 'on' 0098 8: SET { 009A 6: STRING 009C : 73 6E 31 08 04 06 __ __ __ __ __ __ __ __ __ __ sn1... 00A2 : } 00A2 : } 00A2 21: SEQUENCE { 00A4 9: STRING 00A6 : 65 31 30 15 04 09 67 69 76 __ __ __ __ __ __ __ e10...giv 00AF 8: SET { 00B1 6: STRING 00B3 : 6D 65 31 08 04 06 __ __ __ __ __ __ __ __ __ __ me1... 00B9 : } 00B9 : } DN after update "cn=Fname1 LName1, ou=People, o=diggsfamily" Error: Add failed -> I/O Error ------------------------------------------------------ With regards to the directory server log files, the directory server never receives the LDAP add request. It sees a successful connect and BIND but no add. Brad On Wed, 2003-03-26 at 11:22, Brad Diggs wrote: > Thanks to Graham for the recommendation (although on another thread, > I added the following to my script, ran it, and then killed it with > "kill -USR2 <pid>". > > use Carp; > $SIG{USR2} = \&Carp::croak; > > The following line was the resulting error returned by my script: > > USR2 at /usr/lib/perl5/site_perl/5.8.0/Net/LDAP.pm line 661 > > Note that this is consistent with what I had assumed from my previous > note. The LDAP is getting hung up on the asn_read on line 661 of > LDAP.pm. > > Regards, > Brad > > > On Tue, 2003-03-25 at 21:08, Brad Diggs wrote: > > Based on the previous note and the following excerpt from the LDAP.pm > > perl module, I presume that after the bind, the LDAP socket or > > associated file handler must be getting dropped before I send a > > request to it. > > > > 652 sub _recvresp { > > 653 my $ldap = shift; > > 654 my $what = shift; > > 655 my $sock = $ldap->socket; > > 656 my $sel = IO::Select->new($sock); > > 657 my $ready; > > 658 > > 659 for( $ready = 1 ; $ready ; $ready = $sel->can_read(0)) { > > 660 my $pdu; > > 661 asn_read($sock, $pdu) > > 662 or return LDAP_OPERATIONS_ERROR; > > > > My guess is that the open() function and the asn_read() functions are > > colliding on the file handler for the LDAP connection socket. Thats > > just by guess though. > > > > What do you think? I sure would like to see the answer because I can't > > get my data loaded into the directory. > > > > Brad > > > > On Tue, 2003-03-25 at 15:11, Brad Diggs wrote: > > > Running with Net::LDAP debug of 12 didn't yield much different than > > > with 4. However, I ran with perl debugger on and got the following > > > when I did a Ctrl-c on the hang... > > > > > > Convert::ASN1::asn_read(/usr/lib/perl5/site_perl/5.8.0/Convert/ASN1/IO.pm:198): > > > 198: READ_ERR: > > > 199: $@ = "I/O Error $! " . CORE::unpack("H*",$_[1]); > > > > > > Should I be led to believe by this that the problem may be in the ASN > > > code? > > > > > > Brad |