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,6 @@ +2098-fix-saCkptDispatch-deadlock +2099-fix-saTmrDispatch-deadlock +2100-fix-saLckDispatch-deadlock +2101-fix-saClmDispatch-deadlock +2102-fix-saMsgDispatch-deadlock +invirt_bump_locks 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 ( only in patch2: unchanged: --- openais-1.1.1.orig/debian/patches/invirt_bump_locks +++ openais-1.1.1/debian/patches/invirt_bump_locks @@ -0,0 +1,11 @@ +--- a/include/ipc_lck.h 2010-05-29 17:05:43.000000000 -0400 ++++ b/include/ipc_lck.h 2010-05-29 17:06:22.000000000 -0400 +@@ -75,7 +75,7 @@ + * can be obtained via the library call saLckLimitGet + * by passing the appropriate limitId (see saLck.h). + */ +-#define LCK_MAX_NUM_LOCKS 4096 ++#define LCK_MAX_NUM_LOCKS 524288 + + struct req_lib_lck_resourceopen { + coroipc_request_header_t header __attribute__((aligned(8)));