https://bugzilla.redhat.com/show_bug.cgi?id=745259 https://bugzilla.redhat.com/attachment.cgi?id=530413&action=diff https://bugzilla.redhat.com/attachment.cgi?id=530413&action=edit Description: . Changed the backend entry lock from PR_Lock to PR_Monitor to allow the re-entrant locking. In ldbm_back_delete and ldbm_ back_modify, backend entry lock was released before calling be_preop plugins and re-acquired just after that to avoid the deadlock by the be_preop plugins called from the same thread. The short no-lock window was the cause of the entry- usn corruption. By replacing PR_Lock with the re-entrant PR_Monitor, we could eliminate the no-lock window. . USN plugin: made add, modify, and modrdn usn plugins transaction aware. Note: delete plugins are intact. USN delete operation converts an entry to a tombstone entry, which is not suitable to move to inside of the transaction. Additional changes . Introduced SLAPI_PLUGIN_BE_TXNABORT_POST_*_FN. . In ldbm_back_delete, SLAPI_PLUGIN_BE_TXN_PRE/POST_DELETE_FN are changed to apply just to the normal entries (not to the tombstone entries). . Changed the condition to call dblayer_txn_abort from (retry_count > 0) to (retry_count>= 0) to cover the error in the first trial. . Cleaned up compiler warnings. Thanks, --noriko -- 389-devel mailing list 389-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/389-devel