[Date Prev][Date Next]
[Chronological]
[Thread]
[Top]
slapd (back-bdb) crashing during high modify load (ITS#3188)
Full_Name: Ralf Haferkamp
Version: 2.2.X, HEAD
OS: Linux (Kernel 2.6)
URL: ftp://ftp.openldap.org/incoming/ralf-haferkamp-040615-bdbcache.dif
Submission from: (NULL) (212.95.103.53)
I ran a test with about 20 concurrent clients all modifying (replacing) the same
Attribute of the same entry. During this test slapd segfaulted in
bdb_modify_internal(). Different debugging sessions showed that it always
segfaulted when accessing save_attrs struct.
Also in the log I could always see "bdb_cache_entry_db_relock entry 225, rw 1,
rc -30995" shorlty before the crash ( -30995 is DB_LOCK_DEADLOCK ).
bdb_cache_entry_db_relock is called be bdb_cache_modify() which is ignoring this
error code and seems to free the struct that save_attrs is pointing to.
I uploaded a small patch that fixes the problem for me. I am not quite sure it
is completely correct though.