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

Re: Running out of locks while building db



At 12:27 PM 2002-07-30, pturgyan@umich.edu wrote:

>Configuring additional locks and lock objects (1800 of each) 
>seems to get me a little farther.  Now it's reporting that it's
>running out of memory.  Any ideas?

On some platforms, slapadd(8) appears to be leaking some
resources.   A couple ITSs have been filed.  We haven't
found the bug yet...  workaround is to split your LDIF
into smaller chunks.

Kurt


>=> bdb_tool_entry_put( -1, "cn=nre301-003,ou=User Groups,ou=Groups,dc=umich,dc=e
>du" )
>=> bdb_dn2id_add( "cn=nre301-003,ou=user groups,ou=groups,dc=umich,dc=edu", 0x00
>010005 )
>=> bdb_idl_insert_key: c_get last failed: Not enough space (12)
>=> bdb_dn2id_add: subtree (ou=groups,dc=umich,dc=edu) insert failed: 12
><= bdb_dn2id_add: 12
>=> bdb_tool_entry_put: dn2id_add failed: Not enough space (12)
>=> bdb_tool_entry_put: txn_aborted! Not enough space (12)
>slapadd: could not add entry dn="cn=nre301-003,ou=User Groups,ou=Groups,dc=umich
>,dc=edu" (line=2096986): txn_aborted! Not enough space (12)
>
>
>
>> First of all, look at the "db_stat -c" statistics for your databases,
>> to see where your lock resources were used. Then read section 13 in
>> the BDB Tutorial and Reference Guide, specifically section 13.3 on
>> sizing the lock subsystem. Then use a DB_CONFIG file in your database
>> directory to configure the sizes. See the C API reference describing
>> the Lock Subsystem for the necessary keywords.
>> 
>>   -- Howard Chu
>>   Chief Architect, Symas Corp.       Director, Highland Sun
>>   http://www.symas.com               http://highlandsun.com/hyc
>>   Symas: Premier OpenSource Development and Support 
>> 
>> > -----Original Message-----
>> > From: owner-openldap-software@OpenLDAP.org
>> > [mailto:owner-openldap-software@OpenLDAP.org]On Behalf Of
>> > pturgyan@umich.edu
>> > Sent: Monday, July 22, 2002 10:44 AM
>> > To: openldap-software@OpenLDAP.org
>> > Subject: Running out of locks while building db
>> > 
>> > 
>> > 
>> > I'm running OpenLDAP 2.1.2 (all standalone system tests passed)
>> >             Berkeley db-4.0.14 bdb transactional backend
>> >             Solaris 2.6
>> > 
>> > I'm trying to build a database using slapadd,
>> > and I am getting the error:
>> > 
>> > bdb(dc=umich,dc=edu): Lock table is out of available locks
>> > => bdb_idl_insert_key: c_get failed: Not enough space (12)
>> > <= key_change 12
>> > <= index_entry_add( 27655, "cn=dm signup,ou=User 
>> > Groups,ou=Groups,dc=umich,dc=ed
>> > u" ) failure
>> > => bdb_tool_entry_put: index_entry_add failed: Not enough space (12)
>> > => bdb_tool_entry_put: txn_aborted! Not enough space (12)
>> > slapadd: could not add entry dn="cn=dm signup,ou=User 
>> > Groups,ou=Groups,dc=umich,
>> > dc=edu" (line=873748): txn_aborted! Not enough space (12)
>> > 
>> > With indexxing enabaled (I'm indexxing about 30 different attributes),
>> > I get the above error after about 27732 entries.  With indexxing
>> > turned off I get to about 65687 entries before I get the lock error.
>> > 
>> > Also, the Berkeley utility db_archive never lists any log files
>> > as being removable.  I end up with over 250 log files when
>> > building the database with full indexxing.
>> > 
>> > I didn't see anything in the OpenLDAP archives about this,  nor in
>> > the FAQ.
>> > 
>> > Here's my conf file:
>> > 
>> > 
>> > # $OpenLDAP: pkg/ldap/servers/slapd/slapd.conf,v 1.8.8.7 2001/09/27 
>> > 20:00:31 kurt Exp $
>> > #
>> > # See slapd.conf(5) for details on configuration options.
>> > # This file should NOT be world readable.
>> > #
>> > loglevel 65535
>> > #
>> > include               /var/slapd/openldap-2.1/etc/core.schema
>> > include               /var/slapd/openldap-2.1/etc/cosine.schema
>> > include               /var/slapd/openldap-2.1/etc/inetorgperson.schema
>> > include               /var/slapd/openldap-2.1/etc/nis.schema
>> > include               /var/slapd/openldap-2.1/etc/local.schema
>> > #
>> > #
>> > # Define global ACLs to disable default read access.
>> > include         /var/slapd//openldap-2.1/etc/slapd.acl.conf
>> > 
>> > # Do not enable referrals until AFTER you have a working directory
>> > # service AND an understanding of referrals.
>> > #referral     ldap://root.openldap.org
>> > 
>> > pidfile               /var/slapd/openldap-2.1/slapd.pid
>> > argsfile      /var/slapd/openldap-2.1/slapd.args
>> > srvtab          /usr/local/etc/openldap/srvtab
>> > 
>> > 
>> > # Load dynamic backend modules:
>> > # modulepath  %MODULEDIR%
>> > # moduleload  back_ldap.la
>> > # moduleload  back_ldbm.la
>> > # moduleload  back_passwd.la
>> > # moduleload  back_shell.la
>> > >
>> > #
>> > #######################################################################
>> > # bdb database definitions
>> > #######################################################################
>> > 
>> > database      bdb
>> > suffixalias     "o=University of Michigan,c=US" "dc=umich,dc=edu"
>> > suffix                "dc=umich,dc=edu"
>> > #
>> > rootdn                "cn=root,dc=umich,dc=edu"
>> > #
>> > # Cleartext passwords, especially for the rootdn, should
>> > # be avoid.  See slappasswd(8) and slapd.conf(5) for details.
>> > # Use of strong authentication encouraged.
>> > rootpw                xxxxx
>> > 
>> > # Cache size and "no sync" for database loading
>> > dbnosync
>> > #
>> > lastmod on
>> > #
>> > # The database directory MUST exist prior to running slapd AND
>> > # should only be accessible by the slapd/tools. Mode 700 recommended.
>> > directory     /var/slapd/tmp
>> > 
>> > # index's
>> > include         /var/slapd/openldap-2.1/etc/slapd.index.conf
>>