I have just installed the OpenLDAP server, version 2.4.42, in my Linux. I have done some basic configuration for a fictitious domain owns4.com. My slapd.conf has the following contents:

include         /etc/openldap/schema/core.schema
include         /etc/openldap/schema/cosine.schema
include         /etc/openldap/schema/nis.schema
include         /etc/openldap/schema/own.schema

pidfile         /var/run/openldap/slapd.pid

argsfile        /var/run/openldap/slapd.args

modulepath      /usr/libexec/openldap
moduleload      back_bdb.la

database        bdb
suffix          "dc=owns4,dc=com"

rootdn          "uid=root,ou=People,dc=owns4,dc=com"

rootpw          xyzabc

directory       /var/lib/openldap

dbconfig set_cachesize 0 2097152 0

index   objectClass     eq

lastmod         on

access to attrs=userPassword,shadowLastChange
        by dn="cn=root,dc=owns4,dc=com" write
        by anonymous auth
        by self write
        by * none

access to dn.base="" by * read

access to *
        by dn="cn=root,dc=owns4,dc=com" write
        by * read



After launching the slapd daemon with

/usr/libexec/slapd -d 7

I can issue a few commands that are apparently successful:

#  ldapsearch -x -b '' -s base '(objectclass=*)' namingContexts -LLL
dn:
namingContexts: dc=owns4,dc=com

#  ldapwhoami -x -H ldap://myipaddress
anonymous

myipaddress is the IP address of the system where I am issuing the commands, which is the same as where the OpenLDAP daemon is running.

However, the next command is not successful:

#  ldapwhoami -x -H ldap://myipaddress -D "dc=owns4,dc=com" -w xyzabc
ldap_bind: Invalid credentials (49)

It elicits the following output from slapd:

59b4713e slap_listener_activate(7): 
59b4713e >>> slap_listener(ldap:///)
59b4713e connection_get(13)
59b4713e connection_get(13): got connid=1001
59b4713e connection_read(13): checking for input on id=1001
ber_get_next
ldap_read: want=8, got=8
  0000:  30 21 02 01 01 60 1c 02                            0!...`..          
ldap_read: want=27, got=27
  0000:  01 03 04 0f 64 63 3d 6f  77 6e 73 34 2c 64 63 3d   ....dc=owns4,dc=  
  0010:  63 6f 6d 80 06 78 79 7a  61 62 63                  com..xyzabc       
ber_get_next: tag 0x30 len 33 contents:
59b4713e op tag 0x60, time 1504997694
ber_get_next
ldap_read: want=8 error=Resource temporarily unavailable
59b4713e conn=1001 op=0 do_bind
ber_scanf fmt ({imt) ber:
ber_scanf fmt (m}) ber:
59b4713e >>> dnPrettyNormal: <dc=owns4,dc=com>
=> ldap_bv2dn(dc=owns4,dc=com,0)
<= ldap_bv2dn(dc=owns4,dc=com)=0 
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=owns4,dc=com)=0 
=> ldap_dn2bv(272)
<= ldap_dn2bv(dc=owns4,dc=com)=0 
59b4713e <<< dnPrettyNormal: <dc=owns4,dc=com>, <dc=owns4,dc=com>
59b4713e do_bind: version=3 dn="dc=owns4,dc=com" method=128
59b4713e ==> bdb_bind: dn: dc=owns4,dc=com
59b4713e bdb_dn2entry("dc=owns4,dc=com")
59b4713e => bdb_dn2id("dc=owns4,dc=com")
59b4713e <= bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found 
(-30988)
59b4713e send_ldap_result: conn=1001 op=0 p=3
59b4713e send_ldap_result: err=49 matched="" text=""
59b4713e send_ldap_response: msgid=1 tag=97 err=49
ber_flush2: 14 bytes to sd 13
ldap_write: want=14, written=14
  0000:  30 0c 02 01 01 61 07 0a  01 31 04 00 04 00         0....a...1....    
59b4713e connection_get(13)
59b4713e connection_get(13): got connid=1001
59b4713e connection_read(13): checking for input on id=1001
ber_get_next
ldap_read: want=8, got=7
  0000:  30 05 02 01 02 42 00                               0....B.           
ber_get_next: tag 0x30 len 5 contents:
59b4713e op tag 0x42, time 1504997694
ber_get_next
ldap_read: want=8, got=0

59b4713e ber_get_next on fd 13 failed errno=0 (Success)
59b4713e conn=1001 op=1 do_unbind
59b4713e connection_close: conn=1001 sd=13

Isn't the argument to -w in this command supposed to be the same as the value of rootpw in slapd.conf? If so, why is this not working? What are the "
ldap_read: want=8 error=Resource temporarily unavailable" and "bdb_dn2id: get failed: DB_NOTFOUND: No matching key/data pair found " diagnostics all about?