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

Re: slapd (back-bdb) crashing during high modify load (ITS#3188)



This suggested fix appears correct to me.  I am testing it now
and will, if all goes well, commit it to HEAD later today.

Thanks, Kurt

At 09:42 AM 6/15/2004, rhafer@suse.de wrote:
>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.