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

(ITS#5232) Running out of BDB locks causes truncated searches but no error code



Full_Name: Sean Burford
Version: 2.3.32
OS: Linux
URL: ftp://ftp.openldap.org/incoming/
Submission from: (NULL) (65.57.245.11)


Searches that span periods of BDB lock exhaustion may return truncated results
with a success error code.  It should return an err=80 failure.

This was with a BDB 4.4.20 backend.

In the log below you can see:
 a search starts at 11:00:01
 the search returns success:240 entries at 11:00:03
 a search starts at 11:15:01
 bdb runs out of locks at 11:15:02, informs the mod operation that it failed
 the search returns success:128 entries at 11:15:02

Both searches were identical. 

Nov  9 11:00:01 conn=71131 op=2 SRCH base="dc=example,dc=com" scope=2 deref=0
filter="(objectClass=exampleClass)"
Nov  9 11:00:01 conn=71131 op=2 SRCH attr=* + 
Nov  9 11:00:03 conn=71131 op=2 SEARCH RESULT tag=101 err=0 nentries=240 text=
...
Nov  9 11:15:01 conn=72711 op=2 SRCH base="dc=example,dc=com" scope=2 deref=0
filter="(objectClass=exampleClass)"
Nov  9 11:15:01 conn=72711 op=2 SRCH attr=* + 
...  
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
Nov  9 11:15:02 => bdb_idl_delete_key: c_get id failed: Cannot allocate memory
(12)
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
...  
Nov  9 11:15:02 Attribute index delete failure
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
Nov  9 11:15:02 bdb(dc=example,dc=com): Lock table is out of available locks
Nov  9 11:15:02 conn=72642 op=10 RESULT tag=103 err=80 text=
Nov  9 11:15:02 conn=72131 op=144 RESULT tag=103 err=80 text=internal error
...  
Nov  9 11:15:02 conn=72711 op=2 SEARCH RESULT tag=101 err=0 nentries=128 text=
Nov  9 11:15:05 conn=72711 op=3 UNBIND
Nov  9 11:15:05 conn=72711 fd=57 closed ()

The database definition is:
database        bdb
suffix          "dc=example,dc=com"
directory       /var/lib/ldap
overlay auditlog
auditlog /var/lib/ldap/ldif/auditlog/audit.com.ldif
overlay syncprov
syncprov-checkpoint 100 10
syncprov-sessionlog 1000
overlay accesslog
logdb           cn=accesslog
logops          writes
logsuccess      TRUE
logpurge        02+23:46 01+23:46
# This limits section applies to the user this bug is about...
limits dn.exact="uid=user1,ou=people,dc=example,dc=com"
  time.soft=unlimited time.hard=unlimited size.soft=unlimited
  size.hard=unlimited
cachesize       100000
idlcachesize    10000
sizelimit       200000
checkpoint      512 1
lastmod         on
idletimeout     300
threads         64