diff --git a/corosync-1.4.3.tar.gz b/corosync-1.4.3.tar.gz deleted file mode 100644 index 0402742..0000000 --- a/corosync-1.4.3.tar.gz +++ /dev/null @@ -1,3 +0,0 @@ -version https://git-lfs.github.com/spec/v1 -oid sha256:c88fbfc14cd0ff8fba24833fa43b54cf8380fbd8106b9d7e70458e72d36ad169 -size 729503 diff --git a/corosync-1.4.5.tar.gz b/corosync-1.4.5.tar.gz new file mode 100644 index 0000000..613fa41 --- /dev/null +++ b/corosync-1.4.5.tar.gz @@ -0,0 +1,3 @@ +version https://git-lfs.github.com/spec/v1 +oid sha256:c9dbe9f84b397108c9a63bc4ee48c61631cbfec7b28930c6edff720429ac364a +size 803598 diff --git a/corosync.changes b/corosync.changes index 74ad032..f3d756d 100644 --- a/corosync.changes +++ b/corosync.changes @@ -1,3 +1,39 @@ +------------------------------------------------------------------- +Fri May 10 13:18:25 UTC 2013 - tserong@suse.com + +- Update to corosync 1.4.5 stable release (bnc#799031) +- coroipc: Handle pfd.revents as bit-field +- Check socket_recv error code in ipc_dispatch_get +- On places with POLLERR check also POLLNVAL +- coroipc: Don't spin when waiting on semaphore +- log: Handle race in printf_to_logs and format_set +- objdb: Don't read uninitialized memory in inc/dec +- Add waiting_trans_ack also to fragmentation layer +- Handle segfault in backlog_get +- Fix problem with sync operations under very rare circumstances +- manpages: Add confdb_key_get man page +- manpages: Add links for referenced confdb calls +- manpages: Fix typo in evs* manpages +- If failed_to_recv is set, consensus can be empty +- Ignore sync barrier msgs if sync doesn't started +- Make service_build contain correct number of msgs +- Handle sync and service unload correctly +- Don't call sync_* funcs for unloaded services +- Return back "Totem is unable to form..." message +- Move "Totem is unable to form..." message to main +- Use unix socket for local multicast loop +- cpg: Enhance downlist selection algorithm +- cpg: Process join list after downlists +- cpg: Never choose downlist with localnode +- Fix cpg_membership_get() +- Don't access invalid mem in totemconfig +- Move some totem and cpg messages to trace level +- flatiron: Free outq items list on conn exit +- Fix nodeid conflicting issue (bnc#806634) + + Added fix-nodeid-conflicting.patch +- change the default priority to RR(1) same as pacemaker(bnc#804707) + + Added corosync_reduce_RR_priority.patch + ------------------------------------------------------------------- Thu Mar 21 11:59:58 UTC 2013 - mmeister@suse.com diff --git a/corosync.spec b/corosync.spec index 6e2a021..39bc128 100644 --- a/corosync.spec +++ b/corosync.spec @@ -29,7 +29,7 @@ Name: corosync Summary: The Corosync Cluster Engine and Application Programming Interfaces License: BSD-3-Clause Group: Productivity/Clustering/HA -Version: 1.4.3 +Version: 1.4.5 Release: 0 Url: http://www.corosync.org Source0: http://build.clusterlabs.org/%{name}/releases/%{name}-%{version}.tar.gz @@ -38,6 +38,8 @@ 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 BuildRoot: %{_tmppath}/%{name}-%{version}-build # Runtime bits Requires: libcorosync4 = %{version}-%{release} @@ -65,6 +67,8 @@ BuildRequires: pkg-config %patch2 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 %build %if 0%{?buildtrunk} == 1 @@ -144,6 +148,7 @@ script. %{_libexecdir}/lcrso/vsf_ykd.lcrso %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* diff --git a/corosync_reduce_RR_priority.patch b/corosync_reduce_RR_priority.patch new file mode 100644 index 0000000..3acabeb --- /dev/null +++ b/corosync_reduce_RR_priority.patch @@ -0,0 +1,14 @@ +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 new file mode 100644 index 0000000..ccc2747 --- /dev/null +++ b/fix-nodeid-conflicting.patch @@ -0,0 +1,71 @@ +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).