[pve-devel] r5367 - / corosync corosync/trunk corosync/trunk/debian corosync/trunk/debian/patches

svn-commits at proxmox.com svn-commits at proxmox.com
Thu Jan 13 06:16:47 CET 2011


Author: dietmar
Date: 2011-01-13 06:16:46 +0100 (Thu, 13 Jan 2011)
New Revision: 5367

Added:
   corosync/
   corosync/trunk/
   corosync/trunk/Makefile
   corosync/trunk/corosync-1.3.0.orig.tar.gz
   corosync/trunk/debian/
   corosync/trunk/debian/changelog
   corosync/trunk/debian/compat
   corosync/trunk/debian/control
   corosync/trunk/debian/copyright
   corosync/trunk/debian/corosync-pve.dirs
   corosync/trunk/debian/corosync-pve.docs
   corosync/trunk/debian/corosync-pve.examples
   corosync/trunk/debian/corosync-pve.install
   corosync/trunk/debian/corosync-pve.postinst
   corosync/trunk/debian/corosync-pve.postrm
   corosync/trunk/debian/libcorosync-pve-dev.install
   corosync/trunk/debian/libcorosync4-pve.install
   corosync/trunk/debian/patches/
   corosync/trunk/debian/patches/config-path.diff
   corosync/trunk/debian/patches/corosync-keygen.diff
   corosync/trunk/debian/patches/cpg-join-fix.diff
   corosync/trunk/debian/patches/default-config.diff
   corosync/trunk/debian/patches/series
   corosync/trunk/debian/rules
Log:
moved from private repository



Added: corosync/trunk/Makefile
===================================================================
--- corosync/trunk/Makefile	                        (rev 0)
+++ corosync/trunk/Makefile	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,46 @@
+RELEASE=2.0
+
+CSVERSION=1.3.0
+CSRELEASE=1
+CSDIR=corosync-${CSVERSION}
+CSSRC=corosync-${CSVERSION}.orig.tar.gz
+
+ARCH:=$(shell dpkg-architecture -qDEB_BUILD_ARCH)
+
+DEBS=									\
+	corosync-pve_${CSVERSION}-${CSRELEASE}_${ARCH}.deb 		\
+	libcorosync4-pve_${CSVERSION}-${CSRELEASE}_${ARCH}.deb 		\
+	libcorosync-pve-dev_${CSVERSION}-${CSRELEASE}_${ARCH}.deb
+
+all: ${DEBS}
+	echo ${DEBS}
+
+${DEBS}: ${CSSRC}
+	echo ${DEBS}
+	rm -rf ${CSDIR}
+	tar xf ${CSSRC} 
+	cp -a debian ${CSDIR}/debian
+	cd ${CSDIR}; dpkg-buildpackage -rfakeroot -b -us -uc
+
+download:
+	rm -rf corosync-${CSVERSION} corosync-${CSVERSION}.orig.tar.gz
+	git clone git://corosync.org/corosync.git corosync-${CSVERSION}
+	cd corosync-${CSVERSION}; git checkout -b local  v${CSVERSION}	
+	cd corosync-${CSVERSION}; ./autogen.sh
+	tar czf corosync-${CSVERSION}.orig.tar.gz corosync-${CSVERSION}/
+
+
+.PHONY: upload
+upload: ${DEBS}
+	umount /pve/${RELEASE}; mount /pve/${RELEASE} -o rw 
+	mkdir -p /pve/${RELEASE}/extra
+	rm -f /pve/${RELEASE}/extra/corosync*.deb
+	rm -f /pve/${RELEASE}/extra/libcorosync*.deb
+	rm -f /pve/${RELEASE}/extra/Packages*
+	cp ${DEBS} /pve/${RELEASE}/extra
+	cd /pve/${RELEASE}/extra; dpkg-scanpackages . /dev/null > Packages; gzip -9c Packages > Packages.gz
+	umount /pve/${RELEASE}; mount /pve/${RELEASE} -o ro
+
+.PHONY: clean
+clean:
+	rm -rf *_${ARCH}.deb *.changes *.dsc ${CSDIR} corosync_${CSVERSION}-${CSRELEASE}.tar.gz

