Add write-ups on how to invirtify corosync and openais.
authorEvan Broder <broder@mit.edu>
Sat, 29 May 2010 21:53:01 +0000 (17:53 -0400)
committerEvan Broder <broder@mit.edu>
Sat, 29 May 2010 21:53:01 +0000 (17:53 -0400)
svn path=/trunk/third/openais/; revision=3012

HOWTO [new file with mode: 0644]
openais_1.1.1-1~hardy1~invirt2.debdiff [new file with mode: 0644]

diff --git a/HOWTO b/HOWTO
new file mode 100644 (file)
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 (file)
index 0000000..7b3186b
--- /dev/null
@@ -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 <waldi@debian.org>, Frederik Schüler <fs@debian.org>,
+  Guido Günther <agx@sigxcpu.org>
+ 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 <broder@xvm.mit.edu>  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 (