Hello, Howard. Many thanks for you quick reply. I have tried version 4.8.30 and POSIX mutex option for BDB. Unfortunately, this doesn't helps.
Debugging results of slapd process is here: http://pastebin.com/FYjp4h61 One more thing I have noticed (may be it can give some clue): while slapd is not responding anymore on tcp:389 , I still able to iterate over DB using ldapsearch. This looks suspicious for me, isn't it ? This time, another table was deadlocked: 80000004 WRITE 1 HELD dn2id.bdb page 2 8000005c READ 1 WAIT dn2id.bdb page 2 80000014 READ 1 WAIT dn2id.bdb page 2 What else can I do? Thanks again for your help. Regards, Maxim. On Wed, May 22, 2013 at 6:55 PM, Howard Chu <[email protected]> wrote: > Maxim Shaposhnik wrote: > >> Hi, >> >> I'm faced with the OpenLDAP freeze problem on concurrent item >> modification. >> >> OS type\version is FC17, OpenLDAP 2.4.35. Tried both BerkrleyDB versions >> 5.2.36 and latest 5.3.21. DB size is about 50K. >> >> From my experiments, LDAP stops responding when the count of locks on >> objectClass.bdb reaches 3 (when less than 3, seems it resolves OK): >> >> 80000573 READ 3 HELD objectClass.bdb page 3 >> 80000573 WRITE 7 HELD objectClass.bdb page 3 >> 800001b6 READ 1 WAIT objectClass.bdb page 3 >> >> >> I also tried different locks detector schemes (different values for >> set_lk_detect ) without success. >> >> What may be a root cause of such situation? >> > > It seems problems like this have only been coming up since BerkeleyDB 5. > See if switching back to BDB 4.8 helps. > > Also make sure BDB is configured --with-mutex=POSIX/pthreads > > Compile slapd with no optimization, and with debug symbols enabled > (AC_CFLAGS=-g) > > The next time this situation occurs, get both the db_stat -CA output and > also gdb the slapd process, "thread apply all bt full" > > Without both the gdb and db_stat output there's nothing we can say. > > > >> >> This is my full db_stat output: >> >> db_stat -CA >> Default locking region information: >> 19 Last allocated locker ID >> 0x7fffffff Current maximum unused locker ID >> 9 Number of lock modes >> 200 Initial number of locks allocated >> 0 Initial number of lockers allocated >> 200 Initial number of lock objects allocated >> 3000 Maximum number of locks possible >> 1500 Maximum number of lockers possible >> 1500 Maximum number of lock objects possible >> 200 Current number of locks allocated >> 15 Current number of lockers allocated >> 200 Current number of lock objects allocated >> 40 Number of lock object partitions >> 2053 Size of object hash table >> 46 Number of current locks >> 115 Maximum number of locks at any one time >> 6 Maximum number of locks in any one bucket >> 11 Maximum number of locks stolen by for an empty partition >> 4 Maximum number of locks stolen for any one partition >> 13 Number of current lockers >> 15 Maximum number of lockers at any one time >> 26 Number of current lock objects >> 74 Maximum number of lock objects at any one time >> 2 Maximum number of lock objects in any one bucket >> 0 Maximum number of objects stolen by for an empty partition >> 0 Maximum number of objects stolen for any one partition >> 88126 Total number of locks requested >> 87895 Total number of locks released >> 0 Total number of locks upgraded >> 16 Total number of locks downgraded >> 174 Lock requests not available due to conflicts, for which we waited >> 153 Lock requests not available due to conflicts, for which we did >> not wait >> 11 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 >> 2MB 504KB Region size >> 16 The number of partition locks that required waiting (0%) >> 8 The maximum number of times any partition lock was waited for (0%) >> 0 The number of object queue operations that required waiting (0%) >> 1 The number of locker allocations that required waiting (0%) >> 2 The number of region locks that required waiting (0%) >> 2 Maximum hash bucket length >> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=- >> =-=-=-=-=-=-=-=-=-= >> Lock REGINFO information: >> Environment Region type >> 1 Region ID >> __db.001 Region name >> 0x7fc6ffe7f000 Region address >> 0x7fc6ffe7f0a0 Region allocation head >> 0x7fc70007f5b0 Region primary address >> 0 Region maximum allocation >> 0 Region allocated >> Region allocations: 2874 allocations, 0 failures, 2750 frees, 7 longest >> Allocations by power-of-two sizes: >> 1KB 2869 >> 2KB 0 >> 4KB 1 >> 8KB 0 >> 16KB 0 >> 32KB 0 >> 64KB 2 >> 128KB 0 >> 256KB 1 >> 512KB 0 >> 1024KB 1 >> REGION_SHARED Region flags >> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-= >> Lock region parameters: >> 2 Lock region region mutex [2/59655 0% 25161/140492677707584] >> <wakeups 0/1> >> 2053 locker table size >> 2053 object table size >> 2099280 obj_off >> 2316456 locker_off >> 1 need_dd >> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-= >> Lock conflict matrix: >> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-= >> Locks grouped by lockers: >> Locker Mode Count Status ----------------- Object --------------- >> e dd=11 locks held 1 write locks 0 pid/thread >> 23242/140324977571648 flags 10 priority 100 >> e READ 1 HELD id2entry.bdb handle >> 0 >> f dd=10 locks held 1 write locks 0 pid/thread >> 23242/140324977571648 flags 10 priority 100 >> f READ 1 HELD dn2id.bdb handle >> 0 >> 10 dd= 9 locks held 0 write locks 0 pid/thread >> 23242/140324977571648 flags 0 priority 100 >> 11 dd= 6 locks held 1 write locks 0 pid/thread >> 23242/140324451448576 flags 10 priority 100 >> 11 READ 1 HELD objectClass.bdb handle >> 0 >> 12 dd= 5 locks held 1 write locks 0 pid/thread >> 23242/140324451448576 flags 10 priority 100 >> 12 READ 1 HELD cloudIdeAliases.bdb handle >> 0 >> 13 dd= 4 locks held 1 write locks 0 pid/thread >> 23242/140324451448576 flags 10 priority 100 >> 13 READ 1 HELD ou.bdb handle >> 0 >> 8000019c dd= 8 locks held 0 write locks 0 pid/thread >> 23242/140324977571648 flags 0 priority 100 >> 8000019d dd= 7 locks held 0 write locks 0 pid/thread >> 23242/140324451448576 flags 0 priority 100 >> 800001a1 dd= 3 locks held 0 write locks 0 pid/thread >> 23242/140324443055872 flags 0 priority 100 >> 800001b6 dd= 2 locks held 0 write locks 0 pid/thread >> 23242/140324332623616 flags 0 priority 100 >> 800001b6 READ 1 WAIT objectClass.bdb page 3 >> 8000045f dd= 1 locks held 1 write locks 1 pid/thread >> 23242/140324164859648 flags 0 priority 100 >> 8000045f WRITE 1 HELD cloudIdeAliases.bdb page 5337 >> 80000572 dd= 0 locks held 2 write locks 0 pid/thread >> 23242/140324451448576 flags 0 priority 100 >> 80000572 READ 1 HELD 0x23f140 len: 9 data: >> 020000000000000000 >> 80000572 READ 1 HELD dn2id.bdb page 10752 >> 80000573 dd= 0 locks held 36 write locks 19 pid/thread >> 23242/140324451448576 flags 0 priority 100 >> 80000573 READ 1 WAIT cloudIdeAliases.bdb page 5337 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 4604 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 4604 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 6375 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 6375 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 200 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 200 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 1438 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 1438 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 16 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 16 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 286 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 286 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 2308 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 2308 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 4708 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 4708 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 123 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 123 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 540 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 540 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 4737 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 4737 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 2806 >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 2806 >> 80000573 WRITE 1 HELD ou.bdb page 271 >> 80000573 READ 1 HELD ou.bdb page 271 >> 80000573 WRITE 7 HELD objectClass.bdb page 3 >> 80000573 READ 3 HELD objectClass.bdb page 3 >> 80000573 WRITE 3 HELD objectClass.bdb page 2 >> 80000573 READ 1 HELD objectClass.bdb page 2 >> 80000573 WRITE 1 HELD dn2id.bdb page 10234 >> 80000573 READ 1 HELD dn2id.bdb page 10234 >> 80000573 WRITE 1 HELD dn2id.bdb page 2 >> 80000573 READ 1 HELD dn2id.bdb page 2 >> 80000573 WRITE 1 HELD dn2id.bdb page 10225 >> 80000573 WRITE 1 HELD dn2id.bdb page 10752 >> =-=-=-=-=-=-=-=-=-=-=-=-=-=-=-**=-=-=-=-=-=-=-=-=-= >> Locks grouped by object: >> Locker Mode Count Status ----------------- Object --------------- >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 4604 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 4604 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 4708 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 4708 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 540 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 540 >> >> 13 READ 1 HELD ou.bdb handle >> 0 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 2806 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 2806 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 4737 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 4737 >> >> 80000573 READ 1 HELD ou.bdb page 271 >> 80000573 WRITE 1 HELD ou.bdb page 271 >> >> 80000572 READ 1 HELD dn2id.bdb page 10752 >> 80000573 WRITE 1 HELD dn2id.bdb page 10752 >> >> e READ 1 HELD id2entry.bdb handle >> 0 >> >> 8000045f WRITE 1 HELD cloudIdeAliases.bdb page 5337 >> 80000573 READ 1 WAIT cloudIdeAliases.bdb page 5337 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 1438 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 1438 >> >> f READ 1 HELD dn2id.bdb handle >> 0 >> >> 80000573 READ 1 HELD dn2id.bdb page 2 >> 80000573 WRITE 1 HELD dn2id.bdb page 2 >> >> 80000572 READ 1 HELD 0x23f140 len: 9 data: >> 020000000000000000 >> >> 80000573 READ 1 HELD dn2id.bdb page 10234 >> 80000573 WRITE 1 HELD dn2id.bdb page 10234 >> >> 80000573 WRITE 1 HELD dn2id.bdb page 10225 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 123 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 123 >> >> 12 READ 1 HELD cloudIdeAliases.bdb handle >> 0 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 16 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 16 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 200 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 200 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 6375 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 6375 >> >> 80000573 READ 3 HELD objectClass.bdb page 3 >> 80000573 WRITE 7 HELD objectClass.bdb page 3 >> 800001b6 READ 1 WAIT objectClass.bdb page 3 >> >> 80000573 READ 1 HELD objectClass.bdb page 2 >> 80000573 WRITE 3 HELD objectClass.bdb page 2 >> >> 11 READ 1 HELD objectClass.bdb handle >> 0 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 2308 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 2308 >> >> 80000573 READ 1 HELD cloudIdeAliases.bdb page 286 >> 80000573 WRITE 1 HELD cloudIdeAliases.bdb page 286 >> > > > -- > -- Howard Chu > CTO, Symas Corp. http://www.symas.com > Director, Highland Sun http://highlandsun.com/hyc/ > Chief Architect, OpenLDAP > http://www.openldap.org/**project/<http://www.openldap.org/project/> >
