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.
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.