|
From: Brad D. <br...@Di...> - 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
|