#48206 Crash while triming the retro changelog
Closed: Fixed None Opened 4 years ago by tbordaz.

Community use on Centos is running 389-ds-base-

When trimming the retroCL, it deletes an entry. Then retrieve the entry from the cache (no creation of tombstone) to remove it from the cache.
Apparently if the entry cachen is small, it can fail to retrieve it and not testing this special condition

The crash occurs: {{{ Thread 1 (Thread 0x7f4edf9cb700 (LWP 27506)): #0 cache_unlock_entry (cache=0x7f4ee17305d8, e=0x0) at ldap/servers/slapd/back-ldbm/cache.c:1568 #1 0x00007f4ed3b1ec08 in ldbm_back_delete (pb=0x7f4ea80164c0) at ldap/servers/slapd/back-ldbm/ldbm_delete.c:1278 #2 0x00007f4edf58a0f0 in op_shared_delete (pb=pb@entry=0x7f4ea80164c0) at ldap/servers/slapd/delete.c:364 #3 0x00007f4edf58a2a2 in delete_internal_pb (pb=pb@entry=0x7f4ea80164c0) at ldap/servers/slapd/delete.c:242 #4 0x00007f4edf58a553 in slapi_delete_internal_pb (pb=pb@entry=0x7f4ea80164c0) at ldap/servers/slapd/delete.c:185 #5 0x00007f4ed239bafe in delete_changerecord (cnum=cnum@entry=52314) at ldap/servers/plugins/retrocl/retrocl_trim.c:117 #6 0x00007f4ed239bdd1 in trim_changelog () at ldap/servers/plugins/retrocl/retrocl_trim.c:316 #7 changelog_trim_thread_fn (arg=<optimized out="">) at ldap/servers/plugins/retrocl/retrocl_trim.c:359 #8 0x00007f4edd9ca7bb in _pt_root () from /lib64/libnspr4.so #9 0x00007f4edd36bdf5 in start_thread () from /lib64/libpthread.so.0 #10 0x00007f4edd0991ad in clone () from /lib64/libc.so.6 }}} The problem could be trigger by small cn=changelog entry cache {{{ [25/Jun/2015:15:04:33 +0200] - 389-Directory/ B2015.118.1941 starting up [25/Jun/2015:15:04:35 +0200] - WARNING -- Minimum cache size is 512000 -- rounding up [25/Jun/2015:15:04:36 +0200] - WARNING -- Minimum cache size is 512000 -- rounding up [25/Jun/2015:15:04:36 +0200] - WARNING -- Minimum cache size is 512000 -- rounding up [25/Jun/2015:15:04:36 +0200] - WARNING -- Minimum cache size is 512000 -- rounding up [25/Jun/2015:15:04:37 +0200] - WARNING: changelog: entry cache size 512000B is less than db size 36683776B; We recommend to increase the entry cache size nsslapd-cachememsize. [25/Jun/2015:15:04:37 +0200] - I'm resizing my cache now...cache was 3689347 and is now 2951477 }}} The bug could be at https://git.fedorahosted.org/cgit/389/ds.git/tree/ldap/servers/slapd/back-ldbm/ldbm_delete.c#n1264. If '!create_tombstone_entry' (that is the case for cn=changelog), 'e' was updated and so could be NULL.

Looks good.

Does your fix need to be backported to the older version, too?

29043c5..2a8a8c8 master -> master
commit 2a8a8c8
Author: Mark Reynolds mreynolds@redhat.com
Date: Mon Jul 20 14:22:05 2015 -0400

0e31d81..6d43988 389-ds-base-1.3.4 -> 389-ds-base-1.3.4
commit 6d43988

c81f40a..1cde230 389-ds-base-1.3.3 -> 389-ds-base-1.3.3
commit 1cde230

64b54d4..21a1196 389-ds-base-1.3.2 -> 389-ds-base-1.3.2
commit 21a1196

35f75ce..95a7fbd 389-ds-base-1.3.1 -> 389-ds-base-1.3.1
commit 95a7fbdc2103d5c5cacb51fb2dc06101f20b76d3

8173360..f5552bf 389-ds-base-1.2.11 -> 389-ds-base-1.2.11
commit f5552bf

Metadata Update from @tbordaz:
- Issue assigned to mreynolds
- Issue set to the milestone:

2 years ago

Login to comment on this ticket.