389-ds-base 1.3.0 was released to Fedora 18 updates-testing this week. There is the chance of deadlock in the schema compat plugin at the moment. We have a candidate patch for addressing it but it is not yet reviewed.

This is an interim patch that disables betxn explicitly for now. It should be reversible later by reversing the update file.

I have the update file for anyone that tries upgrading from F-17 to F-18, or has an existing F-18 install with 389-ds-base. Perhaps this is overkill and we can just go with the ldif for now.

rob
>From ce78df61463efcc19514203d83884b9104f2cbb1 Mon Sep 17 00:00:00 2001
From: Rob Crittenden <rcrit...@redhat.com>
Date: Wed, 10 Oct 2012 22:41:02 -0400
Subject: [PATCH] Explicitly disable betxn plugins for the time being.

This should work with 389-ds-base 1.2.x and 1.3.0.

Without other plugin changes 389-ds-base can deadlock.

https://fedorahosted.org/freeipa/ticket/3046
---
 install/share/Makefile.am               |  1 +
 install/share/disable-betxn.ldif        | 63 +++++++++++++++++++++++++++++++++
 install/updates/10-disable-betxn.update | 39 ++++++++++++++++++++
 install/updates/Makefile.am             |  1 +
 ipaserver/install/dsinstance.py         |  4 +++
 5 files changed, 108 insertions(+)
 create mode 100644 install/share/disable-betxn.ldif
 create mode 100644 install/updates/10-disable-betxn.update

diff --git a/install/share/Makefile.am b/install/share/Makefile.am
index 23cd766a5a82ca514ffff9ebad82e0ee7db9ae77..7f953bc4261b9158303e166fd5c5f1c1232986e4 100644
--- a/install/share/Makefile.am
+++ b/install/share/Makefile.am
@@ -18,6 +18,7 @@ app_DATA =				\
 	default-hbac.ldif		\
 	default-smb-group.ldif		\
 	delegation.ldif			\
+	disable-betxn.ldif		\
 	replica-acis.ldif		\
 	ds-nfiles.ldif			\
 	dns.ldif			\
diff --git a/install/share/disable-betxn.ldif b/install/share/disable-betxn.ldif
new file mode 100644
index 0000000000000000000000000000000000000000..737192e494f581338c1405b3ceb747cde33b4dd0
--- /dev/null
+++ b/install/share/disable-betxn.ldif
@@ -0,0 +1,63 @@
+# Disable transactions in 389-ds-base
+
+dn: cn=7-bit check,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: preoperation
+
+dn: cn=attribute uniqueness,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: preoperation
+
+dn: cn=Auto Membership Plugin,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: preoperation
+
+dn: cn=Linked Attributes,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: preoperation
+
+dn: cn=Managed Entries,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: preoperation
+
+dn: cn=MemberOf Plugin,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: postoperation
+
+dn: cn=Multimaster Replication Plugin,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginbetxn
+nsslapd-pluginbetxn: off
+
+dn: cn=PAM Pass Through Auth,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: preoperation
+
+dn: cn=referential integrity postoperation,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: postoperation
+
+dn: cn=Roles Plugin,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginbetxn
+nsslapd-pluginbetxn: off
+
+dn: cn=State Change Plugin,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginType
+nsslapd-pluginType: postoperation
+
+dn: cn=USN,cn=plugins,cn=config
+changetype: modify
+replace: nsslapd-pluginbetxn
+nsslapd-pluginbetxn: off
+
+
diff --git a/install/updates/10-disable-betxn.update b/install/updates/10-disable-betxn.update
new file mode 100644
index 0000000000000000000000000000000000000000..db681807e17755f06921906c123eb89fb5796da6
--- /dev/null
+++ b/install/updates/10-disable-betxn.update
@@ -0,0 +1,39 @@
+# Disable transactions in 389-ds-base
+
+dn: cn=7-bit check,cn=plugins,cn=config
+only: nsslapd-pluginType: preoperation
+
+dn: cn=attribute uniqueness,cn=plugins,cn=config
+only: nsslapd-pluginType: preoperation
+
+dn: cn=Auto Membership Plugin,cn=plugins,cn=config
+only: nsslapd-pluginType: preoperation
+
+dn: cn=Linked Attributes,cn=plugins,cn=config
+only: nsslapd-pluginType: preoperation
+
+dn: cn=Managed Entries,cn=plugins,cn=config
+only: nsslapd-pluginType: preoperation
+
+dn: cn=MemberOf Plugin,cn=plugins,cn=config
+only: nsslapd-pluginType: postoperation
+
+dn: cn=Multimaster Replication Plugin,cn=plugins,cn=config
+only: nsslapd-pluginbetxn: off
+
+dn: cn=PAM Pass Through Auth,cn=plugins,cn=config
+only: nsslapd-pluginType: preoperation
+
+dn: cn=referential integrity postoperation,cn=plugins,cn=config
+only: nsslapd-pluginType: postoperation
+
+dn: cn=Roles Plugin,cn=plugins,cn=config
+only: nsslapd-pluginbetxn: off
+
+dn: cn=State Change Plugin,cn=plugins,cn=config
+only: nsslapd-pluginType: postoperation
+
+dn: cn=USN,cn=plugins,cn=config
+only: nsslapd-pluginbetxn: off
+
+
diff --git a/install/updates/Makefile.am b/install/updates/Makefile.am
index 8f60bc1817fe92a0d19275ef961a88fbaec3e200..a675af8b48f69ed8e4fa7fd4335ad75de7de86b8 100644
--- a/install/updates/Makefile.am
+++ b/install/updates/Makefile.am
@@ -7,6 +7,7 @@ app_DATA =				\
 	10-RFC2307bis.update		\
 	10-RFC4876.update		\
 	10-config.update		\
+	10-disable-betxn.update		\
 	10-selinuxusermap.update	\
 	10-sudo.update			\
 	10-ssh.update			\
diff --git a/ipaserver/install/dsinstance.py b/ipaserver/install/dsinstance.py
index 2c9832d0277560ea85bdc29c7167a46430c78771..b60335785a4b32176ba62b835069651d6fdd433f 100644
--- a/ipaserver/install/dsinstance.py
+++ b/ipaserver/install/dsinstance.py
@@ -197,6 +197,7 @@ class DsInstance(service.Service):
         self.step("configuring replication version plugin", self.__config_version_module)
         self.step("enabling IPA enrollment plugin", self.__add_enrollment_module)
         self.step("enabling ldapi", self.__enable_ldapi)
+        self.step("disabling betxn plugins", self.__disable_betxn)
         self.step("configuring uniqueness plugin", self.__set_unique_attrs)
         self.step("configuring uuid plugin", self.__config_uuid_module)
         self.step("configuring modrdn plugin", self.__config_modrdn_module)
@@ -470,6 +471,9 @@ class DsInstance(service.Service):
     def __add_referint_module(self):
         self._ldap_mod("referint-conf.ldif")
 
+    def __disable_betxn(self):
+        self._ldap_mod("disable-betxn.ldif", self.sub_dict)
+
     def __set_unique_attrs(self):
         self._ldap_mod("unique-attributes.ldif", self.sub_dict)
 
-- 
1.7.11.4

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to