hi-
i've been experimenting with using back-config (2.4.11 courtesy of debian), and am able to add schema, but not able to delete the schema after being added. iirc, this should be possible in recent versions? i'm confident that the schema's not in use by any entries.
adding the schema is successful:
ldapadd -xWD 'cn=admin,cn=config' -f java_schema.ldif
Enter LDAP Password: adding new entry "cn={13}java,cn=schema,cn=config"
ldapsearch confirms this:
ldapsearch -xWLLLb 'cn=schema,cn=config' -D 'cn=admin,cn=config'
"(cn=*java*)" dn Enter LDAP Password: dn: cn={13}java,cn=schema,cn=config
ldapdelete says:
ldapdelete -vxWD 'cn=admin,cn=config'
'cn={13}java,cn=schema,cn=config' ldap_initialize( <DEFAULT> ) Enter LDAP Password: deleting entry "cn={13}java,cn=schema,cn=config" ldap_delete: Server is unwilling to perform (53)
i'm not seasoned at interpreting slapd debug output, but nothing specifically jumps out at me when running with -d -1:
dnPrettyNormal: <cn=admin,cn=config>
=> ldap_bv2dn(cn=admin,cn=config,0) <= ldap_bv2dn(cn=admin,cn=config)=0 => ldap_dn2bv(272) <= ldap_dn2bv(cn=admin,cn=config)=0 => ldap_dn2bv(272) <= ldap_dn2bv(cn=admin,cn=config)=0 <<< dnPrettyNormal: <cn=admin,cn=config>, <cn=admin,cn=config> conn=1 op=0 BIND dn="cn=admin,cn=config" method=128 do_bind: version=3 dn="cn=admin,cn=config" method=128 conn=1 op=0 BIND dn="cn=admin,cn=config" mech=SIMPLE ssf=0 do_bind: v3 bind: "cn=admin,cn=config" to "cn=admin,cn=config" send_ldap_result: conn=1 op=0 p=3 send_ldap_result: err=0 matched="" text="" send_ldap_response: msgid=1 tag=97 err=0 ber_flush2: 14 bytes to sd 13 0000: 30 0c 02 01 01 61 07 0a 01 00 04 00 04 00 0....a........ ldap_write: want=14, written=14 0000: 30 0c 02 01 01 61 07 0a 01 00 04 00 04 00 0....a........ conn=1 op=0 RESULT tag=97 err=0 text= daemon: epoll: listen=8 active_threads=0 tvp=NULL daemon: activity on 1 descriptor daemon: activity on: daemon: epoll: listen=7 active_threads=0 tvp=NULL daemon: epoll: listen=8 active_threads=0 tvp=NULL daemon: activity on 1 descriptor daemon: activity on: 13r daemon: read active on 13 daemon: epoll: listen=7 active_threads=0 tvp=NULL daemon: epoll: listen=8 active_threads=0 tvp=NULL connection_get(13) connection_get(13): got connid=1 connection_read(13): checking for input on id=1 ber_get_next ldap_read: want=8, got=8 0000: 30 24 02 01 02 4a 1f 63 0$...J.c ldap_read: want=30, got=30 0000: 6e 3d 7b 31 33 7d 6a 61 76 61 2c 63 6e 3d 73 63 n={13}java,cn=sc 0010: 68 65 6d 61 2c 63 6e 3d 63 6f 6e 66 69 67 hema,cn=config ber_get_next: tag 0x30 len 36 contents: ber_dump: buf=0x8578290 ptr=0x8578290 end=0x85782b4 len=36 0000: 02 01 02 4a 1f 63 6e 3d 7b 31 33 7d 6a 61 76 61 ...J.cn={13}java 0010: 2c 63 6e 3d 73 63 68 65 6d 61 2c 63 6e 3d 63 6f ,cn=schema,cn=co 0020: 6e 66 69 67 nfig ber_get_next ldap_read: want=8 error=Resource temporarily unavailable conn=1 op=1 do_delete ber_scanf fmt (m) ber: ber_dump: buf=0x8578290 ptr=0x8578293 end=0x85782b4 len=33 0000: 4a 1f 63 6e 3d 7b 31 33 7d 6a 61 76 61 2c 63 6e J.cn={13}java,cn 0010: 3d 73 63 68 65 6d 61 2c 63 6e 3d 63 6f 6e 66 69 =schema,cn=confi 0020: 67 g
dnPrettyNormal: <cn={13}java,cn=schema,cn=config>
=> ldap_bv2dn(cn={13}java,cn=schema,cn=config,0) <= ldap_bv2dn(cn={13}java,cn=schema,cn=config)=0 => ldap_dn2bv(272) <= ldap_dn2bv(cn={13}java,cn=schema,cn=config)=0 => ldap_dn2bv(272) <= ldap_dn2bv(cn={13}java,cn=schema,cn=config)=0 <<< dnPrettyNormal: <cn={13}java,cn=schema,cn=config>, <cn={13}java,cn=schema,cn=config> conn=1 op=1 DEL dn="cn={13}java,cn=schema,cn=config" send_ldap_result: conn=1 op=1 p=3 send_ldap_result: err=53 matched="" text="" send_ldap_response: msgid=2 tag=107 err=53 ber_flush2: 14 bytes to sd 13 0000: 30 0c 02 01 02 6b 07 0a 01 35 04 00 04 00 0....k... 5.... ldap_write: want=14, written=14 0000: 30 0c 02 01 02 6b 07 0a 01 35 04 00 04 00 0....k... 5.... conn=1 op=1 RESULT tag=107 err=53 text= daemon: activity on 1 descriptor daemon: activity on: daemon: epoll: listen=7 active_threads=0 tvp=NULL daemon: epoll: listen=8 active_threads=0 tvp=NULL daemon: activity on 1 descriptor daemon: activity on: 13r daemon: read active on 13 daemon: epoll: listen=7 active_threads=0 tvp=NULL connection_get(13) connection_get(13): got connid=1 connection_read(13): checking for input on id=1 ber_get_next ldap_read: want=8, got=7 0000: 30 05 02 01 03 42 00 0....B. ber_get_next: tag 0x30 len 5 contents: ber_dump: buf=0x85e1d60 ptr=0x85e1d60 end=0x85e1d65 len=5 0000: 02 01 03 42 00 ...B. ber_get_next ldap_read: want=8, got=0
ber_get_next on fd 13 failed errno=0 (Success) connection_read(13): input error=-2 id=1, closing. connection_closing: readying conn=1 sd=13 for close connection_close: deferring conn=1 sd=13 conn=1 op=2 do_unbind conn=1 op=2 UNBIND connection_resched: attempting closing conn=1 sd=13 connection_close: conn=1 sd=13 daemon: removing 13 conn=1 fd=13 closed daemon: epoll: listen=8 active_threads=0 tvp=NULL daemon: activity on 1 descriptor daemon: activity on: daemon: epoll: listen=7 active_threads=0 tvp=NULL daemon: epoll: listen=8 active_threads=0 tvp=NULL
what am i doing wrong?
-ben