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

problem adding a photo or audio attribute taken from a OpenLDAP V1 ldif file.



Hi,
I sent the below a few days ago, the resolution was to use the appropriate attribute such as jpegPhoto instead of photo. However the error message could use some work IMHO, "Can't contact LDAP server" isn't accurate.. Thanks.
Jim Howell



Hi,
I'm trying to upgrade my OpenLDAP system from V1.2.11 to V2.0.4 and I can't add either a photo or audio attribute taken from a V1 ldif file. Below are debug sessions from the client end, server end and then the slapd.conf. This is on a Solaris 2.6 system. The basic error is:


modifying entry "cn=dbt1, o=Cornell University, c=US"
ldap_modify: Can't contact LDAP server

ldif_record() = 81

I've been able to add attributes without a problem, here is output to verify that, you'll note "<removed>" where the data was of a sensitive nature:

/users/jwh2 98 %/opt/ldap-2.0.4/bin/ldapsearch -h solaris.cit.cornell.edu -b "o=Cornell
University, c=US" "(uid=dbt1)"
version: 2


#
# filter: (uid=dbt1)
# requesting: ALL
#

# dbt1, Cornell University, US
dn: cn=dbt1, o=Cornell University, c=US
objectClass: top
objectClass: inetorgperson
objectClass: person
objectClass: rfc822Delivery
cn: D B Taber
cn: D
mail: dbt1@cornell.edu
mail: dbt1@postoffice2.mail.cornell.edu
sn: TABER
uid: dbt1
title: Prog/ Analyst Spec
homePhone: <removed>
homePostalAddress: <removed>
employeeNumber: <removed>

# search result
search: 2
result: 0 Success

# numResponses: 2
# numEntries: 1


Client modify session:

/opt/ldap-2.0.4/bin/ldapmodify -d 1 -x -D "cn=Manager, o=Cornell University, c=US" -W -f dbt1_mod
ldap_create
Enter LDAP Password:
ldap_bind_s
ldap_simple_bind_s
ldap_sasl_bind_s
ldap_sasl_bind
ldap_send_initial_request
ldap_new_connection
ldap_int_open_connection
ldap_connect_to_host
ldap_pvt_gethostbyname_a: host=localhost, r=0
ldap_new_socket: 5
ldap_prepare_socket: 5
ldap_connect_to_host: Trying 127.0.0.1:389
ldap_connect_timeout: fd: 5 tm: -1 async: 0
ldap_ndelay_on: 5
ldap_ndelay_off: 5
ldap_delayed_open successful, ld_host is (null)
ldap_send_server_request
ber_flush: 57 bytes to sd 5
ldap_result
wait4msg (infinite timeout)
** Connections:
* host: localhost port: 389 (default)
refcnt: 2 status: Connected
last used: Mon Oct 9 13:25:09 2000


** Outstanding Requests:
 * msgid 1,  origid 1, status InProgress
   outstanding referrals 0, parent count 0
** Response Queue:
   Empty