Added: corosync/trunk/corosync-1.3.0.orig.tar.gz
===================================================================
(Binary files differ)


Property changes on: corosync/trunk/corosync-1.3.0.orig.tar.gz
___________________________________________________________________
Added: svn:mime-type
   + application/octet-stream

Added: corosync/trunk/debian/changelog
===================================================================
--- corosync/trunk/debian/changelog	                        (rev 0)
+++ corosync/trunk/debian/changelog	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,67 @@
+corosync-pve (1.3.0-1) unstable; urgency=low
+
+  * update to latest stable
+
+ -- Proxmox Support Team <support at proxmox.com>  Thu, 02 Dec 2010 07:11:10 +0100
+
+corosync-pve (1.2.8-1) unstable; urgency=low
+
+  *  update to latest stable
+
+ -- Proxmox Support Team <support at proxmox.com>  Wed, 06 Oct 2010 13:24:24 +0200
+
+corosync-pve (1.2.0-1) unstable; urgency=low
+
+  * add patches/cpg-join-fix.diff, see
+  https://bugzilla.redhat.com/show_bug.cgi?id=568356
+  
+  * update to latest stable
+  
+  * do not create/installe /etc/corosync/* - we use cman instead
+  
+  * delete init.d script - we use cman instead
+
+ -- Proxmox Support Team <support at proxmox.com>  Thu, 21 Jan 2010 13:50:43 +0100
+
+corosync-pve (1.1.2-1) unstable; urgency=low
+
+  *  update to latest stable
+
+ -- Proxmox Support Team <support at proxmox.com>  Fri, 23 Oct 2009 11:41:04 +0200
+
+corosync-pve (1.1.1-1) unstable; urgency=low
+
+  *  update to latest stable
+
+ -- Proxmox Support Team <support at proxmox.com>  Thu, 22 Oct 2009 12:46:53 +0200
+
+corosync-pve (1.0-1) unstable; urgency=low
+
+  * update to latest trunc
+  
+  * use quilt instead of dpatch
+  
+  * use /dev/urandom instead of /dev/random for key generation
+  
+  * new config file localtion: /etc/corosync/corosync.conf
+  
+  * new key location: /etc/corosync/authkey
+  
+  * new default configuration: secauth = on
+  
+  * auto-generate authkey in postinst script if it does not exist
+
+ -- Proxmox Support Team <support at proxmox.com>  Mon, 08 Jun 2009 03:28:34 -0400
+
+corosync-pve (0.95-1) unstable; urgency=low
+
+  * update to 0.95
+
+ -- Proxmox Support Team <support at proxmox.com>  Wed, 01 Apr 2009 10:07:13 -0400
+
+corosync-pve (0.94-1) unstable; urgency=low
+
+  * Initial release.
+
+ -- Proxmox Support Team <support at proxmox.com>  Mon, 30 Mar 2009 06:55:24 -0400
+

Added: corosync/trunk/debian/compat
===================================================================
--- corosync/trunk/debian/compat	                        (rev 0)
+++ corosync/trunk/debian/compat	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1 @@
+7

Added: corosync/trunk/debian/control
===================================================================
--- corosync/trunk/debian/control	                        (rev 0)
+++ corosync/trunk/debian/control	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,68 @@
+Source: corosync-pve
+Priority: extra
+Maintainer: Proxmox Support Team <support at proxmox.com>
+Build-Depends: debhelper (>= 7), autotools-dev, libnss3-dev, groff
+Standards-Version: 3.7.3
+Section: admin
+Homepage: http://openais.org/
+
+Package: corosync-pve
+Section: admin
+Architecture: any
+Depends: ${shlibs:Depends}, psmisc, lsb-base (>= 3.0-6), libcorosync4-pve, adduser
+Conflicts: openais (<< 0.96), corosync
+Provides: corosync
+Description: Standards-based cluster framework (daemon and modules)
+ The corosync project is a project to implement a production quality
+ "Revised BSD" licensed implementation of all core functionalities
+ required by openais. The project implements cutting edge research
+ on virtual synchrony to provide 100% correct operation in the face of
+ failures or partitionable networks with excellent performance
+ characteristics.
+ .
+ The Application Interface Specification is a software API and policies
+ which are used to develop applications that maintain service during
+ faults.
+ .
+ This package contains the corosync daemon and modules.
+
+Package: libcorosync4-pve
+Section: libs
+Architecture: any
+Depends: ${shlibs:Depends}
+Conflicts: libopenais2 (<< 0.96-1), libcorosync4
+Provides: libcorosync4
+Description: Standards-based cluster framework (libraries)
+ The corosync project is a project to implement a production quality
+ "Revised BSD" licensed implementation of all core functionalities
+ required by openais. The project implements cutting edge research
+ on virtual synchrony to provide 100% correct operation in the face of
+ failures or partitionable networks with excellent performance
+ characteristics.
+ .
+ The Application Interface Specification is a software API and policies
+ which are used to develop applications that maintain service during
+ faults.
+ .
+ This package contains libraries that should be used by corosync clients.
+
+Package: libcorosync-pve-dev
+Section: libdevel
+Architecture: any
+Depends: libcorosync4-pve (= ${binary:Version})
+Conflicts: libopenais-dev (<< 0.96-1),  libcorosync-dev
+Provides: libcorosync-dev
+Description: Standards-based cluster framework (developer files)
+ The corosync project is a project to implement a production quality
+ "Revised BSD" licensed implementation of all core functionalities
+ required by openais. The project implements cutting edge research
+ on virtual synchrony to provide 100% correct operation in the face of
+ failures or partitionable networks with excellent performance
+ characteristics.
+ .
+ The Application Interface Specification is a software API and policies
+ which are used to develop applications that maintain service during
+ faults.
+ .
+ This package contains header files required to build clients for the
+ corosync infrastructure.

Added: corosync/trunk/debian/copyright
===================================================================
--- corosync/trunk/debian/copyright	                        (rev 0)
+++ corosync/trunk/debian/copyright	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,66 @@
+This package was debianized by the Proxmox Support Team
+<support at proxmox.com> on Mon, 30 Mar 2009 06:55:24 -0400.
+
+It was downloaded from <http://openais.org/>
+
+***
+All cryptographic software in this package is subject to the following legal
+notice:
+This package includes publicly available encryption source code which,
+together with object code resulting from the compiling of publicly
+available source code, may be exported from the United States under License
+Exception TSU prsuant to 15 C.F.R Section 740.13(e).
+***
+-----------------------------------------------------------------------------
+The following license applies to every file in this package except for 
+the files exec/crypto.c and exec/crypto.h.  The license for these files is
+described later in this document.  Some files are contributed by other authors
+and hence not copyright MontaVista Software.  In this case, the license is
+still as follows:
+-----------------------------------------------------------------------------
+
+Copyright (c) 2002-2004 MontaVista Software, Inc.
+
+All rights reserved.
+
+This software licensed under BSD license, the text of which follows:
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are met:
+
+- Redistributions of source code must retain the above copyright notice,
+  this list of conditions and the following disclaimer.
+- Redistributions in binary form must reproduce the above copyright notice,
+  this list of conditions and the following disclaimer in the documentation
+  and/or other materials provided with the distribution.
+- Neither the name of the MontaVista Software, Inc. nor the names of its
+  contributors may be used to endorse or promote products derived from this
+  software without specific prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
+LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
+THE POSSIBILITY OF SUCH DAMAGE.
+-----------------------------------------------------------------------------
+The corosync project uses software from the LibTomCrypt project
+www.libtomcrypt.org.  This software is contained the files exec/crypto.c and
+exec/crypto.h.  The following license applies to the files exec/crypto.c and
+exec/crytpo.h:
+-----------------------------------------------------------------------------
+LibTomCrypt is public domain.  As should all quality software be.
+
+All of the software was either written by or donated to Tom St Denis for the
+purposes of this project.  The only exception is the SAFER.C source which has
+no known license status (assumed copyrighted) which is why SAFER,C is shipped
+as disabled.
+
+Tom St Denis
+
+

Added: corosync/trunk/debian/corosync-pve.dirs
===================================================================
--- corosync/trunk/debian/corosync-pve.dirs	                        (rev 0)
+++ corosync/trunk/debian/corosync-pve.dirs	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1 @@
+var/lib/corosync

Added: corosync/trunk/debian/corosync-pve.docs
===================================================================
--- corosync/trunk/debian/corosync-pve.docs	                        (rev 0)
+++ corosync/trunk/debian/corosync-pve.docs	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,5 @@
+AUTHORS
+README.devmap
+README.recovery
+SECURITY
+TODO

Added: corosync/trunk/debian/corosync-pve.examples
===================================================================
--- corosync/trunk/debian/corosync-pve.examples	                        (rev 0)
+++ corosync/trunk/debian/corosync-pve.examples	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1 @@
+conf/*

Added: corosync/trunk/debian/corosync-pve.install
===================================================================
--- corosync/trunk/debian/corosync-pve.install	                        (rev 0)
+++ corosync/trunk/debian/corosync-pve.install	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,4 @@
+usr/sbin
+usr/share/man/man5
+usr/share/man/man8
+usr/lib/lcrso

Added: corosync/trunk/debian/corosync-pve.postinst
===================================================================
--- corosync/trunk/debian/corosync-pve.postinst	                        (rev 0)
+++ corosync/trunk/debian/corosync-pve.postinst	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,33 @@
+#!/bin/sh
+# postinst script for corosync
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+case "$1" in
+    configure)
+
+	# create the ais user
+        adduser --quiet --group --system --no-create-home ais
+
+    ;;
+
+    abort-upgrade|abort-remove|abort-deconfigure)
+    ;;
+
+    *)
+        echo "postinst called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0

Added: corosync/trunk/debian/corosync-pve.postrm
===================================================================
--- corosync/trunk/debian/corosync-pve.postrm	                        (rev 0)
+++ corosync/trunk/debian/corosync-pve.postrm	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,33 @@
+#!/bin/sh
+# postrm script for corosync
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+    purge)
+	rm -rf /var/lib/corosync
+    ;;
+
+    remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+    ;;
+
+    *)
+        echo "postrm called with unknown argument \`$1'" >&2
+        exit 1
+    ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+

Added: corosync/trunk/debian/libcorosync-pve-dev.install
===================================================================
--- corosync/trunk/debian/libcorosync-pve-dev.install	                        (rev 0)
+++ corosync/trunk/debian/libcorosync-pve-dev.install	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,6 @@
+usr/include/*
+usr/lib/lib*.a
+usr/lib/lib*.so
+usr/lib/pkgconfig/*
+usr/share/man/man3
+

Added: corosync/trunk/debian/libcorosync4-pve.install
===================================================================
--- corosync/trunk/debian/libcorosync4-pve.install	                        (rev 0)
+++ corosync/trunk/debian/libcorosync4-pve.install	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1 @@
+usr/lib/*.so.4*

Added: corosync/trunk/debian/patches/config-path.diff
===================================================================
--- corosync/trunk/debian/patches/config-path.diff	                        (rev 0)
+++ corosync/trunk/debian/patches/config-path.diff	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,86 @@
+Index: corosync-1.0/exec/coroparse.c
+===================================================================
+--- corosync-1.0.orig/exec/coroparse.c	2009-06-10 06:33:21.000000000 -0400
++++ corosync-1.0/exec/coroparse.c	2009-06-10 06:56:56.000000000 -0400
+@@ -261,7 +261,7 @@
+ 
+ 	filename = getenv ("COROSYNC_MAIN_CONFIG_FILE");
+ 	if (!filename)
+-		filename = SYSCONFDIR "/corosync.conf";
++		filename = SYSCONFDIR "/corosync/corosync.conf";
+ 
+ 	fp = fopen (filename, "r");
+ 	if (fp == NULL) {
+Index: corosync-1.0/exec/totemconfig.c
+===================================================================
+--- corosync-1.0.orig/exec/totemconfig.c	2009-06-10 06:33:21.000000000 -0400
++++ corosync-1.0/exec/totemconfig.c	2009-06-10 06:56:56.000000000 -0400
+@@ -764,7 +764,7 @@
+ 	if (!got_key) {
+ 		const char *filename = getenv("COROSYNC_TOTEM_AUTHKEY_FILE");
+ 		if (!filename)
+-			filename = SYSCONFDIR "/ais/authkey";
++			filename = SYSCONFDIR "/corosync/authkey";
+ 		res = read_keyfile(filename, totem_config, error_string);
+ 		if (res)
+ 			goto key_error;
+Index: corosync-1.0/tools/corosync-keygen.c
+===================================================================
+--- corosync-1.0.orig/tools/corosync-keygen.c	2009-06-10 06:33:22.000000000 -0400
++++ corosync-1.0/tools/corosync-keygen.c	2009-06-10 07:34:39.000000000 -0400
+@@ -44,40 +44,45 @@
+ 
+ #include <netinet/in.h>
+ 
+-#define KEYFILE SYSCONFDIR "/ais/authkey"
++#define KEYFILE SYSCONFDIR "/corosync/authkey"
+ 
+ int main (void) {
+ 	int authkey_fd;
+ 	int random_fd;
+ 	unsigned char key[128];
+ 	ssize_t res;
++	ssize_t bytes = 0;
+ 
+ 	printf ("Corosync Cluster Engine Authentication key generator.\n");
+ 	if (geteuid() != 0) {
+ 		printf ("Error: Authorization key must be generated as root user.\n");
+ 		exit (1);
+ 	}
+-	if (mkdir (SYSCONFDIR "/ais", 0700)) {
++	if (mkdir (SYSCONFDIR "/corosync", 0700)) {
+ 		if (errno != EEXIST) {
+-			perror ("Failed to create directory: " SYSCONFDIR "/ais");
++			perror ("Failed to create directory: " SYSCONFDIR "/corosync");
+ 			exit (1);
+ 		}
+ 	}
+ 
+-	printf ("Gathering %lu bits for key from /dev/random.\n", (unsigned long)(sizeof (key) * 8));
+-	random_fd = open ("/dev/random", O_RDONLY);
++	printf ("Gathering %lu bits for key from /dev/urandom.\n", (unsigned long)(sizeof (key) * 8));
++	random_fd = open ("/dev/urandom", O_RDONLY);
+ 	if (random_fd == -1) {
+-		perror ("Is /dev/random present? Opening /dev/random");
++		perror ("Is /dev/urandom present? Opening /dev/urandom");
+ 		exit (1);
+ 	}
+ 
+ 	/*
+ 	 * Read random data
+ 	 */
+-	res = read (random_fd, key, sizeof (key));
+-	if (res != sizeof (key)) {
+-		perror ("Could not read /dev/random");
+-		exit (1);
++	while (bytes < sizeof (key)) {
++		res = read (random_fd, key + bytes, sizeof (key) - bytes);
++		if (res <= 0) {
++			perror ("Could not read /dev/urandom");
++			exit (1);
++		}
++		bytes += res;
++		printf ("Got %d bits\n", bytes*8);
+ 	}
+ 	close (random_fd);
+ 

Added: corosync/trunk/debian/patches/corosync-keygen.diff
===================================================================
--- corosync/trunk/debian/patches/corosync-keygen.diff	                        (rev 0)
+++ corosync/trunk/debian/patches/corosync-keygen.diff	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,41 @@
+Index: corosync-1.1.2/tools/corosync-keygen.c
+===================================================================
+--- corosync-1.1.2.orig/tools/corosync-keygen.c	2009-10-27 13:25:02.000000000 +0100
++++ corosync-1.1.2/tools/corosync-keygen.c	2009-10-27 13:25:14.000000000 +0100
+@@ -67,9 +67,9 @@
+ 
+ 	printf ("Gathering %lu bits for key from /dev/random.\n", (unsigned long)(sizeof (key) * 8));
+ 	printf ("Press keys on your keyboard to generate entropy.\n");
+-	random_fd = open ("/dev/random", O_RDONLY);
++	random_fd = open ("/dev/urandom", O_RDONLY);
+ 	if (random_fd == -1) {
+-		perror ("Is /dev/random present? Opening /dev/random");
++		perror ("Is /dev/urandom present? Opening /dev/urandom");
+ 		exit (errno);
+ 	}
+ 
+@@ -78,16 +78,14 @@
+ 	 */
+ 	bytes_read = 0;
+ 
+-retry_read:
+-	res = read (random_fd, &key[bytes_read], sizeof (key) - bytes_read);
+-	if (res == -1) {
+-		perror ("Could not read /dev/random");
+-		exit (errno);
+-	}
+-	bytes_read += res;
+-	if (bytes_read != sizeof (key)) {
+-		printf ("Press keys on your keyboard to generate entropy (bits = %d).\n", bytes_read * 8);
+-		goto retry_read;
++	while (bytes_read < sizeof (key)) {
++		res = read (random_fd, key + bytes_read, sizeof (key) - bytes_read);
++		if (res <= 0) {
++			perror ("Could not read /dev/urandom");
++			exit (1);
++		}
++		bytes_read += res;
++		printf ("Got %d bits\n", bytes_read*8);
+ 	}
+ 	close (random_fd);
+ 

Added: corosync/trunk/debian/patches/cpg-join-fix.diff
===================================================================
--- corosync/trunk/debian/patches/cpg-join-fix.diff	                        (rev 0)
+++ corosync/trunk/debian/patches/cpg-join-fix.diff	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,44 @@
+commit 41a2a23e5da11cfbae054dcd79512fb816c37d30
+Author: Jan Friesse <jfriesse at redhat.com>
+Date:   Thu Feb 25 15:38:25 2010 +0100
+
+    Cpg join with undelivered leave message
+    
+    Patch handles situation, when on one node, one process:
+    - join cpg
+    - do same actions
+    - leave cpg
+    - join cpg again
+    
+    Following sequence can (racy) end with broken process_info list.
+    
+    To solve this problem, one more check is done in
+    message_handler_req_lib_cpg_join so if process_info with same pid and
+    group as new join request exists, CPG_ERR_TRY_AGAIN is returned.
+
+Index: corosync-1.2.0/services/cpg.c
+===================================================================
+--- corosync-1.2.0.orig/services/cpg.c	2010-02-26 10:20:18.000000000 +0100
++++ corosync-1.2.0/services/cpg.c	2010-02-26 10:20:32.000000000 +0100
+@@ -1063,6 +1063,21 @@
+ 		}
+ 	}
+ 
++	/*
++	 * Same check must be done in process info list, because there may be not yet delivered
++	 * leave of client.
++	 */
++	for (iter = process_info_list_head.next; iter != &process_info_list_head; iter = iter->next) {
++		struct process_info *pi = list_entry (iter, struct process_info, list);
++
++		if (pi->nodeid == api->totem_nodeid_get () && pi->pid == req_lib_cpg_join->pid &&
++		    mar_name_compare(&req_lib_cpg_join->group_name, &pi->group) == 0) {
++			/* We have same pid and group name joined -> return error */
++			error = CPG_ERR_TRY_AGAIN;
++			goto response_send;
++		}
++	}
++
+ 	switch (cpd->cpd_state) {
+ 	case CPD_STATE_UNJOINED:
+ 		error = CPG_OK;

Added: corosync/trunk/debian/patches/default-config.diff
===================================================================
--- corosync/trunk/debian/patches/default-config.diff	                        (rev 0)
+++ corosync/trunk/debian/patches/default-config.diff	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,22 @@
+Index: corosync-1.0/conf/corosync.conf.example
+===================================================================
+--- corosync-1.0.orig/conf/corosync.conf.example	2009-06-10 06:33:21.000000000 -0400
++++ corosync-1.0/conf/corosync.conf.example	2009-06-10 06:54:17.000000000 -0400
+@@ -1,7 +1,7 @@
+ # Please read the corosync.conf.5 manual page
+ totem {
+ 	version: 2
+-	secauth: off
++	secauth: on
+ 	threads: 0
+ 	interface {
+ 		ringnumber: 0
+@@ -14,7 +14,7 @@
+ logging {
+ 	fileline: off
+ 	to_stderr: yes
+-	to_logfile: yes
++	to_logfile: no
+ 	to_syslog: yes
+ 	logfile: /tmp/corosync.log
+ 	debug: off

Added: corosync/trunk/debian/patches/series
===================================================================
--- corosync/trunk/debian/patches/series	                        (rev 0)
+++ corosync/trunk/debian/patches/series	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,4 @@
+#config-path.diff
+#default-config.diff
+#corosync-keygen.diff
+#cpg-join-fix.diff

Added: corosync/trunk/debian/rules
===================================================================
--- corosync/trunk/debian/rules	                        (rev 0)
+++ corosync/trunk/debian/rules	2011-01-13 05:16:46 UTC (rev 5367)
@@ -0,0 +1,105 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+ifneq "$(wildcard /usr/share/quilt/quilt.make)" ""
+include /usr/share/quilt/quilt.make
+endif
+
+config.status: configure
+	dh_testdir
+	# Add here commands to configure the package.
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+	cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+	cp -f /usr/share/misc/config.guess config.guess
+endif
+
+	./configure --prefix=/usr --sysconfdir=/etc --mandir=\$${prefix}/share/man --localstatedir=/var --infodir=\$${prefix}/share/info --with-lcrso-dir=\$${prefix}/lib/lcrso
+
+	touch config.status
+
+build: patch build-stamp
+build-stamp:  config.status 
+	dh_testdir
+
+	# Add here commands to compile the package.
+	$(MAKE)
+
+	touch $@
+
+clean: unpatch
+	dh_testdir
+	dh_testroot
+	rm -f build-stamp 
+
+	# Add here commands to clean up after the build process.
+	[ ! -f Makefile ] || $(MAKE) distclean
+	rm -f config.sub config.guess
+
+	dh_clean 
+
+install: install-stamp
+install-stamp: build
+	dh_testdir
+	dh_testroot
+	dh_clean -k 
+	dh_installdirs
+
+	# Add here commands to install the package into debian/tmp
+	$(MAKE) DESTDIR=$(CURDIR)/debian/tmp install	
+
+	# we do not use corosync-keygen
+	rm $(CURDIR)/debian/tmp/usr/sbin/corosync-keygen
+
+	chmod 0644 $(CURDIR)/debian/tmp/usr/lib/lcrso/*.lcrso
+	strip -s $(CURDIR)/debian/tmp/usr/lib/lcrso/*.lcrso
+
+	touch $@
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+	dh_testdir
+	dh_testroot
+	dh_installchangelogs 
+	dh_installdocs
+	dh_installexamples
+	dh_install
+#	dh_installmenu
+#	dh_installdebconf	
+	dh_installlogrotate
+#	dh_installemacsen
+#	dh_installpam
+#	dh_installmime
+	dh_installinit
+#	dh_installcron
+#	dh_installinfo
+	dh_installman
+	dh_link
+	dh_strip
+	dh_compress
+	dh_fixperms
+#	dh_perl
+#	dh_python
+	dh_makeshlibs
+	dh_installdeb
+	dh_shlibdeps
+	dh_gencontrol
+	dh_md5sums
+	dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install 


Property changes on: corosync/trunk/debian/rules
___________________________________________________________________
Added: svn:executable
   + 



More information about the pve-devel mailing list