diff --git a/corosync-1.4.5.tar.gz b/corosync-1.4.5.tar.gz deleted file mode 100644 index 613fa41..0000000 --- a/corosync-1.4.5.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c9dbe9f84b397108c9a63bc4ee48c61631cbfec7b28930c6edff720429ac364a -size 803598 diff --git a/corosync-2.3.1.tar.gz b/corosync-2.3.1.tar.gz new file mode 100644 index 0000000..4302c31 --- /dev/null +++ b/corosync-2.3.1.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:ead453fb7242e2a5d38b36864f933b230fa90ae405027166f752467f0fb3786e +size 407948 diff --git a/corosync-confexample-timestamp.patch b/corosync-confexample-timestamp.patch deleted file mode 100644 index c0bcdfc..0000000 --- a/corosync-confexample-timestamp.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: corosync-1.4.3/conf/corosync.conf.example -=================================================================== ---- corosync-1.4.3.orig/conf/corosync.conf.example -+++ corosync-1.4.3/conf/corosync.conf.example -@@ -69,7 +69,7 @@ logging { - # Log messages with time stamps. When in doubt, set to on - # (unless you are only logging to syslog, where double - # timestamps can be annoying). -- timestamp: on -+ timestamp: off - logger_subsys { - subsys: AMF - debug: off diff --git a/corosync-cpg-procdown.patch b/corosync-cpg-procdown.patch deleted file mode 100644 index 39f1620..0000000 --- a/corosync-cpg-procdown.patch +++ /dev/null @@ -1,13 +0,0 @@ -Index: corosync-1.4.1/services/cpg.c -=================================================================== ---- corosync-1.4.1.orig/services/cpg.c -+++ corosync-1.4.1/services/cpg.c -@@ -870,7 +870,7 @@ static int cpg_lib_exit_fn (void *conn) - - log_printf(LOGSYS_LEVEL_DEBUG, "exit_fn for conn=%p\n", conn); - -- if (cpd->group_name.length > 0) { -+ if (cpd->group_name.length > 0 && cpd->cpd_state != CPD_STATE_LEAVE_STARTED) { - result = cpg_node_joinleave_send (cpd->pid, &cpd->group_name, - MESSAGE_REQ_EXEC_CPG_PROCLEAVE, CONFCHG_CPG_REASON_PROCDOWN); - if (result == -1) { diff --git a/corosync-init-lockfile-path-error.patch b/corosync-init-lockfile-path-error.patch new file mode 100644 index 0000000..6f7a997 --- /dev/null +++ b/corosync-init-lockfile-path-error.patch @@ -0,0 +1,20 @@ +Index: corosync-2.3.1/init/corosync.in +=================================================================== +--- corosync-2.3.1.orig/init/corosync.in ++++ corosync-2.3.1/init/corosync.in +@@ -29,6 +29,7 @@ PATH="/sbin:/bin:/usr/sbin:/usr/bin:@SBI + success() + { + echo -ne "[ OK ]\r" ++ rtrn=0 + } + + failure() +@@ -106,6 +107,7 @@ start() + # they also assume that init scripts will create + # required subdirectories for proper operations + mkdir -p @LOCALSTATEDIR@/run ++ mkdir -p @LOCALSTATEDIR@/lock/subsys + + if status $prog > /dev/null 2>&1; then + success diff --git a/corosync-revert-cs2429.patch b/corosync-revert-cs2429.patch deleted file mode 100644 index 381abff..0000000 --- a/corosync-revert-cs2429.patch +++ /dev/null @@ -1,143 +0,0 @@ -Only in corosync-1.2.0/exec: cscope.out -Index: corosync-1.4.1/exec/totemip.c -=================================================================== ---- corosync-1.4.1.orig/exec/totemip.c -+++ corosync-1.4.1/exec/totemip.c -@@ -396,9 +396,6 @@ int totemip_iface_check(struct totem_ip_ - */ - totemip_sockaddr_to_totemip_convert((struct sockaddr_storage *)sockaddr_in, boundto); - boundto->nodeid = sockaddr_in->sin_addr.s_addr; --#if __BYTE_ORDER == __BIG_ENDIAN -- boundto->nodeid = swab32 (boundto->nodeid); --#endif - - if (ioctl(id_fd, SIOCGLIFFLAGS, &lifreq[i]) < 0) { - printf ("couldn't do ioctl\n"); -@@ -648,9 +645,6 @@ int totemip_iface_check(struct totem_ip_ - if (ipaddr.family == AF_INET && ipaddr.nodeid == 0) { - unsigned int nodeid = 0; - memcpy (&nodeid, ipaddr.addr, sizeof (int)); --#if __BYTE_ORDER == __BIG_ENDIAN -- nodeid = swab32 (nodeid); --#endif - if (mask_high_bit) { - nodeid &= 0x7FFFFFFF; - } -Index: corosync-1.4.1/test/testcpg.c -=================================================================== ---- corosync-1.4.1.orig/test/testcpg.c -+++ corosync-1.4.1/test/testcpg.c -@@ -49,7 +49,6 @@ - - #include - #include --#include - - static int quit = 0; - static int show_ip = 0; -@@ -63,24 +62,6 @@ static void print_cpgname (const struct - } - } - --static char * node_pid_format(unsigned int nodeid,int pid) { -- static char buffer[100]; -- if (show_ip) { -- struct in_addr saddr; --#if __BYTE_ORDER == __BIG_ENDIAN -- saddr.s_addr = swab32(nodeid); --#else -- saddr.s_addr = nodeid; --#endif -- sprintf(buffer, "node/pid %s/%d", inet_ntoa(saddr),pid); -- } -- else { -- sprintf(buffer, "node/pid %d/%d", nodeid, pid); -- } -- return buffer; --} -- -- - static void DeliverCallback ( - cpg_handle_t handle, - const struct cpg_name *groupName, -@@ -89,9 +70,18 @@ static void DeliverCallback ( - void *msg, - size_t msg_len) - { -- printf("DeliverCallback: message (len=%lu)from %s: '%s'\n", -- (unsigned long int) msg_len, node_pid_format(nodeid, pid), -+ if (show_ip) { -+ struct in_addr saddr; -+ saddr.s_addr = nodeid; -+ printf("DeliverCallback: message (len=%lu)from node/pid %s/%d: '%s'\n", -+ (unsigned long int) msg_len, -+ inet_ntoa(saddr), pid, (const char *)msg); -+ } -+ else { -+ printf("DeliverCallback: message (len=%lu)from node/pid %d/%d: '%s'\n", -+ (unsigned long int) msg_len, nodeid, pid, - (const char *)msg); -+ } - } - - static void ConfchgCallback ( -@@ -102,27 +92,51 @@ static void ConfchgCallback ( - const struct cpg_address *joined_list, size_t joined_list_entries) - { - int i; -+ struct in_addr saddr; - - printf("\nConfchgCallback: group '"); - print_cpgname(groupName); - printf("'\n"); - for (i=0; i" or "rpmbuild --with " +# to disable or enable specific features +%bcond_with testagents +%define with_testagents 1 +%bcond_with watchdog +%bcond_with monitoring +%bcond_with snmp +%bcond_with rdma +%define with_systemd 1 +%bcond_with upstart +%bcond_with xmlconf +%bcond_with runautogen +%define with_runautogen 1 + %if 0%{?sles_version} == 11 %ifnarch s390 s390x %define buildib 1 @@ -29,84 +44,132 @@ Name: corosync Summary: The Corosync Cluster Engine and Application Programming Interfaces License: BSD-3-Clause Group: Productivity/Clustering/HA -Version: 1.4.5 +Version: 2.3.1 Release: 0 Url: http://www.corosync.org -Source0: http://build.clusterlabs.org/%{name}/releases/%{name}-%{version}.tar.gz +Source0: %{name}-%{version}.tar.gz Source2: baselibs.conf -Patch1: corosync-confexample-timestamp.patch -Patch2: corosync-revert-cs2429.patch -Patch4: corosync.conf.example.patch -Patch5: corosync-cpg-procdown.patch -Patch6: corosync_reduce_RR_priority.patch -Patch7: fix-nodeid-conflicting.patch +Patch1: corosync-init-lockfile-path-error.patch BuildRoot: %{_tmppath}/%{name}-%{version}-build # Runtime bits Requires: libcorosync4 = %{version}-%{release} -Requires(pre): /usr/sbin/useradd -Requires(post): /sbin/chkconfig -Requires(preun): /sbin/chkconfig -Conflicts: openais <= 0.89, libopenais2 <= 0.89, libopenais-devel <= 0.89 -%define buildtrunk 1 -%{?_with_buildtrunk: %define buildtrunk 1} -%if 0%{?buildtrunk} == 1 -BuildRequires: autoconf -BuildRequires: automake -%endif +#Requires(pre): /usr/sbin/useradd +#Requires(post): /sbin/chkconfig +#Requires(preun): /sbin/chkconfig +#Conflicts: openais <= 0.89, openais-devel <= 0.89 + +BuildRequires: libqb-devel BuildRequires: mozilla-nss BuildRequires: mozilla-nss-devel -%if 0%{?buildib} == 1 +%if %{with_runautogen} +BuildRequires: autoconf +BuildRequires: automake +BuildRequires: libtool +%endif +%if %{with monitoring} +BuildRequires: libstatgrab-devel +%endif +%if %{with rdma} BuildRequires: libibverbs-devel BuildRequires: librdmacm-devel %endif -BuildRequires: pkg-config +%if %{with snmp} +BuildRequires: net-snmp-devel +%endif +%if %{with dbus} +BuildRequires: dbus-1-devel +%endif +%if %{with_systemd} +BuildRequires: systemd +Requires(post): systemd +Requires(preun): systemd +Requires(postun): systemd +%endif +%if %{with xmlconf} +Requires: libxslt +%endif %prep %setup -q -n %{name}-%{version} %patch1 -p1 -%patch2 -p1 -%patch4 -p1 -%patch5 -p1 -%patch6 -p1 -%patch7 -p1 %build -%if 0%{?buildtrunk} == 1 +#%if 0%{?buildtrunk} == 1 ./autogen.sh -%endif -%if 0%{?buildib} == 1 +#%endif + +%if %{with rdma} export ibverbs_CFLAGS=-I/usr/include/infiniband \ export ibverbs_LIBS=-libverbs \ export rdmacm_CFLAGS=-I/usr/include/rdma \ export rdmacm_LIBS=-lrdmacm \ -%{configure} \ - --enable-nss \ - --enable-rdma -%else -%{configure} \ - --enable-nss %endif +%{configure} \ +%if %{with_testagents} + --enable-testagents \ + --enable-augeas \ + --enable-debug \ +%endif +%if %{with watchdog} + --enable-watchdog \ +%endif +%if %{with monitoring} + --enable-monitoring \ +%endif +%if %{with snmp} + --enable-snmp \ +%endif +%if %{with rdma} + --enable-rdma \ +%endif +%if %{with_systemd} + --enable-systemd \ +%endif +%if %{with upstart} + --enable-upstart \ +%endif +%if %{with xmlconf} + --enable-xmlconf \ +%endif + --with-initddir=%{_initrddir} \ + --with-systemddir=%{_unitdir} \ + --with-upstartdir=%{_sysconfdir}/init + make %{_smp_mflags} %install make install DESTDIR=%{buildroot} + +%if %{with dbus} +mkdir -p -m 0700 %{buildroot}/%{_sysconfdir}/dbus-1/system.d +install -m 644 %{_builddir}/%{name}-%{version}/conf/corosync-signals.conf %{buildroot}/%{_sysconfdir}/dbus-1/system.d/corosync-signals.conf +%endif # removed to discourage use of init.d/corosync (openais should be # used instead) #%if 0%{?suse_version} #ln -sf ../../etc/init.d/corosync %{buildroot}%{_sbindir}/rccorosync #%endif -rm -f %{buildroot}%{_initrddir}/corosync -rm -f %{buildroot}%{_initrddir}/corosync-notifyd -rm -f %{buildroot}/usr/sbin/corosync-notifyd -rm -f %{buildroot}/usr/share/man/man8/corosync-notifyd.8 +#rm -f %{buildroot}%{_initrddir}/corosync +#rm -f %{buildroot}%{_initrddir}/corosync-notifyd +#rm -f %{buildroot}/usr/sbin/corosync-notifyd +#rm -f %{buildroot}/usr/share/man/man8/corosync-notifyd.8 ## tree fixup # drop static libs rm -f %{buildroot}%{_libdir}/*.a +rm -f %{buildroot}%{_libdir}/*.la # drop docs and html docs for now rm -rf %{buildroot}%{_docdir}/* -# the docdir is /usr/share/doc/ in the configuration rm -rf %{buildroot}%{_datadir}/doc/* +# /etc/sysconfig/corosync-notifyd +#mkdir -p %{buildroot}%{_sysconfdir}/sysconfig +#install -m 644 tools/corosync-notifyd.sysconfig.example \ +# %{buildroot}%{_sysconfdir}/sysconfig/corosync-notifyd +#%{__install} -d -m 0755 %{buildroot}/usr/lib/tmpfiles.d/ +#%{__install} -m 0644 %{buildroot}/usr/lib/tmpfiles.d/corosync-notifyd +mkdir -p %{buildroot}/usr/lib/tmpfiles.d/ +install -m 0644 tools/corosync-notifyd.sysconfig.example %{buildroot}/usr/lib/tmpfiles.d/corosync-notifyd + %clean rm -rf %{buildroot} @@ -115,78 +178,139 @@ This package contains the Corosync Cluster Engine Executive, several default APIs and libraries, default configuration files, and an init script. +%pre +%if %{with_systemd} && 0%{?systemd_post:1} +%service_add_pre corosync.service corosync-notifyd.service +%endif +%post +%if %{with_systemd} && 0%{?systemd_post:1} +%service_add_post corosync.service corosync-notifyd.service +%else +if [ $1 -eq 1 ]; then + /sbin/chkconfig --add corosync || : +fi +%endif + +%preun +%if %{with_systemd} && 0%{?systemd_preun:1} +#%systemd_preun corosync.service corosync-notifyd.service +%service_del_preun corosync.service corosync-notifyd.service +%else +if [ $1 -eq 0 ]; then + /sbin/service corosync stop &>/dev/null || : + /sbin/chkconfig --del corosync || : +fi +%endif + +%postun +%if %{with_systemd} && 0%{?systemd_postun:1} +#%systemd_postun corosync.service corosync-notifyd.service +%service_del_postun corosync.service corosync-notifyd.service +%endif %files %defattr(-,root,root,-) %doc LICENSE SECURITY -%{_bindir}/corosync-blackbox %{_sbindir}/corosync %{_sbindir}/corosync-keygen -%{_sbindir}/corosync-objctl +%{_sbindir}/corosync-cmapctl %{_sbindir}/corosync-cfgtool -%{_sbindir}/corosync-fplay -%{_sbindir}/corosync-pload %{_sbindir}/corosync-cpgtool %{_sbindir}/corosync-quorumtool +%{_sbindir}/corosync-notifyd +%{_bindir}/corosync-blackbox +%if %{with xmlconf} +%{_bindir}/corosync-xmlproc +%config(noreplace) %{_sysconfdir}/corosync/corosync.xml.example +%dir %{_datadir}/corosync +%{_datadir}/corosync/xml2conf.xsl +%{_mandir}/man8/corosync-xmlproc.8* +%{_mandir}/man5/corosync.xml.5* +%endif %dir %{_sysconfdir}/corosync -%dir %{_sysconfdir}/corosync/service.d %dir %{_sysconfdir}/corosync/uidgid.d %config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example %config(noreplace) %{_sysconfdir}/corosync/corosync.conf.example.udpu -%dir %{_libexecdir}/lcrso -%{_libexecdir}/lcrso/coroparse.lcrso -%{_libexecdir}/lcrso/objdb.lcrso -%{_libexecdir}/lcrso/service_cfg.lcrso -%{_libexecdir}/lcrso/service_cpg.lcrso -%{_libexecdir}/lcrso/service_evs.lcrso -%{_libexecdir}/lcrso/service_confdb.lcrso -%{_libexecdir}/lcrso/service_pload.lcrso -%{_libexecdir}/lcrso/quorum_votequorum.lcrso -%{_libexecdir}/lcrso/quorum_testquorum.lcrso -%{_libexecdir}/lcrso/vsf_quorum.lcrso -%{_libexecdir}/lcrso/vsf_ykd.lcrso +#%config(noreplace) %{_sysconfdir}/sysconfig/corosync-notifyd +%config(noreplace) /usr/lib/tmpfiles.d/corosync-notifyd +%if %{with dbus} +%{_sysconfdir}/dbus-1/system.d/corosync-signals.conf +%endif +%if %{with snmp} +%{_datadir}/snmp/mibs/COROSYNC-MIB.txt +%endif +%if %{with_systemd} +%{_unitdir}/corosync.service +%{_unitdir}/corosync-notifyd.service +%dir %{_datadir}/corosync +%{_datadir}/corosync/corosync +%{_datadir}/corosync/corosync-notifyd +%else +%{_initrddir}/corosync +%{_initrddir}/corosync-notifyd +%endif +%if %{with upstart} +%{_sysconfdir}/init/corosync.conf +%{_sysconfdir}/init/corosync-notifyd.conf +%endif %dir %{_localstatedir}/lib/corosync %dir %{_localstatedir}/log/cluster -%{_mandir}/man8/confdb_keys.8* -%{_mandir}/man8/corosync_overview.8* -%{_mandir}/man8/corosync.8* -%{_mandir}/man8/corosync-blackbox.8* -%{_mandir}/man8/corosync-objctl.8* -%{_mandir}/man8/corosync-keygen.8* -%{_mandir}/man8/corosync-cfgtool.8* -%{_mandir}/man8/corosync-cpgtool.8* -%{_mandir}/man8/corosync-fplay.8* -%{_mandir}/man8/corosync-pload.8* -%{_mandir}/man8/corosync-quorumtool.8* -%{_mandir}/man5/corosync.conf.5* +%{_mandir}/man8/*.8* +%{_mandir}/man5/*.5* +%{_mandir}/man3/*.3* +# optional testagent rpm +# +%if %{with_testagents} + +%package -n corosync-testagents +Summary: The Corosync Cluster Engine Test Agents +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} + +%description -n corosync-testagents +This package contains corosync test agents. + +%files -n corosync-testagents +%defattr(755,root,root,-) +%dir %{_datadir}/corosync/tests +%dir %{_datadir}/augeas +%dir %{_datadir}/augeas/lenses +%dir %{_datadir}/augeas/lenses/tests +%{_datadir}/corosync/tests/mem_leak_test.sh +%{_datadir}/corosync/tests/net_breaker.sh +%{_datadir}/corosync/tests/cmap-dispatch-deadlock.sh +%{_datadir}/corosync/tests/shm_leak_audit.sh +%{_datadir}/augeas/lenses/corosync.aug +%{_datadir}/augeas/lenses/tests/test_corosync.aug +%{_bindir}/cpg_test_agent +%{_bindir}/sam_test_agent +%{_bindir}/votequorum_test_agent + +%endif + +# library +# %package -n libcorosync4 Summary: The Corosync Cluster Engine Libraries Group: Productivity/Clustering/HA -Conflicts: corosync < 0.92-7 -Requires: %{name} = %{version}-%{release} +#Requires: %{name} = %{version}-%{release} %description -n libcorosync4 This package contains corosync libraries. - - %files -n libcorosync4 %defattr(-,root,root,-) %doc LICENSE %{_libdir}/libcfg.so.* %{_libdir}/libcpg.so.* -%{_libdir}/libconfdb.so.* -%{_libdir}/libevs.so.* +%{_libdir}/libcmap.so.* %{_libdir}/libtotem_pg.so.* -%{_libdir}/liblogsys.so.* -%{_libdir}/libcoroipcc.so.* -%{_libdir}/libcoroipcs.so.* %{_libdir}/libquorum.so.* %{_libdir}/libvotequorum.so.* -%{_libdir}/libpload.so.* %{_libdir}/libsam.so.* +%{_libdir}/libcorosync_common.so.* %post -n libcorosync4 -p /sbin/ldconfig @@ -196,74 +320,42 @@ This package contains corosync libraries. Summary: The Corosync Cluster Engine Development Kit Group: Productivity/Clustering/HA Requires: libcorosync4 = %{version}-%{release} +Requires: libqb-devel Requires: pkgconfig +Provides: corosync-devel = %{version} +Obsoletes: corosync-devel < 0.92-7 %description -n libcorosync-devel This package contains include files and man pages used to develop using The Corosync Cluster Engine APIs. - - %files -n libcorosync-devel %defattr(-,root,root,-) -%doc LICENSE README.devmap +%doc LICENSE %dir %{_includedir}/corosync/ -%{_includedir}/corosync/cs_config.h %{_includedir}/corosync/corodefs.h -%{_includedir}/corosync/coroipc_types.h -%{_includedir}/corosync/coroipcs.h -%{_includedir}/corosync/coroipcc.h %{_includedir}/corosync/cfg.h -%{_includedir}/corosync/confdb.h +%{_includedir}/corosync/cmap.h %{_includedir}/corosync/corotypes.h %{_includedir}/corosync/cpg.h -%{_includedir}/corosync/evs.h %{_includedir}/corosync/hdb.h -%{_includedir}/corosync/list.h -%{_includedir}/corosync/mar_gen.h %{_includedir}/corosync/sam.h -%{_includedir}/corosync/swab.h %{_includedir}/corosync/quorum.h %{_includedir}/corosync/votequorum.h %dir %{_includedir}/corosync/totem/ -%{_includedir}/corosync/totem/coropoll.h %{_includedir}/corosync/totem/totem.h %{_includedir}/corosync/totem/totemip.h %{_includedir}/corosync/totem/totempg.h -%dir %{_includedir}/corosync/lcr/ -%{_includedir}/corosync/lcr/lcr_ckpt.h -%{_includedir}/corosync/lcr/lcr_comp.h -%{_includedir}/corosync/lcr/lcr_ifact.h -%dir %{_includedir}/corosync/engine -%{_includedir}/corosync/engine/config.h -%{_includedir}/corosync/engine/coroapi.h -%{_includedir}/corosync/engine/logsys.h -%{_includedir}/corosync/engine/objdb.h -%{_includedir}/corosync/engine/quorum.h %{_libdir}/libcfg.so %{_libdir}/libcpg.so -%{_libdir}/libconfdb.so -%{_libdir}/libevs.so +%{_libdir}/libcmap.so %{_libdir}/libtotem_pg.so -%{_libdir}/liblogsys.so -%{_libdir}/libcoroipcc.so -%{_libdir}/libcoroipcs.so %{_libdir}/libquorum.so %{_libdir}/libvotequorum.so -%{_libdir}/libpload.so %{_libdir}/libsam.so +%{_libdir}/libcorosync_common.so %{_libdir}/pkgconfig/*.pc -%{_mandir}/man3/cpg_*3* -%{_mandir}/man3/evs_*3* -%{_mandir}/man3/confdb_*3* -%{_mandir}/man3/votequorum_*3* -%{_mandir}/man3/sam_*3* -%{_mandir}/man8/cpg_overview.8* -%{_mandir}/man8/evs_overview.8* -%{_mandir}/man8/confdb_overview.8* -%{_mandir}/man8/logsys_overview.8* -%{_mandir}/man8/votequorum_overview.8* -%{_mandir}/man8/coroipc_overview.8* -%{_mandir}/man8/sam_overview.8* +%post -n libcorosync-devel -p /sbin/ldconfig +%postun -n libcorosync-devel -p /sbin/ldconfig %changelog diff --git a/corosync_reduce_RR_priority.patch b/corosync_reduce_RR_priority.patch deleted file mode 100644 index 3acabeb..0000000 --- a/corosync_reduce_RR_priority.patch +++ /dev/null @@ -1,14 +0,0 @@ -Index: corosync-1.4.4/exec/main.c -=================================================================== ---- corosync-1.4.4.orig/exec/main.c -+++ corosync-1.4.4/exec/main.c -@@ -1268,7 +1268,8 @@ static void corosync_setscheduler (void) - #if defined(HAVE_PTHREAD_SETSCHEDPARAM) && defined(HAVE_SCHED_GET_PRIORITY_MAX) && defined(HAVE_SCHED_SETSCHEDULER) - int res; - -- sched_priority = sched_get_priority_max (SCHED_RR); -+ /*use the minimal priority same as pacemaker */ -+ sched_priority = sched_get_priority_min (SCHED_RR); - if (sched_priority != -1) { - global_sched_param.sched_priority = sched_priority; - res = sched_setscheduler (0, SCHED_RR, &global_sched_param); diff --git a/fix-nodeid-conflicting.patch b/fix-nodeid-conflicting.patch deleted file mode 100644 index ccc2747..0000000 --- a/fix-nodeid-conflicting.patch +++ /dev/null @@ -1,71 +0,0 @@ -Index: corosync-1.4.5/conf/corosync.conf.example -=================================================================== ---- corosync-1.4.5.orig/conf/corosync.conf.example -+++ corosync-1.4.5/conf/corosync.conf.example -@@ -41,7 +41,10 @@ totem { - max_messages: 20 - - # Limit generated nodeids to 31-bits (positive signed integers) -- clear_node_high_bit: yes -+ # you would set it to 'yes', the new option 'new' means wiping -+ # off the highest bit in network order to avoid possible nodeid -+ # conflicting. -+ clear_node_high_bit: new - - # secauth: Enable mutual node authentication. If you choose to - # enable this ("on"), then do remember to create a shared -Index: corosync-1.4.5/exec/totemconfig.c -=================================================================== ---- corosync-1.4.5.orig/exec/totemconfig.c -+++ corosync-1.4.5/exec/totemconfig.c -@@ -338,6 +338,9 @@ printf ("couldn't find totem handle\n"); - if (strcmp (str, "yes") == 0) { - totem_config->clear_node_high_bit = 1; - } -+ if (strcmp (str, "new") == 0) { -+ totem_config->clear_node_high_bit = 2; -+ } - } - - objdb_get_int (objdb,object_totem_handle, "threads", &totem_config->threads); -Index: corosync-1.4.5/exec/totemip.c -=================================================================== ---- corosync-1.4.5.orig/exec/totemip.c -+++ corosync-1.4.5/exec/totemip.c -@@ -626,10 +626,20 @@ int totemip_iface_check(struct totem_ip_ - */ - if (ipaddr.family == AF_INET && ipaddr.nodeid == 0) { - unsigned int nodeid = 0; -+ unsigned int new_nodeid = 0; - memcpy (&nodeid, ipaddr.addr, sizeof (int)); -- if (mask_high_bit) { -+#if __BYTE_ORDER == __LITTLE_ENDIAN -+ new_nodeid = swab32 (nodeid); -+#else -+ new_nodeid = nodeid; -+#endif -+ if (mask_high_bit == 1) { - nodeid &= 0x7FFFFFFF; - } -+ if (mask_high_bit == 2) { -+ new_nodeid &= 0x7FFFFFFF; -+ nodeid = new_nodeid; -+ } - ipaddr.nodeid = nodeid; - } - totemip_copy (boundto, &ipaddr); -Index: corosync-1.4.5/man/corosync.conf.5 -=================================================================== ---- corosync-1.4.5.orig/man/corosync.conf.5 -+++ corosync-1.4.5/man/corosync.conf.5 -@@ -175,7 +175,9 @@ This configuration option is optional an - specified. Some openais clients require a signed 32 bit nodeid that is greater - than zero however by default openais uses all 32 bits of the IPv4 address space - when generating a nodeid. Set this option to yes to force the high bit to be --zero and therefor ensure the nodeid is a positive signed 32 bit integer. -+zero and therefor ensure the nodeid is a positive signed 32 bit integer. Set -+this option to new to force the high bit in network order to be zero which -+intends to avoid possible nodeid conflicting. - - WARNING: The clusters behavior is undefined if this option is enabled on only - a subset of the cluster (for example during a rolling upgrade).