do_ldap_select
read1msg
ber_get_next
ber_get_next: tag 0x30 len 12 contents:
ldap_read: message type bind msgid 1, original id 1
ber_scanf fmt ({iaa) ber:
read1msg:  0 new referrals
read1msg:  mark request completed, id = 1
request 1 done
res_errno: 0, res_error: <>, res_matched: <>
ldap_free_request (origid 1, msgid 1)
ldap_free_connection
ldap_free_connection: refcnt 1
ldap_parse_result
ber_scanf fmt ({iaa) ber:
ber_scanf fmt (}) ber:
ldap_msgfree
modifying entry "cn=dbt1, o=Cornell University, c=US"
ldap_modify_ext
ldap_send_initial_request
ldap_send_server_request
ber_flush: 359369 bytes to sd 5
ldap_free_request (origid 2, msgid 2)
ldap_free_connection
ldap_free_connection: refcnt 1
ldap_perror
ldap_modify: Can't contact LDAP server

ldif_record() = 81
ldap_unbind
ldap_free_connection
ldap_send_unbind
ber_flush: 7 bytes to sd 5
ldap_free_connection: actually freed
/users/jwh2 97 %

Server modify Session:

@(#) $OpenLDAP: slapd 2.0.4-Release (Fri Sep 29 07:17:33 EDT 2000) $
jwh2@solaris:/usr/local/src/ldap/openldap-2.0.4/servers/slapd
daemon_init: listen on ldap:///
daemon_init: 1 listeners to open...
ldap_url_parse(ldap:///)
daemon: initialized ldap:///
daemon_init: 1 listeners opened
slapd init: initiated server.
slapd startup: initiated.
slapd starting
connection_get(8): got connid=0
connection_read(8): checking for input on id=0
ber_get_next
sockbuf_read: want=1, got=1
0
sockbuf_read: want=1, got=1
7
sockbuf_read: want=55, got=55
02 01 01 ` 2 02 01 03 04 & c n = M a n
a g e r , 20 o = C o r n e l l 20
U n i v e r s i t y , 20 c = U S
80 05 <removed>
ber_get_next: tag 0x30 len 55 contents:
ber_get_next
do_bind
sockbuf_read: want=1 error=Resource temporarily unavailable
ber_get_next on fd 8 failed errno=11 (Resource temporarily unavailable)
ber_scanf fmt ({iat) ber:
ber_scanf fmt (o}) ber:
do_bind: version=3 dn="cn=Manager, o=Cornell University, c=US" method=128
dn2entry_r: dn: "CN=MANAGER,O=CORNELL UNIVERSITY,C=US"
=> dn2id( "CN=MANAGER,O=CORNELL UNIVERSITY,C=US" )
=> ldbm_cache_open( "/ldap_db/prod_db/dn2id.dbb", 7, 600 )
<= ldbm_cache_open (opened 0)
<= dn2id 2
=> id2entry_r( 2 )
=> ldbm_cache_open( "/ldap_db/prod_db/id2entry.dbb", 7, 600 )
<= ldbm_cache_open (opened 1)
=> str2entry
<= str2entry(cn=Manager, o=Cornell University, c=US) -> -1 (0x1171f0)
<= id2entry_r( 2 ) 0x1171f0 (disk)
====> cache_return_entry_r( 2 ): created (0)
do_bind: v3 bind: "cn=Manager, o=Cornell University, c=US" to "cn=Manager, o=Cornell University, c=US"
send_ldap_result: conn=0 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 8
0 0c 02 01 01 a 07 0a 01 00 04 00 04 00
sockbuf_write: want=14, written=14
0 0c 02 01 01 a 07 0a 01 00 04 00 04 00
connection_get(8): got connid=0
connection_read(8): checking for input on id=0
ber_get_next
sockbuf_read: want=1, got=0
(end)
ber_get_next on fd 8 failed errno=0 (Error 0)
connection_read(8): input error=-2 id=0, closing.
connection_closing: readying conn=0 sd=8 for close
connection_close: conn=0 sd=8
connection_get(8): got connid=1
connection_read(8): checking for input on id=1
ber_get_next
sockbuf_read: want=1, got=1
0
sockbuf_read: want=1, got=1
7
sockbuf_read: want=55, got=55
02 01 01 ` 2 02 01 03 04 & c n = M a n
a g e r , 20 o = C o r n e l l 20
U n i v e r s i t y , 20 c = U S
80 05 <removed>
ber_get_next: tag 0x30 len 55 contents:
ber_get_next
do_bind
sockbuf_read: want=1 error=Resource temporarily unavailable
ber_get_next on fd 8 failed errno=11 (Resource temporarily unavailable)
ber_scanf fmt ({iat) ber:
ber_scanf fmt (o}) ber:
do_bind: version=3 dn="cn=Manager, o=Cornell University, c=US" method=128
dn2entry_r: dn: "CN=MANAGER,O=CORNELL UNIVERSITY,C=US"
=> dn2id( "CN=MANAGER,O=CORNELL UNIVERSITY,C=US" )
====> cache_find_entry_dn2id("CN=MANAGER,O=CORNELL UNIVERSITY,C=US"): 2 (1 tries)
<= dn2id 2 (in cache)
=> id2entry_r( 2 )
====> cache_find_entry_id( 2 ) "cn=Manager, o=Cornell University, c=US" (found) (1 tries)
<= id2entry_r( 2 ) 0x1171f0 (cache)
====> cache_return_entry_r( 2 ): returned (0)
do_bind: v3 bind: "cn=Manager, o=Cornell University, c=US" to "cn=Manager, o=Cornell University, c=US"
send_ldap_result: conn=1 op=0 p=3
send_ldap_response: msgid=1 tag=97 err=0
ber_flush: 14 bytes to sd 8
0 0c 02 01 01 a 07 0a 01 00 04 00 04 00
sockbuf_write: want=14, written=14
0 0c 02 01 01 a 07 0a 01 00 04 00 04 00
connection_get(8): got connid=1
connection_read(8): checking for input on id=1
ber_get_next
sockbuf_read: want=1, got=1
0
sockbuf_read: want=1, got=1
83
sockbuf_read: want=3, got=3
05 { c4
ber_get_next on fd 8 failed errno=34 (Result too large)
connection_read(8): input error=-2 id=1, closing.
connection_closing: readying conn=1 sd=8 for close
connection_close: conn=1 sd=8
^Cslap_sig_shutdown: signal 2
daemon: shutdown requested and initiated.
slapd shutdown: waiting for 0 threads to terminate
slapd shutdown: initiated
ldbm backend syncing
ldbm flushing db (/ldap_db/prod_db/dn2id.dbb)
ldbm closing db (/ldap_db/prod_db/dn2id.dbb)
ldbm flushing db (/ldap_db/prod_db/id2entry.dbb)
ldbm closing db (/ldap_db/prod_db/id2entry.dbb)
ldbm backend done syncing
====> cache_release_all
slapd shutdown: freeing system resources.
slapd stopped.



Slapd.conf file will fix up ACLs when I go production:

# $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.4 2000/08/26 17:06:18 kurt Exp $
#
# See slapd.conf(5) for details on configuration options.
# This file should NOT be world readable.
#
include /opt/ldap-2.0.4/etc/openldap/schema/core.schema
include /opt/ldap-2.0.4/etc/openldap/schema/cosine.schema
include /opt/ldap-2.0.4/etc/openldap/schema/inetorgperson.schema


# Define global ACLs to disable default read access.

# Do not enable referrals until AFTER you have a working directory
# service AND an understanding of referrals.
#referral       ldap://root.openldap.org

pidfile         /opt/ldap/var/slapd.pid
argsfile        /opt/ldap/var/slapd.args
srvtab          /etc/srvtab

# Load dynamic backend modules:
# modulepath    /opt/ldap/libexec/openldap
# moduleload    back_ldap.la
# moduleload    back_ldbm.la
# moduleload    back_passwd.la
# moduleload    back_shell.la

#######################################################################
# ldbm database definitions
#######################################################################

database        ldbm
suffix          "o=Cornell University, c=US"
#suffix         "o=My Organization Name, c=US"
# rootdn                "cn=Manager, dc=my-domain, dc=com"
rootdn          "cn=Manager, o=Cornell University, c=US"
# Cleartext passwords, especially for the rootdn, should
# be avoid.  See slappasswd(8) and slapd.conf(5) for details.
# Use of strong authentication encouraged.
rootpw          <removed>
# The database directory MUST exist prior to running slapd AND
# should only be accessable by the slapd/tools. Mode 700 recommended.
# directory     /opt/ldap/var/openldap-ldbm
directory       /ldap_db/prod_db
# Indices to maintain
index   objectClass     eq
index   cn,uid          eq,pres,sub

# hold access to * by * read


Thanks for any ideas..
Jim