In a scenario where I'm trying to setup a 389 Directory Server automatically,
I ran into an issue with checking ports - no ports nor any networking, are
available when I execute the setup. FWIW, I'm bootstrapping the setup for a
The problem seems to be in ldap/admin/src/scripts/DSDialogs.pm, at line 69,
which checks for the port to be available without taking into account whether
or not the setup is supposed to continue (even without a port).
Attached is a patch.
Jeroen van Meeuwen
Systems Architect, Kolab Systems AG
e: vanmeeuwen at kolabsys.com
m: +44 74 2516 3817
pgp: 9342 BF08
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.
* Separated usn_bepreop operations from usn_betxnpreop operations.
usn_bepreop_modify and _modrdn add "entryusn: #" to the mods,
which should be handled before the transaction starts.
* Introduced SLAPI_PLUGIN_BE_TXN_PRE_DELETE_TOMBSTONE_FN plugin
hook to modify the tombstone entry at the betxn timing.
* Eliminated preventryusn (SLAPI_ATTR_ENTRYUSN_PREV). It was used
to undo the incremented entryusn when the deletion fails.
Since the operation is now executed in the transaction and it
is aborted if the operation fails, the explicit undo is not
needed in the usn postop.