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

Re: lock table out of available locks when adding entry



As a workaround, I made my locks set to 2000 and the add completes. This
is strange to me because I have 3 different machines hosting that same
BDB backend for OpenLDAP and only one of them is giving me problems on
the add.

For anyone else's information, I did this by editing the DB_CONFIG file
with the set_lk_max_locks property.

Note: Once you edit the DB_CONFIG file, the changes won't take effect
until you run db_recover. I shut down OpenLDAP before I ran db_recover,
just in case.

> After looking a little more, I'm not sure why the lock table is running
> out of available locks (or is it memory?). My BDB backend is configured
> with the normal 1000 max locks and here is the output from db_stat -c
> (which looks like nowhere near the maximum number of locks has ever been
> used):
> 
> 104312  Last allocated locker ID.
> 2147M   Current maximum unused locker ID.
> 9       Number of lock modes.
> 1000    Maximum number of locks possible.
> 1000    Maximum number of lockers possible.
> 1000    Maximum number of lock objects possible.
> 2       Number of current locks.
> 43      Maximum number of locks at any one time.
> 8       Number of current lockers.
> 32      Maximum number of lockers at any one time.
> 2       Number of current lock objects.
> 43      Maximum number of lock objects at any one time.
> 1088942 Total number of locks requested.
> 1046585 Total number of locks released.
> 7140    Total number of lock requests failing because DB_LOCK_NOWAIT was
> set.
> 3       Total number of locks not immediately available due to conflicts.
> 0       Number of deadlocks.
> 0       Lock timeout value.
> 0       Number of locks that have timed out.
> 0       Transaction timeout value.
> 0       Number of transactions that have timed out.
> 448KB   The size of the lock region..
> 190     The number of region locks granted after waiting.
> 2175630 The number of region locks granted without waiting.
> 
> > Ok, thanks for the hint. It says lock table is out of locks. Here is the
> > debug error output, although I don't know how to fix this:
> > 
> > oc_check_required entry (cn=asdf,ou=Roles,dc=my,dc=com), objectClass
> > "organizationalRole"
> > oc_check_allowed type "cn"
> > oc_check_allowed type "objectClass"
> > oc_check_allowed type "structuralObjectClass"
> > oc_check_allowed type "entryUUID"
> > oc_check_allowed type "creatorsName"
> > oc_check_allowed type "createTimestamp"
> > oc_check_allowed type "entryCSN"
> > oc_check_allowed type "modifiersName"
> > oc_check_allowed type "modifyTimestamp"
> > bdb_dn2entry_rw("ou=roles,dc=my,dc=com")
> > => bdb_dn2id_matched( "ou=roles,dc=my,dc=com" )
> > ====> bdb_cache_find_entry_dn2id("ou=roles,dc=my,dc=com"): 38 (1 tries)
> > ====> bdb_cache_find_entry_id( 38 ) "ou=Roles,dc=my,dc=com" (found) (1
> > tries)
> > ====> bdb_unlocked_cache_return_entry_r( 38 ): returned (0)
> > => bdb_dn2id_add( "cn=asdf,ou=roles,dc=my,dc=com", 0x00000083 )
> > bdb(dc=my,dc=com): Lock table is out of available locks
> > => bdb_idl_insert_key: c_put id failed: Cannot allocate memory (12)
> > => bdb_dn2id_add: subtree (ou=roles,dc=my,dc=com) insert failed: 12
> > <= bdb_dn2id_add: 12
> > bdb_add: dn2id_add failed: Cannot allocate memory (12)
> > send_ldap_result: conn=0 op=20 p=3
> > send_ldap_response: msgid=21 tag=105 err=80
> > ber_flush: 14 bytes to sd 10
> > 
> > > -----BEGIN PGP SIGNED MESSAGE-----
> > > Hash: SHA1
> > > 
> > > Your Name wrote:
> > > | On one of my LDAP servers, I can no longer add entries for some
> reason.
> > > | I can modify attributes of existing attributes, but when I try to
> add an
> > > | entry I get the following error:
> > > |
> > > | request 1 done
> > > | adding new entry "uid=24754480,ou=People,dc=my,dc=com"
> > > | request 2 done
> > > | ldapadd: update failed: uid=24754480,ou=People,dc=my,dc=com
> > > | ldap_add: Internal (implementation specific) error (80)
> > > |       additional info: internal error
> > > |
> > > | The same exact command and code works on one of my mirrored LDAP
> > servers.
> > > |
> > > | I'm running OpenLDAP from Fedora Core 1
> > > |
> > > | Any help is appreciated!
> > > |
> > > 
> > > Turn up logging (or run 'slapd -d1 -g ldap -u ldap) to see what
OpenLDAP
> > > says about it.
> > > 
> > > I think the most likely error is that you've run some tools as
> > > non-ldap-user, and the database files are not owned by the ldap
user ...
> > > but the output should tell you.
> > > 
> > > Regards,
> > > Buchan
> > > 
> > > - --
> > > Buchan Milne                      Senior Support Technician
> > > Obsidian Systems                  http://www.obsidian.co.za
> > > B.Eng                                RHCE (803004789010797)
> > > -----BEGIN PGP SIGNATURE-----
> > > Version: GnuPG v1.2.4 (GNU/Linux)
> > > Comment: Using GnuPG with Thunderbird - http://enigmail.mozdev.org
> > > 
> > > iD8DBQFB2Qw5rJK6UGDSBKcRAhgtAJ0Xg3uI40HbTZ0sZXKFrky95gExygCfdmAX
> > > uVeDpAOcey5d8f7TK1zF2AA=
> > > =tKdC
> > > -----END PGP SIGNATURE-----
> > > 
> > > 
> > 
> > -- 
> > 
> > 
> > 
> 
> -- 
> 
> 
> 

--