https://fedorahosted.org/389/ticket/345
https://fedorahosted.org/389/attachment/ticket/345/0001-Trac-Ticket-345-db-d...
Thanks to Mark for reviewing my previous proposal. I've revisited the ticket and thought adding DEADLOCK retry to the entryrdn module may be useful since the DEADLOCK is observed quite often there.
In this patch, the DEADLOCK is reported when the loglevel is SLAPI_LOG_BACKLDBM instead of TRACE. The TRACE level is sometimes too noisy to generate the load to cause DEADLOCK in BDB. When debugging it, I noticed the log level of ACLSUMMARY and BACKLDBM were not set up correctly. This patch fixes it, as well.
Fix description: 1) In the ldbm_entryrdn.c, error log level is set to SLAPI_LOG_BACKLDBM if DB_LOCK_DEADLOCK is returned from the BDB operations, otherwise set to SLAPI_LOG_FATAL. 2) If DB_LOCK_DEADLOCK is returned in the entryrdn functions, retry the BDB operations up to RETRY_TIMES. 3) The log level of ACLSUMMARY and the one of BACKLDBM were confused. It was fixed in log.c.
389-devel@lists.fedoraproject.org