From b0dfc56dc08d73a9adac19eaef386ccff5edccf1 Mon Sep 17 00:00:00 2001 From: Evan Broder Date: Sat, 29 May 2010 17:53:01 -0400 Subject: [PATCH] Add write-ups on how to invirtify corosync and openais. svn path=/trunk/third/openais/; revision=3012 --- HOWTO | 6 + openais_1.1.1-1~hardy1~invirt2.debdiff | 245 ++++++++++++++++++++++++++++++++ 2 files changed, 251 insertions(+) create mode 100644 HOWTO create mode 100644 openais_1.1.1-1~hardy1~invirt2.debdiff diff --git a/HOWTO b/HOWTO new file mode 100644 index 0000000..fdaa14d --- /dev/null +++ b/HOWTO @@ -0,0 +1,6 @@ +To re-generate the Invirt openais package, + + 1. Start with openais 1.1.1-1 from Debian, available from + http://snapshot.debian.org/ + 2. Apply openais_1.1.1-1~hardy1~invirt2.debdiff + 3. Build, upload, and install diff --git a/openais_1.1.1-1~hardy1~invirt2.debdiff b/openais_1.1.1-1~hardy1~invirt2.debdiff new file mode 100644 index 0000000..7b3186b --- /dev/null +++ b/openais_1.1.1-1~hardy1~invirt2.debdiff @@ -0,0 +1,245 @@ +diff -u openais-1.1.1/debian/control openais-1.1.1/debian/control +--- openais-1.1.1/debian/control ++++ openais-1.1.1/debian/control +@@ -5,7 +5,7 @@ + Uploaders: Bastian Blank , Frederik Schüler , + Guido Günther + Standards-Version: 3.8.3 +-Build-Depends: debhelper (>> 5), libcorosync-dev (>= 1.1.0), pkg-config, groff ++Build-Depends: debhelper (>> 5), libcorosync-dev (>= 1.1.0), pkg-config, groff, quilt + Vcs-Git: git://git.debian.org/debian-ha/openais.git + Vcs-Browser: http://git.debian.org/?p=debian-ha/openais.git;a=summary + +@@ -14,6 +14,7 @@ + Architecture: any + Breaks: cman (<< 3.0.0) + Depends: ${shlibs:Depends}, libopenais3 (= ${binary:Version}) ++Provides: invirt-openais + Description: Standards-based cluster framework (daemon and modules) + The openais project is a project to implement a production quality + "Revised BSD" licensed implementation of the SA Forum's Application +diff -u openais-1.1.1/debian/changelog openais-1.1.1/debian/changelog +--- openais-1.1.1/debian/changelog ++++ openais-1.1.1/debian/changelog +@@ -1,3 +1,12 @@ ++openais (1.1.1-1~hardy1~invirt2) hardy; urgency=low ++ ++ * Backport to Hardy. ++ * Include r2098-2102 from openais to fix deadlocks in the Lck service. ++ * Provide invirt-openais, so that invirt-cluster-config can depend on a ++ version of openais with the Lck patch. ++ ++ -- Evan Broder Sat, 29 May 2010 17:18:51 -0400 ++ + openais (1.1.1-1) unstable; urgency=low + + * [8fe08bb] add watch file +diff -u openais-1.1.1/debian/rules openais-1.1.1/debian/rules +--- openais-1.1.1/debian/rules ++++ openais-1.1.1/debian/rules +@@ -5,7 +5,9 @@ + + export OPENAIS_BUILD=$(if $(findstring debug,$(DEB_BUILD_OPTIONS)),DEBUG) + +-configure-stamp: ++include /usr/share/quilt/quilt.make ++ ++configure-stamp: patch + ./configure --prefix=/usr \ + --sysconfdir=/etc \ + --libexecdir=/usr/lib/ \ +@@ -14,7 +16,7 @@ + build: configure-stamp + make + +-clean: ++clean: unpatch + dh_testdir + -$(MAKE) distclean + dh_clean configure-stamp +only in patch2: +unchanged: +--- openais-1.1.1.orig/debian/patches/2099-fix-saTmrDispatch-deadlock ++++ openais-1.1.1/debian/patches/2099-fix-saTmrDispatch-deadlock +@@ -0,0 +1,15 @@ ++Description: Fix a deadlock in the Tmr service ++Origin: upstream, commit:r2099 ++ ++=================================================================== ++--- a/lib/tmr.c (revision 2098) +++++ b/lib/tmr.c (revision 2099) ++@@ -226,7 +226,7 @@ ++ switch (dispatch_data->id) { ++ case MESSAGE_RES_TMR_TIMEREXPIREDCALLBACK: ++ if (callbacks.saTmrTimerExpiredCallback == NULL) { ++- continue; +++ break; ++ } ++ ++ res_lib_tmr_timerexpiredcallback = +only in patch2: +unchanged: +--- openais-1.1.1.orig/debian/patches/series ++++ openais-1.1.1/debian/patches/series +@@ -0,0 +1,5 @@ ++2098-fix-saCkptDispatch-deadlock ++2099-fix-saTmrDispatch-deadlock ++2100-fix-saLckDispatch-deadlock ++2101-fix-saClmDispatch-deadlock ++2102-fix-saMsgDispatch-deadlock +only in patch2: +unchanged: +--- openais-1.1.1.orig/debian/patches/2102-fix-saMsgDispatch-deadlock ++++ openais-1.1.1/debian/patches/2102-fix-saMsgDispatch-deadlock +@@ -0,0 +1,43 @@ ++Description: Fix a deadlock in the Msg service ++Origin: upstream, commit:r2102 ++ ++Index: lib/msg.c ++=================================================================== ++--- a/lib/msg.c (revision 2101) +++++ b/lib/msg.c (revision 2102) ++@@ -295,7 +295,7 @@ ++ { ++ case MESSAGE_RES_MSG_QUEUEOPEN_CALLBACK: ++ if (callbacks.saMsgQueueOpenCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_msg_queueopen_callback = ++ (struct res_lib_msg_queueopen_callback *)dispatch_data; ++@@ -324,7 +324,7 @@ ++ ++ case MESSAGE_RES_MSG_QUEUEGROUPTRACK_CALLBACK: ++ if (callbacks.saMsgQueueGroupTrackCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_msg_queuegrouptrack_callback = ++ (struct res_lib_msg_queuegrouptrack_callback *)dispatch_data; ++@@ -354,7 +354,7 @@ ++ ++ case MESSAGE_RES_MSG_MESSAGEDELIVERED_CALLBACK: ++ if (callbacks.saMsgMessageDeliveredCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_msg_messagedelivered_callback = ++ (struct res_lib_msg_messagedelivered_callback *)dispatch_data; ++@@ -367,7 +367,7 @@ ++ ++ case MESSAGE_RES_MSG_MESSAGERECEIVED_CALLBACK: ++ if (callbacks.saMsgMessageReceivedCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_msg_messagereceived_callback = ++ (struct res_lib_msg_messagereceived_callback *)dispatch_data; +only in patch2: +unchanged: +--- openais-1.1.1.orig/debian/patches/2100-fix-saLckDispatch-deadlock ++++ openais-1.1.1/debian/patches/2100-fix-saLckDispatch-deadlock +@@ -0,0 +1,43 @@ ++Description: Fix a deadlock in the Lck service ++Origin: upstream, commit:r2100 ++ ++Index: lib/lck.c ++=================================================================== ++--- a/lib/lck.c (revision 2099) +++++ b/lib/lck.c (revision 2100) ++@@ -345,7 +345,7 @@ ++ switch (dispatch_data->id) { ++ case MESSAGE_RES_LCK_RESOURCEOPEN_CALLBACK: ++ if (callbacks.saLckResourceOpenCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_lck_resourceopen_callback = ++ (struct res_lib_lck_resourceopen_callback *)dispatch_data; ++@@ -374,7 +374,7 @@ ++ ++ case MESSAGE_RES_LCK_LOCKGRANT_CALLBACK: ++ if (callbacks.saLckLockGrantCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_lck_lockgrant_callback = ++ (struct res_lib_lck_lockgrant_callback *)dispatch_data; ++@@ -421,7 +421,7 @@ ++ ++ case MESSAGE_RES_LCK_LOCKWAITER_CALLBACK: ++ if (callbacks.saLckLockWaiterCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_lck_lockwaiter_callback = ++ (struct res_lib_lck_lockwaiter_callback *)dispatch_data; ++@@ -451,7 +451,7 @@ ++ ++ case MESSAGE_RES_LCK_RESOURCEUNLOCK_CALLBACK: ++ if (callbacks.saLckResourceUnlockCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_lck_resourceunlock_callback = ++ (struct res_lib_lck_resourceunlock_callback *)dispatch_data; +only in patch2: +unchanged: +--- openais-1.1.1.orig/debian/patches/2098-fix-saCkptDispatch-deadlock ++++ openais-1.1.1/debian/patches/2098-fix-saCkptDispatch-deadlock +@@ -0,0 +1,25 @@ ++Description: Fix a deadlock in the Ckpt service ++Origin: upstream, commit:r2098 ++ ++Index: lib/ckpt.c ++=================================================================== ++--- a/lib/ckpt.c (revision 2097) +++++ b/lib/ckpt.c (revision 2098) ++@@ -365,7 +365,7 @@ ++ switch (dispatch_data->id) { ++ case MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTOPENASYNC: ++ if (callbacks.saCkptCheckpointOpenCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_ckpt_checkpointopenasync = (struct res_lib_ckpt_checkpointopenasync *) dispatch_data; ++ ++@@ -409,7 +409,7 @@ ++ ++ case MESSAGE_RES_CKPT_CHECKPOINT_CHECKPOINTSYNCHRONIZEASYNC: ++ if (callbacks.saCkptCheckpointSynchronizeCallback == NULL) { ++- continue; +++ break; ++ } ++ ++ res_lib_ckpt_checkpointsynchronizeasync = (struct res_lib_ckpt_checkpointsynchronizeasync *) dispatch_data; +only in patch2: +unchanged: +--- openais-1.1.1.orig/debian/patches/2101-fix-saClmDispatch-deadlock ++++ openais-1.1.1/debian/patches/2101-fix-saClmDispatch-deadlock +@@ -0,0 +1,25 @@ ++Description: Fix a deadlock in the Clm service ++Origin: upstream, commit:r2101 ++ ++Index: lib/clm.c ++=================================================================== ++--- a/lib/clm.c (revision 2100) +++++ b/lib/clm.c (revision 2101) ++@@ -319,7 +319,7 @@ ++ ++ case MESSAGE_RES_CLM_TRACKCALLBACK: ++ if (callbacks.saClmClusterTrackCallback == NULL) { ++- continue; +++ break; ++ } ++ res_lib_clm_clustertrack = (struct res_lib_clm_clustertrack *)dispatch_data; ++ error = SA_AIS_OK; ++@@ -350,7 +350,7 @@ ++ ++ case MESSAGE_RES_CLM_NODEGETCALLBACK: ++ if (callbacks.saClmClusterNodeGetCallback == NULL) { ++- continue; +++ break; ++ } ++ res_clm_nodegetcallback = (struct res_clm_nodegetcallback *)dispatch_data; ++ marshall_from_mar_clm_cluster_node_t ( -- 1.7.9.5