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