summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.tarball-version1
-rw-r--r--.version1
-rw-r--r--AUTHORS24
-rw-r--r--ChangeLog26448
-rw-r--r--Doxyfile.in1644
-rw-r--r--INSTALL167
-rw-r--r--LICENSE59
-rw-r--r--Makefile.am199
-rw-r--r--Makefile.in1435
-rw-r--r--README.recovery116
-rw-r--r--aclocal.m41244
-rwxr-xr-xautogen.sh5
-rwxr-xr-xbuild-aux/git-version-gen265
-rwxr-xr-xbuild-aux/gitlog-to-changelog191
-rw-r--r--build-aux/release.mk75
-rw-r--r--common_lib/Makefile.am38
-rw-r--r--common_lib/Makefile.in711
-rw-r--r--common_lib/error_conversion.c234
-rw-r--r--conf/COROSYNC-MIB.txt239
-rw-r--r--conf/Makefile.am67
-rw-r--r--conf/Makefile.in874
-rw-r--r--conf/corosync-signals.conf26
-rw-r--r--conf/corosync.conf.example71
-rw-r--r--conf/lenses/corosync.aug184
-rw-r--r--conf/lenses/tests/test_corosync.aug167
-rw-r--r--conf/logrotate/Makefile.am52
-rw-r--r--conf/logrotate/Makefile.in572
-rw-r--r--conf/logrotate/corosync-copytruncate.in9
-rw-r--r--conf/logrotate/corosync-reopen.in12
-rw-r--r--conf/xml2conf.xsl94
-rwxr-xr-xconfig.guess1558
-rwxr-xr-xconfig.sub1788
-rwxr-xr-xconfigure19584
-rw-r--r--configure.ac791
-rw-r--r--corosync.spec.in305
-rwxr-xr-xdepcomp791
-rw-r--r--exec/Makefile.am70
-rw-r--r--exec/Makefile.in1209
-rw-r--r--exec/apidef.c149
-rw-r--r--exec/apidef.h42
-rw-r--r--exec/cfg.c1470
-rw-r--r--exec/cmap.c1155
-rw-r--r--exec/coroparse.c1695
-rw-r--r--exec/cpg.c2344
-rw-r--r--exec/cs_queue.h292
-rw-r--r--exec/fsm.h131
-rw-r--r--exec/icmap.c1330
-rw-r--r--exec/ipc_glue.c829
-rw-r--r--exec/ipcs_stats.h61
-rw-r--r--exec/logconfig.c753
-rw-r--r--exec/logconfig.h62
-rw-r--r--exec/logsys.c933
-rw-r--r--exec/main.c1666
-rw-r--r--exec/main.h129
-rw-r--r--exec/mon.c511
-rw-r--r--exec/pload.c357
-rw-r--r--exec/quorum.c110
-rw-r--r--exec/quorum.h65
-rw-r--r--exec/schedwrk.c157
-rw-r--r--exec/schedwrk.h53
-rw-r--r--exec/service.c468
-rw-r--r--exec/service.h91
-rw-r--r--exec/stats.c784
-rw-r--r--exec/stats.h73
-rw-r--r--exec/sync.c549
-rw-r--r--exec/sync.h73
-rw-r--r--exec/timer.c96
-rw-r--r--exec/timer.h65
-rw-r--r--exec/totemconfig.c2438
-rw-r--r--exec/totemconfig.h93
-rw-r--r--exec/totemip.c624
-rw-r--r--exec/totemknet.c2222
-rw-r--r--exec/totemknet.h157
-rw-r--r--exec/totemnet.c628
-rw-r--r--exec/totemnet.h166
-rw-r--r--exec/totempg.c1620
-rw-r--r--exec/totemsrp.c5235
-rw-r--r--exec/totemsrp.h168
-rw-r--r--exec/totemudp.c1549
-rw-r--r--exec/totemudp.h144
-rw-r--r--exec/totemudpu.c1452
-rw-r--r--exec/totemudpu.h144
-rw-r--r--exec/util.c343
-rw-r--r--exec/util.h98
-rw-r--r--exec/votequorum.c3082
-rw-r--r--exec/votequorum.h44
-rw-r--r--exec/vsf.h58
-rw-r--r--exec/vsf_quorum.c801
-rw-r--r--exec/vsf_ykd.c537
-rw-r--r--exec/vsf_ykd.h44
-rw-r--r--exec/wd.c767
-rw-r--r--include/Makefile.am47
-rw-r--r--include/Makefile.in637
-rw-r--r--include/corosync/cfg.h315
-rw-r--r--include/corosync/cmap.h378
-rw-r--r--include/corosync/config.h.in542
-rw-r--r--include/corosync/coroapi.h526
-rw-r--r--include/corosync/corodefs.h62
-rw-r--r--include/corosync/corotypes.h189
-rw-r--r--include/corosync/cpg.h439
-rw-r--r--include/corosync/hdb.h250
-rw-r--r--include/corosync/icmap.h565
-rw-r--r--include/corosync/ipc_cfg.h307
-rw-r--r--include/corosync/ipc_cmap.h263
-rw-r--r--include/corosync/ipc_cpg.h502
-rw-r--r--include/corosync/ipc_quorum.h142
-rw-r--r--include/corosync/ipc_votequorum.h265
-rw-r--r--include/corosync/logsys.h341
-rw-r--r--include/corosync/mar_gen.h307
-rw-r--r--include/corosync/quorum.h211
-rw-r--r--include/corosync/sam.h250
-rw-r--r--include/corosync/sq.h404
-rw-r--r--include/corosync/swab.h77
-rw-r--r--include/corosync/totem/totem.h292
-rw-r--r--include/corosync/totem/totemip.h131
-rw-r--r--include/corosync/totem/totempg.h210
-rw-r--r--include/corosync/totem/totemstats.h120
-rw-r--r--include/corosync/votequorum.h317
-rw-r--r--init/Makefile.am65
-rw-r--r--init/Makefile.in626
-rwxr-xr-xinit/corosync-notifyd.in150
-rw-r--r--init/corosync-notifyd.service.in14
-rwxr-xr-xinit/corosync.in230
-rw-r--r--init/corosync.service.in34
-rw-r--r--init/corosync.sysconfig.example10
-rwxr-xr-xinstall-sh527
-rw-r--r--lib/Makefile.am66
-rw-r--r--lib/Makefile.in777
-rw-r--r--lib/cfg.c835
-rw-r--r--lib/cmap.c1119
-rw-r--r--lib/cpg.c1426
-rw-r--r--lib/libcfg.versions18
-rw-r--r--lib/libcfg.verso1
-rw-r--r--lib/libcmap.versions6
-rw-r--r--lib/libcmap.verso1
-rw-r--r--lib/libcpg.versions17
-rw-r--r--lib/libcpg.verso1
-rw-r--r--lib/libquorum.versions11
-rw-r--r--lib/libquorum.verso1
-rw-r--r--lib/libsam.versions12
-rw-r--r--lib/libsam.verso1
-rw-r--r--lib/libvotequorum.versions17
-rw-r--r--lib/libvotequorum.verso1
-rw-r--r--lib/quorum.c588
-rw-r--r--lib/sam.c1489
-rw-r--r--lib/util.h54
-rw-r--r--lib/votequorum.c811
-rw-r--r--ltmain.sh9655
-rw-r--r--m4/libtool.m47986
-rw-r--r--m4/ltoptions.m4384
-rw-r--r--m4/ltsugar.m4123
-rw-r--r--m4/ltversion.m423
-rw-r--r--m4/lt~obsolete.m498
-rw-r--r--man/Makefile.am189
-rw-r--r--man/Makefile.in854
-rw-r--r--man/cmap_context_get.3.in58
-rw-r--r--man/cmap_context_set.3.in60
-rw-r--r--man/cmap_dec.3.in92
-rw-r--r--man/cmap_delete.3.in70
-rw-r--r--man/cmap_dispatch.3.in91
-rw-r--r--man/cmap_fd_get.3.in67
-rw-r--r--man/cmap_finalize.3.in61
-rw-r--r--man/cmap_get.3.in153
-rw-r--r--man/cmap_inc.3.in92
-rw-r--r--man/cmap_initialize.3.in64
-rw-r--r--man/cmap_initialize_map.3.in73
-rw-r--r--man/cmap_iter_finalize.3.in72
-rw-r--r--man/cmap_iter_init.3.in80
-rw-r--r--man/cmap_iter_next.3.in82
-rw-r--r--man/cmap_keys.7426
-rw-r--r--man/cmap_overview.378
-rw-r--r--man/cmap_set.3.in127
-rw-r--r--man/cmap_track_add.3.in170
-rw-r--r--man/cmap_track_delete.3.in70
-rw-r--r--man/corosync-blackbox.869
-rw-r--r--man/corosync-cfgtool.8139
-rw-r--r--man/corosync-cmapctl.899
-rw-r--r--man/corosync-cpgtool.885
-rw-r--r--man/corosync-keygen.8118
-rw-r--r--man/corosync-notifyd.8148
-rw-r--r--man/corosync-quorumtool.8112
-rw-r--r--man/corosync-vqsim.894
-rw-r--r--man/corosync-xmlproc.857
-rw-r--r--man/corosync.870
-rw-r--r--man/corosync.conf.51032
-rw-r--r--man/corosync.xml.572
-rw-r--r--man/corosync_overview.7178
-rw-r--r--man/cpg_context_get.3.in68
-rw-r--r--man/cpg_context_set.3.in69
-rw-r--r--man/cpg_dispatch.3.in111
-rw-r--r--man/cpg_fd_get.3.in75
-rw-r--r--man/cpg_finalize.3.in71
-rw-r--r--man/cpg_initialize.3.in177
-rw-r--r--man/cpg_iteration_finalize.3.in67
-rw-r--r--man/cpg_iteration_initialize.3.in96
-rw-r--r--man/cpg_iteration_next.3.in85
-rw-r--r--man/cpg_join.3.in112
-rw-r--r--man/cpg_leave.3.in77
-rw-r--r--man/cpg_local_get.3.in72
-rw-r--r--man/cpg_mcast_joined.3.in142
-rw-r--r--man/cpg_membership_get.3.in81
-rw-r--r--man/cpg_model_initialize.3.in233
-rw-r--r--man/cpg_overview.382
-rw-r--r--man/cpg_zcb_alloc.3.in85
-rw-r--r--man/cpg_zcb_free.3.in77
-rw-r--r--man/cpg_zcb_mcast_joined.3.in127
-rw-r--r--man/index.html400
-rw-r--r--man/ipc_common.sh.errors25
-rw-r--r--man/quorum_context_get.3.in62
-rw-r--r--man/quorum_context_set.3.in64
-rw-r--r--man/quorum_dispatch.3.in98
-rw-r--r--man/quorum_fd_get.3.in69
-rw-r--r--man/quorum_finalize.3.in66
-rw-r--r--man/quorum_getquorate.3.in62
-rw-r--r--man/quorum_initialize.3.in114
-rw-r--r--man/quorum_model_initialize.3.in165
-rw-r--r--man/quorum_overview.367
-rw-r--r--man/quorum_trackstart.3.in78
-rw-r--r--man/quorum_trackstop.3.in62
-rw-r--r--man/sam_data_getsize.3.in68
-rw-r--r--man/sam_data_restore.3.in77
-rw-r--r--man/sam_data_store.3.in83
-rw-r--r--man/sam_finalize.3.in63
-rw-r--r--man/sam_hc_callback_register.3.in89
-rw-r--r--man/sam_hc_send.3.in68
-rw-r--r--man/sam_initialize.3.in126
-rw-r--r--man/sam_mark_failed.3.in73
-rw-r--r--man/sam_overview.3181
-rw-r--r--man/sam_register.3.in88
-rw-r--r--man/sam_start.3.in83
-rw-r--r--man/sam_stop.3.in67
-rw-r--r--man/sam_warn_signal_set.3.in63
-rw-r--r--man/votequorum.5410
-rw-r--r--man/votequorum_context_get.3.in64
-rw-r--r--man/votequorum_context_set.3.in66
-rw-r--r--man/votequorum_dispatch.3.in99
-rw-r--r--man/votequorum_fd_get.3.in70
-rw-r--r--man/votequorum_finalize.3.in67
-rw-r--r--man/votequorum_getinfo.3.in111
-rw-r--r--man/votequorum_initialize.3.in139
-rw-r--r--man/votequorum_overview.384
-rw-r--r--man/votequorum_qdevice_master_wins.3.in77
-rw-r--r--man/votequorum_qdevice_poll.3.in83
-rw-r--r--man/votequorum_qdevice_register.3.in83
-rw-r--r--man/votequorum_qdevice_unregister.3.in68
-rw-r--r--man/votequorum_qdevice_update.3.in69
-rw-r--r--man/votequorum_setexpected.3.in66
-rw-r--r--man/votequorum_setvotes.3.in63
-rw-r--r--man/votequorum_trackstart.3.in83
-rw-r--r--man/votequorum_trackstop.3.in63
-rwxr-xr-xmissing215
-rw-r--r--pkgconfig/Makefile.am69
-rw-r--r--pkgconfig/Makefile.in587
-rw-r--r--pkgconfig/corosync.pc.in11
-rw-r--r--pkgconfig/libtemplate.pc.in11
-rwxr-xr-xtest-driver127
-rw-r--r--test/Makefile.am79
-rw-r--r--test/Makefile.in855
-rw-r--r--test/cpgbench.c197
-rw-r--r--test/cpgbenchzc.c193
-rw-r--r--test/cpgbound.c130
-rw-r--r--test/cpghum.c848
-rw-r--r--test/cpgverify.c183
-rw-r--r--test/ploadstart.sh60
-rw-r--r--test/stress_cpgcontext.c134
-rw-r--r--test/stress_cpgfdget.c117
-rw-r--r--test/stress_cpgzc.c141
-rw-r--r--test/testcfg.c159
-rw-r--r--test/testcpg.c438
-rw-r--r--test/testcpg2.c92
-rw-r--r--test/testcpgzc.c248
-rw-r--r--test/testquorum.c64
-rw-r--r--test/testquorummodel.c102
-rw-r--r--test/testsam.c1476
-rw-r--r--test/testvotequorum1.c200
-rw-r--r--test/testvotequorum2.c236
-rw-r--r--test/testzcgc.c175
-rw-r--r--tools/Makefile.am89
-rw-r--r--tools/Makefile.in880
-rw-r--r--tools/corosync-blackbox.sh34
-rw-r--r--tools/corosync-cfgtool.c614
-rw-r--r--tools/corosync-cmapctl.c996
-rw-r--r--tools/corosync-cpgtool.c276
-rw-r--r--tools/corosync-keygen.c191
-rw-r--r--tools/corosync-notifyd.c1420
-rw-r--r--tools/corosync-notifyd.sysconfig.example10
-rw-r--r--tools/corosync-quorumtool.c1023
-rw-r--r--tools/corosync-xmlproc.sh57
-rw-r--r--tools/util.c35
-rw-r--r--tools/util.h15
-rw-r--r--vqsim/Makefile.am57
-rw-r--r--vqsim/Makefile.in778
-rw-r--r--vqsim/parser.c418
-rw-r--r--vqsim/vq_object.c121
-rw-r--r--vqsim/vqmain.c848
-rw-r--r--vqsim/vqsim.h82
-rw-r--r--vqsim/vqsim_vq_engine.c479
297 files changed, 162498 insertions, 0 deletions
diff --git a/.tarball-version b/.tarball-version
new file mode 100644
index 0000000..3ad0595
--- /dev/null
+++ b/.tarball-version
@@ -0,0 +1 @@
+3.1.5
diff --git a/.version b/.version
new file mode 100644
index 0000000..3ad0595
--- /dev/null
+++ b/.version
@@ -0,0 +1 @@
+3.1.5
diff --git a/AUTHORS b/AUTHORS
new file mode 100644
index 0000000..7ce2b46
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,24 @@
+Last Updated Dec 2009
+
+Main Developers
+---------------
+Steven Dake Maintainer, totem implementation, cfg,
+ logsys, service engine architecture, ipc system
+ poll, timers, objdb, hdb, sync, coroapi
+Christine Caulfield cpg, cfg, quorum, confdb, totem ipv6 support, totem NSS
+ support
+Fabien Thomas OS portability, BSD port
+Hans Feldt logging inspiration
+Angus Salkeld objdb, static code analysis cleanup, statistics
+Lon Hohberger logsys
+Fabio Di Nitto automake, pkgconfig, logsys, config, distro release
+Jim Meyering automake, sanitizing APIs, warnings removal
+Andrew Beekhof automake, integration with Pacemaker
+Dave Teigland cpg specification, integration with cluster3
+Jan Friesse cpg, sam
+Jérôme Flesch BSD portability
+
+Significant credit belongs in our large vibrant community members, who are
+unfortunately too numerous to list. Your tireless effort in testing, deploying,
+and providing bug reports of our community driven software model shows that
+open source can make a difference and produces better software.
diff --git a/ChangeLog b/ChangeLog
new file mode 100644
index 0000000..824141d
--- /dev/null
+++ b/ChangeLog
@@ -0,0 +1,26448 @@
+2021-08-04 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: Knet nodeid must be < 65536
+ Knet limits maximum node id to 16-bit type. This was not ensured in
+ corosync and it was possible to set nodeid to value >= 65536 and
+ (surprisingly) most of the things were working quite well because of
+ overflow. corosync-cmapctl -m stats contained knet nodeid in
+ stats.knet. subtree, so for nodeid 65536 result was:
+
+ Can't get value of stats.knet.node0.link0.connected. Error
+ CS_ERR_NOT_EXIST
+
+ Commit implements checking of nodeid and limits it to KNET_MAX_HOST
+ value when knet is used.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Ensure all knet hosts has a nodeid
+ Nodeid is required for knet for every node. Right now, existence of
+ nodeid is checked only for local for local node, so broaden the test.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-08-02 Jan Friesse <jfriesse@redhat.com>
+
+ cfgtool: Use CS_PRI_NODE_ID for formatting nodeid
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfgtool: Fix brief mode display of localhost
+ Show 'n' also for first localhost link, so all localhost links
+ are marked consistently with non-brief display.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfgtool: Set nodeid indexes after sort
+ Needed for having correct index of localhost
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Put autogenerated nodeid back to cmap
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfgtool: Check existence of at least one of nodeid
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Do not process totem.nodeid
+ totem.nodeid is relict from times when nodelist was not required and
+ totemsrp was sending whole membership with ip addresses.
+
+ With Corosync 3 ip addresses are no longer sent so
+ it is not possible to find "next" node ip address where to send token
+ (because only nodeid is sent) without having information about all of
+ the nodes stored locally.
+
+ When totem.nodeid was configured it was partly used and other parts
+ (most notably totemudpu_token_target_set) were using autogenerated
+ nodeid. Together it was not possible to create even single node
+ membership.
+
+ Solution is to ignore totem.nodeid completely (and display warning when
+ it is set).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-07-29 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Fix node status display
+ Currently if there is a gap in the links (eg link0 is missing)
+ corosync-cfgtool -s will still display the links as 0,1,2,3...
+ even if they are 1,2,5,6...
+
+ Also display the KNET transport type with the link in
+ corosync-cfgtool -s & -n
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-07-23 Jan Friesse <jfriesse@redhat.com>
+
+ main: Add support for cgroup v2 and auto mode
+ Support for cgroup v2 is very similar to cgroup v1 just checking (and
+ writing) different file.
+
+ Because of all the problems described later with cgroup v2 new "auto"
+ mode (new default) is added. This mode first tries to set rr scheduling
+ and moves Corosync to root cgroup only if it fails.
+
+ Testing this feature is a bit harder than with cgroup v1 so it's
+ probably worh noting in this commit message.
+
+ 1. Copy some service file (I've used httpd service) and set
+ CPUQuota=30% in the [service] section.
+ 2. Check /sys/fs/cgroup/cgroup.subtree_control - there should be no
+ "cpu"
+ 3. Start modified service
+ 4. Check /sys/fs/cgroup/cgroup.subtree_control - there should be "cpu"
+ 5. Start corosync - It should be able to get rt priority
+
+ When move_to_root_cgroup is disabled (applies only for kernels
+ with CONFIG_RT_GROUP_SCHED enabled), behavior differs:
+ - If corosync is started before modified service, so
+ there is no "cpu" in /sys/fs/cgroup/cgroup.subtree_control
+ corosync starts without problem and gets rt priority.
+ Starting modified service later will never add "cpu" into
+ /sys/fs/cgroup/cgroup.subtree_control (because corosync is holding
+ rt priority and it is placed in the non-root cgroup by systemd).
+
+ - When corosync is started after modified service, so "cpu"
+ is in /sys/fs/cgroup/cgroup.subtree_control, corosync is not
+ able to get RT priority.
+
+ It's worth noting problems when cgroup v2 is used together with systemd
+ logging described in corosync.conf(5) man page.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-06-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ stats: fix crash when iterating over deleted keys
+ The libqb map API leaves 'ownership' of the data with the caller
+ but does its own lifetime management, so it can easily happen that
+ map_rm() is called and the data deleted by the caller.
+ But if an iterator is running over that item then the map entry
+ will not get removed (leaving dangling pointers) until later.
+
+ libqb has a hack-y callback that tells the owner when it is safe to
+ delete the allocated memory, so we hook into that. icmap is already
+ using this.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-06-02 Jan Friesse <jfriesse@redhat.com>
+
+ man: Add note about single node configuration
+ Internally knet is using just one link for localhost so for single node
+ configuration knet_link_get_link_list returns only one entry. This is
+ propagated to `corosync-cfgtool -s`.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-05-21 Jan Friesse <jfriesse@redhat.com>
+
+ Revert "main: Add support for cgroup v2"
+ This reverts commit 57e6b86b53010dd2612b0a6a4e04917673062ecf.
+
+ We are in process of finding better solution so reverting for now.
+
+ Revert "man: Add info about cgroup v2 behavior"
+ This reverts commit 9d3df5696ed6b04b379a2fe643eec1fcd5a4b10d.
+
+ We are in process of finding better solution so reverting for now.
+
+2021-05-19 Jan Friesse <jfriesse@redhat.com>
+
+ man: Add info about cgroup v2 behavior
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfg: corosync_cfg_trackstop blocks forever
+ corosync_cfg_trackstop expects reply but that was never sent. Make sure
+ to send reply so corosync_cfg_trackstop works.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-05-10 Jan Friesse <jfriesse@redhat.com>
+
+ main: Add support for cgroup v2
+ Support for cgroup v2 is very similar to cgroup v1 just checking (and
+ writing) different file.
+
+ Testing this feature is a bit harder than with cgroup v1 so it's
+ probably worh noting in this commit message.
+
+ 1. Copy some service file (I've used httpd service) and set
+ CPUQuota=30% in the [service] section.
+ 2. Check /sys/fs/cgroup/cgroup.subtree_control - there should be no
+ "cpu"
+ 3. Start modified service
+ 4. Check /sys/fs/cgroup/cgroup.subtree_control - there should be "cpu"
+ 5. Start corosync - It should be able to get rt priority
+
+ When move_to_root_cgroup is disabled, behavior differs:
+ - If corosync is started before modified service, so
+ there is no "cpu" in /sys/fs/cgroup/cgroup.subtree_control
+ corosync starts without problem and gets rt priority.
+ Starting modified service later will never add "cpu" into
+ /sys/fs/cgroup/cgroup.subtree_control (because corosync is holding
+ rt priority and it is placed in the non-root cgroup by systemd).
+
+ - When corosync is started after modified service, so "cpu"
+ is in /sys/fs/cgroup/cgroup.subtree_control, corosync is not
+ able to get RT priority.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-04-14 Jan Friesse <jfriesse@redhat.com>
+
+ main: Mark crypto_model key read only
+ ... to be in align with crypto_cypher and crypto_hash.
+
+ Reload (corosync-cfgtool -R) works without any problem and changing of
+ key is not supported anyway,
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Ensure strncpy is always terminated
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Properly check crypto and compress models
+ Use knet_get_crypto_list to find knet supported crypto models and use
+ them instead of hardcoded list.
+
+ Also fix compression handling. Previously knet_compression_model
+ value was not checked at all and was directly passed to knet.
+
+ Use knet_get_compress_list to find knet supported compress models and
+ use them to check validity of config file and for more informative
+ error message.
+
+ Lastly enhance corosync version display with information
+ about available crypto/compression models.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-04-07 Ferenc Wágner <wferi@debian.org>
+
+ man: corosync-cfgtool.8: use proper single quotes
+ Apostrophe as the first character of the input line indicates a
+ request, so groff complained: macro 'onwire'' not defined.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-04-06 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ knet: pass correct handle to knet_handle_compress
+ totemknet_configure_compression was using knet_context
+ just to gather the knet handle / instance.
+
+ On first time config knet_contex is not initialized till
+ much later in the code, passing some random garbage pointers
+ to knet_handle_compress, that would crash later trying
+ to acquire a mutex lock.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-03-29 Johannes Krupp <johannes.krupp@cispa.saarland>
+
+ totemconfig: fix integer underflow and logic bug
+ Fix integer underflow when computing `namelen` in `nodelist_byname`,
+ always use computed `namelen`.
+ Fixes #626.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-03-25 liangxin1300 <XLiang@suse.com>
+
+ totemconfig: change udp netmtu value as a constant
+ Insted of using "magic number" use UDP_NETMTU constant.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-03-18 Dan Streetman <ddstreet@canonical.com>
+
+ totemknet: retry knet_handle_new if it fails
+ Retry knet_handle_new without privileged operations if it fails
+
+ knet_handle_new can fail with ENAMETOOLONG if its privileged operations
+ fail, which can happen if we're running as a user process or in an
+ unprivileged container.
+
+ This adds a cmap key 'allow_knet_handle_fallback' that defaults to no,
+ which is the current behavior of exiting with error if the knet_handle
+ can't be created with privileged operations. If the new cmap key is set
+ to 'yes' and the knet_handle creation fails, fallback to creating the
+ handle using unprivileged operations is tried.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-03-11 Dan Streetman <ddstreet@canonical.com>
+
+ main: Check memlock rlimit
+ Don't lock all current and future memory if can't
+ increase memlock rlimit.
+
+ If we fail to increase our RLIMIT_MEMLOCK, then locking all our current
+ and future memory is extremely dangerous; once our memory use reaches
+ our RLIMIT_MEMLOCK, memory allocations will start failing, very likely
+ leading to our entire process crashing.
+
+ This can happen if we aren't a privileged process, for example if
+ running as non-root user, or inside an unprivileged container.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-03-09 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ configure: drop unnecessary check and define
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure: move exec_prefix sanitize
+ Move exec_prefix sanitize closer to prefix. This is not
+ functional change, just group functional tests together.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure: drop dead code
+ prefix is sanitized already at the top of configure.ac to /usr,
+ hence the second instance can never hit.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure: detect and init pkg-config with macro
+ this also allows to use PKG_CONFIG_* macros immediately
+ in conditional calls
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-03-04 Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Close race condition when moving to statedir
+ Found by covscan which also didn't like us 'leaking' the
+ fd to the lockfile. So close that too.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2021-01-14 Jan Friesse <jfriesse@redhat.com>
+
+ init: Use corosync-cfgtool for shutdown
+ ... to trigger cfg shutdown callbacks.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2021-01-14 Christine Caulfield <ccaulfie@redhat.com>
+
+ test: Add testcfg to exercise some cfg functions
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cfg: Reinstate cfg tracking
+ CFG tracking was removed in 815375411e80131f31b172d7c43625769ee8b53d,
+ probably as a mistake, as part of the tidy up of cfg and the removal of
+ dynamic loading. This means that shutdown tracking (using
+ cfg_try_shutdown()) stopped working.
+
+ This patch restores the trackstart & trackstop API calls (renamed to be
+ more consistent with the exiting libraries) so that shutdown tracking
+ can be used again.
+
+ Change cfg.shutdown_timeout to be in milliseconds rather than seconds
+ nd use libqb macros for conversion.
+
+ Add --force option to corosync-cfgtool -H
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-11-26 Jan Friesse <jfriesse@redhat.com>
+
+ cfg: Improve nodestatusget versioning
+ Patch tries to make nodestatusget really extendable. Following changes
+ are implemented:
+ - corosync_cfg_node_status_version_t is added with (for now) single
+ value CFG_NODE_STATUS_V1
+ - corosync_knet_node_status renamed to corosync_cfg_node_status_v1 (it
+ isn't really knet because it works as well for udp(u()
+ - struct res_lib_cfg_nodestatusget_version is added which holds only ipc
+ result header and version on same position as for
+ corosync_cfg_node_status_v1
+ - corosync_cfg_node_status_get requires version and pointer to one of
+ corosync_cfg_node_status_v structures
+ - request is handled in case switches to make adding new version easier
+
+ Also fix following bugs:
+ - totempg_nodestatus_get error was retyped to cs_error_t without any
+ meaning.
+ - header.error was not checked at all in the library
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-11-26 Christine Caulfield <ccaulfie@redhat.com>
+
+ cfg: New API to get extended node/link infomation
+ Current we horribly over-use totempg_ifaces_get() to
+ retrieve information about knet interfaces. This is an attempt to
+ improve on that.
+
+ All transports are supported (so not only Knet but also UDP(U)).
+
+ This patch builds best against the "onwire-upgrade" branch of knet
+ as that's what sparked my interest in getting more information out.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-11-12 Jan Friesse <jfriesse@redhat.com>
+
+ totemknet: Check both cipher and hash for crypto
+ Previously only crypto cipher was used as a way to find out if crypto is
+ enabled or disabled.
+
+ This usually works ok until cipher is set to none and hash to some other
+ value (like sha1). Such config is perfectly valid and it was not
+ supported correctly.
+
+ As a solution, check both cipher and hash.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-11-10 Ferenc Wágner <wferi@debian.org>
+
+ The ring id file needn't be executable
+ At the same time simplify the overwrite logic and stop clearing the
+ umask (which is unexpected and quite pointless here, as applications
+ can't really protect the users from their own pathological settings).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-11-06 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ pkgconfig: export LOGDIR in corosync.pc
+ logdir is configurable at build time and can change
+ from distro to distro. Export the path for pcs to use.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-11-02 Jan Friesse <jfriesse@redhat.com>
+
+ spec: Add isa version of corosync-devel provides
+ Also add release to version to match autogenerated corosynclib-devel
+ provides.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-10-19 liangxin1300 <XLiang@suse.com>
+
+ totemconfig: remove redundant nodeid error log
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-10-15 Aleksei Burlakov <aburlakov@suse.com>
+
+ totemsrp: More informative messages
+ ... when token and consensus timeouts pop.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-10-15 Jan Friesse <jfriesse@redhat.com>
+
+ config: Increase default token timeout to 3000 ms
+ Default token timeout of 1000 ms was often changed by users because of
+ other workloads on machine which may make corosync responding a bit
+ later than needed and resulting in token loss.
+
+ 3000 ms was chosen as a compromise between token timeout increase
+ and allow live cluster upgrade (other nodes should receive token
+ by node with new default on time).
+
+ It doesn't affect token token_coefficient so final token timeout still
+ depends on number of configured nodes (just base is higher).
+
+ This change slows down failover a bit so for clusters where failover
+ times are important, please change the token timeout in configuration
+ file corosync.conf as a:
+
+ totem {
+ version: 2
+ token: 1000
+ ...
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-10-12 Ferenc Wágner <wferi@debian.org>
+
+ man: votequorum.5: use proper single quotes
+ Backtick and apostrophe are formatted as directional quotes by plain
+ groff, but they behave literally in the body of a man page.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: fix typo: avaialable
+ By slightly rewording the documentation of knet_compression_model.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-10-12 Jan Friesse <jfriesse@redhat.com>
+
+ tests: Use CS_DISPATCH_BLOCKING instead of cycle
+ Some tests were using dispatch function in CS_DISPATCH_ALL mode
+ without poll/select on fd. This leads to busywait cycle, because
+ CS_DISPATCH_ALL masks CS_ERR_TRY_AGAIN error.
+
+ Simpliest solution is to use CS_DISPATCH_BLOCKING instead and remove
+ while cycle, because CS_DISPATCH_BLOCKING handles CS_ERR_TRY_AGAIN
+ correctly.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorum: Add support for nodelist callback
+ Current quorum callback contains only actual view list and there is no
+ way how to find out joined/left nodes. This cannot be emulated by user
+ app, because when corosync restarts before other nodes notices then view
+ list is unchanged (ring id is changed tho).
+
+ Solution is to implement similar callback as for cpg which contains ring
+ id, member list, joined list and left list.
+
+ To implement such callback and keep backwards compatibility,
+ quorum_model_initialize is introduced. Its behavior is similar to
+ cpg_model_initialize. This allows passing model v1, which contains
+ enhanced quorum (full ring id is passed instead of just seq number)
+ and nodelist callbacks.
+
+ To find out which events should be sent by corosync daemon, new message
+ MESSAGE_REQ_QUORUM_MODEL_GETTYPE is used. Quorum library on init was
+ sending MESSAGE_REQ_QUORUM_GETTYPE. Whem model v1 is requested the
+ MESSAGE_REQ_QUORUM_MODEL_GETTYPE is used, which contains model number
+ so corosync knows that client is using model v1 and can send enhanced
+ quorum and nodelist events.
+
+ Nodelist event is (for now) send both in case of change of membership
+ and also when requested, also when CS_TRACK_CURRENT is requested, but
+ then left_list and joined_list is left empty, because they don't make
+ too much sense there.
+
+ New test application testquorummodel is added as an example of new API
+ usage.
+
+ Also during patch developement, I found few bugs here and there, which
+ are also fixed:
+ - quorum_initialize was never returning error code returned by
+ MESSAGE_REQ_QUORUM_GETTYPE call (always returned CS_OK)
+ - Allocated memory in send_library_notification was based
+ on sizeof(unsigned int) instead of mar_uint32_t. That's not wrong,
+ but it make more sense to use sizeof(mar_uint32_t) instead
+
+ (big thanks to Chrissie for englishify the man pages)
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-09-30 Christine Caulfield <ccaulfie@redhat.com>
+
+ man: reload during rolling upgrade
+ Make it clear that reloads during a rolling upgrade are not
+ supported.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-09-29 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Move token received callback
+ Trigger token received callback only for valid token.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-09-24 Jan Friesse <jfriesse@redhat.com>
+
+ common_lib: Remove trailing spaces in cs_strerror
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-09-18 liangxin1300 <XLiang@suse.com>
+
+ totemconfig: improve linknumber checking
+ Check whether linknumber larger than INTERFACE_MAX and display error if
+ so.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-09-17 liangxin1300 <XLiang@suse.com>
+
+ totemconfig: add interface number to the error str
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cfg: enhance message_handler_req_lib_cfg_killnode
+ While execute corosync-cfgtool -k <nodeid> to kill node:
+ * Check whether nodeid exists
+ * Check whether the node was joined
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-09-03 liangxin1300 <XLiang@suse.com>
+
+ totemconfig: validate totem.transport value
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-21 liangxin1300 <XLiang@suse.com>
+
+ cmapctl: return error on no result of print prefix
+ return EXIT_FAILURE if no result print for ACTION_PRINT_PREFIX.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cmapctl: check NULL for key type and value for -p
+ To avoid segmentation fault.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-20 liangxin1300 <XLiang@suse.com>
+
+ quorumtool: strict check for -o option
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-19 liangxin1300 <XLiang@suse.com>
+
+ quorumtool: Help shouldn't require running service
+ Do not require corosync running when usage is requested.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-18 liangxin1300 <XLiang@suse.com>
+
+ cfgtool: Return error when -i doesn't match
+ Give error message and EXIT_FAILURE return code when -i
+ option doesn't match.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-17 liangxin1300 <XLiang@suse.com>
+
+ man: update output of -s and -b for cfgtool
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cmapctl: return EXIT_FAILURE on failure
+ For -g and -d option return EXIT_FAILURE when error occurs (most often
+ because key does not exist).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-12 liangxin1300 <XLiang@suse.com>
+
+ tools: use util_strtonum for options checking
+ Function atoi is not safe since miss validation;
+ Function strtol is better but need to consider empty string and overflows
+ Function util_strtonum is a safer wrapper of strtoll
+
+ Use util_strtonum to check nodeid option and strict checking condition.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-11 liangxin1300 <XLiang@suse.com>
+
+ cfgtool: enhancement -a option
+ * Add return code
+ * Give error message when nodeid not exist
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-08-07 liangxin1300 <XLiang@suse.com>
+
+ cfgtool: output error messages to stderr
+ ... and standardize the return code
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-07-16 Jan Friesse <jfriesse@redhat.com>
+
+ configure: Use default systemd path with prefix
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: Use git-version-gen during specfile build
+ Instead of copying parts of git-version-gen for spec target use
+ git-version-gen directly and parse final version into components
+ (rpmver, alphatag, numcomm) and use them.
+
+ Main reason is to simplify code a bit (sed scripts are a bit repetitive
+ tho), reuse the code and also allow building of RPM from dist tarball
+ generated from non-tagged commit or dirty git (not very useful).
+
+ The code relies on fact, that hyphen is never used in tagged release
+ name.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: Update git-version-gen
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ spec: Require at least knet 1.18 for crypto reload
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2020-07-09 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Allow reconfiguration of crypto options
+ Needs new knet crypto API.
+
+ If it's not available, then fall back to the old
+ API and forbid changing crypto while running.
+
+ To avoid us being dependant on the leader node, each
+ node sends its own crypto_reconfig_phase messages so
+ we can guarantee that the reconfiguration always completes
+ on each node.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-05-18 Christine Caulfield <ccaulfie@redhat.com>
+
+ test: Fix cpgtest
+ ... to cope with the max number of group members.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-04-24 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Fix crash when a reload fails twice
+ Have string values stored in char arrays in totem_config
+ so we don't get into a mess with the pointers.
+
+ Also remove vsftype (which hasn't been used since corosync 1)
+
+ Use strncpy even though we know the string is fine. Keep covscan happy
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: Don't free pointers used by transports
+ reload failed for UDP[U] because they had saved pointers
+ to the interfaces[] array. so memcpy into that rather then
+ re-allocate it.
+
+ Also, move the check for different IP address families so
+ it also gets run at reload time.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: don't reload vquorum if reload fails
+ Fix an 'error: success' stype message by propogating error_string
+ back down the stack.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cfg: Improve error return to cfgtool -R
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: Reorganise the config system
+ To be more reliable & maintainable
+
+ The basic plan here is to fix reloads to be more stable
+ using read/parse/verify/build/commit stages, so that any errors
+ will not leave corosync in an unstable state. This should
+ also make the code more maintainable as currently the verify/commit
+ stages are horribly intertwined.
+
+ Also:
+ - Fix local_node_pos not being updated in the new map during validation
+ (broke adding and removing new nodes in the middle of the list).
+ - Fix reconfiguration so that nodes are indexed by nodeid and not their
+ position in the list. This is an old bug that's just been carried
+ over
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-04-22 Jan Friesse <jfriesse@redhat.com>
+
+ Revert "totemip: compare sin6_scope_id and interface_num"
+ This reverts commit efd34df531d1b23d6458dca863a7517b7ac0099d to make
+ master compile after revert of 934c47ed4384daf2819c26306bebba3225807499.
+
+ Revert "totemip: Add support for sin6_scope_id"
+ This reverts commit 934c47ed4384daf2819c26306bebba3225807499 which is
+ causing protocol incompatibility in needle. Master seems to be not
+ affected, but it needs more checking.
+
+2020-03-30 Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+
+ cfgtool: Fix error code as described in MP
+ If all links are connected 0 is returned to the shell, otherwise it's
+ error code 1.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-03-26 Christine Caulfield <ccaulfie@redhat.com>
+
+ icmap: icmap_init_r() leaks if trie_create() fails
+ Thanks to Coverity for finding this
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-03-24 Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: set wfa status only on startup
+ Previously reload of configuration with enabled wait_for_all result in
+ set of wait_for_all_status which set cluster_is_quorate to 0 but didn't
+ inform the quorum service so votequorum and quorum information may get
+ out of sync.
+
+ Example is 1 node cluster, which is extended to 3 nodes. Quorum service
+ reports cluster as a quorate (incorrect) and votequorum as not-quorate
+ (correct). Similar behavior happens when extending cluster in general,
+ but some configurations are less incorrect (3->4).
+
+ Discussed solution was to inform quorum service but that would mean
+ every reload would cause loss of quorum until all nodes would be seen
+ again.
+
+ Such behaviour is consistent but seems to be a bit too strict.
+
+ Proposed solution sets wait_for_all_status only on startup and
+ doesn't touch it during reload.
+
+ This solution fulfills requirement of "cluster will be quorate for
+ the first time only after all nodes have been visible at least
+ once at the same time." because node clears wait_for_all_status only
+ after it sees all other nodes or joins cluster which is quorate. It also
+ solves problem with extending cluster, because when cluster becomes
+ unquorate (1->3) wait_for_all_status is set.
+
+ Added assert is only for ensure that I haven't missed any case when
+ quorate cluster may become unquorate.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-03-13 Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: exit on invalid expected votes
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Change check of expected_votes
+ Previously value of new expected_votes was checked so newly computed
+ quorum value was in the interval <total_votes / 2, total_votes>. The
+ upper range prevented the cluster to become unquorate, but bottom check
+ was almost useless because it allowed to change expected_votes so it is
+ smaller than total_votes.
+
+ Solution is to check if expected_votes is bigger or equal to total_votes
+ and for quorate cluster only check if cluster doesn't become unquorate
+ (for unquorate cluster one can set upper range freely - as it is
+ perfectly possible when using config file)
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-03-04 Jan Friesse <jfriesse@redhat.com>
+
+ cfgtool: Simplify output a bit for link status
+ Display words connected/disconnected instead of 1/0 and show enabled
+ status only when link is not enabled (shouldn't happen).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-02-27 Jan Friesse <jfriesse@redhat.com>
+
+ man: Enhance link_mode priority description
+ Some users found description of priority for passive link_mode
+ confusing (probably because "priority" word is too
+ overloaded) so add some redundancy to make description
+ unambiguous.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Add schedmiss timestamp into message
+ This is useful for matching schedmiss event in stats map with logged
+ event.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-02-21 liangxin1300 <XLiang@suse.com>
+
+ totemip: compare sin6_scope_id and interface_num
+ When user configure a specific interface like vlan
+ with the same IPv6 link-local address, Corosync should
+ compare sin6_scope_id with interface_num, to make sure got
+ the right interface to bind
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-02-17 Jan Friesse <jfriesse@redhat.com>
+
+ totemip: Really remove totemip_copy_endian_convert
+
+ totemip: Remove unused totemip_copy_endian_convert
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemip: Add support for sin6_scope_id
+ sin6_scope_id was not present in totemip structure making impossible to
+ use link-local ipv6 address.
+
+ Patch adds sin6_scope_id and changes convert/copy functions to use it
+ (formally also comparator functions should be changed, but it seems to
+ cause more harm and it is not really needed).
+
+ This makes corosync work with link-local addresses fine for both UDPU
+ and Knet transport as long as interface specification is used (so
+ fe80::xxxx:xxxx:xxxx:xxxx%eth0).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-02-12 Jan Friesse <jfriesse@redhat.com>
+
+ cfgtool: Improve link status display
+ Totemknet is enhanced to use 'n' character for localhost and not adding
+ status, because it is safe to expect that localhost link is always
+ connectd. corosync-cfgtool is enhanced to properly decode 'n', '?' and
+ 'd' characters and display its meaning for extended status. Special
+ characters are also documented in man page.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-02-10 Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+
+ totemknet: Change the initial value of the status
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-01-23 Jan Friesse <jfriesse@redhat.com>
+
+ stats: Use nanoseconds from epoch for schedmiss
+ Using monotonic time is not working because it doesn't have to match
+ time from epoch.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-01-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ stats: Add stats for scheduler misses
+ This patch add a stats.schedmiss.* set of entries that
+ are a record of the last 10 times corosync was not scheduled
+ in time.
+
+ These entries are keypt in reverse order (so stats.schedmiss.0.* is
+ always the latest one kept) and the values, including the timestamp,
+ are in milliseconds.
+
+ It's also possible to use a cmap tracker to follow these events, which
+ might be useful.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-01-21 Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: Reflect runtime change of 2Node to WFA
+ When 2Node mode is set, WFA is also set unless WFA is configured
+ explicitly. This behavior was not reflected on runtime change, so
+ restarted corosync behavior was different (WFA not set). Also when
+ cluster is reduced from 3 nodes to 2 nodes during runtime, WFA was not
+ set, what may result in two quorate partitions.
+
+ Solution is to set WFA depending on 2Node when WFA
+ is not explicitly configured.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2020-01-09 Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+
+ cpg: Change downlist log level
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2020-01-07 Ferenc Wágner <wferi@debian.org>
+
+ man: move cmap_keys man page from section 8 to 7
+ Section 8 is for "System administration commands", 7 is "Miscellaneous".
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-11-28 Jan Friesse <jfriesse@redhat.com>
+
+ stats: Check return code of stats_map_get
+
+ quorumtool: Assert copied string length
+
+ notifyd: Check cmap_track_add result
+ And assert length of key_name to strcpy.
+
+ cmapctl: Free bin_value on error
+
+ cfgtool: Remove unused callbacks
+
+ cpghum: Remove unused time variables and functions
+
+ votequorum: Assert copied strings length
+
+ totemknet: Assert strcpy length
+
+ totemknet: Check result of fcntl O_NONBLOCK call
+
+ totemconfig: Initialize warnings variable
+
+ sync: Assert sync_callbacks.name length
+
+ totemknet: Don't mix corosync and knet error codes
+ And use correct return code in stats.c.
+
+ stats: Assert value_len when value is needed
+
+ cmap: Assert copied string length
+
+ totemconfig: Reuse already fetched pointer
+ Make code a bit readable and easier to process for coverity.
+
+ logconfig: Remove double free of value
+
+ votequorum: Ignore the icmap_get_* return value
+ Express intention to ignore icmap_get_* return
+ value and rely on default behavior of not changing the output
+ parameter on error.
+
+ totemconfig: Free leaks found by coverity
+
+2019-11-18 Christine Caulfield <ccaulfie@redhat.com>
+
+ icmap: fix the icmap_get_*_r functions
+ Make the icmap*_r functions read from the specified map rather
+ than the global map.
+
+ Also include icmap_get_string_r() which seems to have been missed out.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-11-18 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ pkgconfig: Add libqb dependency
+ To make sure libqb dependency is visible across all libraries.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-11-08 Jan Friesse <jfriesse@redhat.com>
+
+ Initialize stack allocated memory
+ Some functions allocated memory on stack without clearing memory and
+ then send them on wire. This is not an issue, but valgrind reports this
+ as a problem so it is easy to miss real problem then.
+
+ Solution is to clear stack memory.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-10-17 Thomas Lamprecht <t.lamprecht@proxmox.com>
+
+ man: Fix corosync.conf knet pong count default
+ commit 029b8ebad60314d3daa285eb945c55355fade389 changed the default
+ of the KNET_PONG_COUNT from the kronosnet default of 5 to 2, as
+ corosync bring up was deemed to slow.
+
+ The documentation, and the comment stating that the totem config
+ default values match the knet ones were not updated, and thus now out
+ of date.
+
+ Fixhis by noting the correct default of 2 for KNET_PONG_COUNT and
+ note that all but that one are in sync with the korosync defaults in
+ the comment.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-10-09 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Reduce MTU to left room second mcast
+ Messages sent during recovery phase are encapsulated so such message has
+ extra size of mcast structure. This is not so big problem for UDPU,
+ because most of the switches are able to fragment and defragment packet
+ but it is problem for knet, because totempg is using maximum packet size
+ (65536 bytes) and when another header is added during retransmition,
+ then packet is too large.
+
+ Solution is to reduce mtu by 2 * sizeof (struct mcast).
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totempg: Check sanity (length) of received message
+ Reviewed-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2019-10-09 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: add option for enabling sanitizer builds
+ --with-sanitizers= option is stricly meant for runtime debugging
+ purposes. Do NOT use in production.
+
+ Please check gcc/clang man pages on how to use ASAN/UBSAN/TSAN.
+
+ Also allow users to specificy SANITIZERS_CFLAGS and SANITIZERS_LDFLAGS
+ for advanced use.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-09-10 Jan Friesse <jfriesse@redhat.com>
+
+ totemknet: Add locking for log call
+ Knet callbacks may be called from different thread than main thread. If
+ this happens, log messages may be lost. Most prominent example is when
+ link goes up (logged by main thread) and host_change_callback_fn is
+ called.
+
+ Implemented solution is adding mutex for every log call in totemknet.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2019-08-27 Jan Friesse <jfriesse@redhat.com>
+
+ man: Fix link_mode priority description
+ ... to match knet source code.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2019-07-30 Jan Friesse <jfriesse@redhat.com>
+
+ notifyd: Don't dereference NULL key_name
+ This problem shouldn't really happen, but better safe than sorry.
+
+2019-07-15 Jan Friesse <jfriesse@redhat.com>
+
+ totem: Increase ring_id seq after load
+ This patch handles the situation where the leader
+ node (the node with lowest node_id) crashes and is started again
+ before token timeout of the rest of the cluster.
+ The newly restarted node restores the ringid of the old ring from
+ stable storage, so it has the same ringid as rest of the nodes,
+ but ARU is zero. If the node is able to create a singleton membership
+ before receiving the joinlist from rest of the cluster,
+ everything works as expected, because the ring id gets increased
+ correctly.
+
+ But if the node receives a joinlist from another cluster node before
+ its own joinlist, then it continues as it would had it never left
+ the cluster. This is not correct, because the new node should always
+ create a singleton configuration first.
+
+ During the recovery phase, ARUs are compared and because they differ
+ (the ARU of the old leader node is 0), the other nodes
+ try to sent all of their previous messages. This is impossible
+ (even if it was correct), because other nodes have already freed most
+ of those messages. The implementation uses an assert to limit maximum
+ number of messages sent during recovery (we could fix this,
+ but it's not really the point).
+
+ The solution here is to increase the ring_id sequence number by 1 after
+ loading it from storage. During creation of the commit token it is
+ always increased by 4, so it will not collide with an existing
+ sequence.
+
+ Thanks Christine Caulfield <ccaulfie@redhat.com> for clarify commit
+ message.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-07-08 Jan Friesse <jfriesse@redhat.com>
+
+ init: Use cpgtool instead of cfgtool
+ Init script used to use corosync-cfgtool -s to wait till
+ corosync accepts ipc connection. Problem with this approach
+ is that error code is returned not only if ipc cannot be initialized,
+ but also when one of the ring is marked as failed, making corosync
+ service not to start. Corosync with one failed ring can work just
+ fine and there is no need to fail startup.
+
+ Patch is changing call of corosync-cfgtool to corosync-cpgtool. Also to
+ make spotting of broken ring easier, corosync-cfgtool -s is called after
+ successful return of the cpgtool, and warning is issued if cfgtool
+ fails.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ notifyd: Fix warning produced by 32-bit compiler
+ time_t is platform dependent real type which is usually long int on
+ 64-bit platform, but only int on 32-bit platform and printing it with
+ %ld generated warning.
+
+ Solution seems to be ether retype time_t to long int or use functions
+ which works with time_t. Later option is used in this patch, which uses
+ localtime and strftime to print time_t value.
+
+ Also code is refactored to remove duplicate calls and add _cs_snmp
+ prefix to prevent snmp_ prefix collision.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfgtool: Remove unused code
+ corosync_cfg_ring_status_get returns string status, which is always OK
+ for UDP(U) and detailed status for Knet transport. Previously also
+ FAULTY status was returned for UDP(U) and cfgtool used to return error
+ code back to shell when one of the interfaces was faulty.
+
+ Because FAULTY is now not returned, it's not needed to have code for
+ handling it.
+
+ Also man page was misleading, so it is fixed too.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-07-03 Jan Friesse <jfriesse@redhat.com>
+
+ logging: Add CS_PRI_NODE_ID and CS_PRI_RING_ID
+ Previously node id was logged ether as a %d (most often), %u, %x or
+ PRI.32 and ring id ether as %lld, %llx with various separators (., :, /)
+ between rep nodeid and seq. This seems to cause confusion.
+
+ This patch adds macros CS_PRI_NODE_ID, CS_PRI_RING_ID and
+ CS_PRI_RING_ID_SEQ (CS prefix = corosync, PRI modeled in spirit of
+ inttypes.h PRIx32) and makes code use them.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-07-02 Jan Friesse <jfriesse@redhat.com>
+
+ vqsim: Fix gitignore
+
+2019-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ totemknet: Disable forwarding on shutdown
+ Disabling forwarding will make knet flush the messages (especially
+ LEAVE one).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-06-17 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: Fix compiler warning
+ Compiler is unable to understand relation between members and
+ num_configured and warns about uninitialized members. Instead of
+ initializing members to 0 and (potentially after some code
+ refactor) let code fall to display error message, more explicit method
+ of assert is used.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-06-17 Thomas Lamprecht <t.lamprecht@proxmox.com>
+
+ totem: fix check if all nodes have same number of links
+ configured links may not come in order in the interfaces array, which
+ holds an entry for _all_ possible links, not just configured ones.
+
+ So iterate through all interfaces, but skip those which are not
+ configured. This allows to start corosync with a configuration where
+ link 0 is currently not mentioned, as else it was checked but had
+ member_count = 0 from it's default initialization, which then made
+ this code report a false positive for the "Not all nodes have the
+ same number of links" check even on a correct config.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totem: fix check if all nodes have name attrs in multi-link setups
+ As totem_config->interfaces entries are _all_ possible links and not
+ only the configured ones we cannot trust that interface[0] is
+ configured at the time of checking, and thus has a valid
+ member_count. So set the members variable to the member_count entry
+ from an actually configured interface and loop over that one.
+
+ This fixes a case where the check for the name property on all nodes
+ for multi links was skipped if link 0 was not configured, as then its
+ member_count was 0.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-06-14 dkutergin <dmytro.kutergin@harmonicinc.com>
+
+ corosync-notifyd: Add option to disable DNS lookup
+ New configuration option -n is added.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-06-14 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Fix warnings produced by gcc 9.1
+ New gcc warn about passing posibly unaligned pointer from packed
+ structure. This shouldn't be problem for x86.
+
+ Implemented solution is to let compiler do its job (compiler knows if
+ pointer is aligned so accessing structure field is safe) and
+ use it together with support for asigning and returning of structure
+ (not a pointer to the structure).
+
+ - srp_addr_copy is removed and replaced by simple assignment
+ - srp_addr_copy_endian_convert is removed and replaced by
+ srp_addr_endian_convert function which takes srp_addr structure and
+ returns endian converted srp_addr structure
+ - functions which accepts srp_addr array are not changed because
+ (luckily) non-aligned pointer is always just one item array and
+ such item is always used as a source pointer so it's possible to use
+ temporary variable
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-06-13 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Move filling of member_list to subfunction
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+
+ cpg: Add more comments to notify_lib_joinlist
+ And make handling of left_list more generic. Also free skiplist
+ allocated by joinlist_inform_clients function. Last (but not least)
+ remove czechlish founded (should have been pp of "find").
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
+
+2019-06-13 Fabian Grünbichler <f.gruenbichler@proxmox.com>
+
+ cpg: send single confchg event per group on joinlist
+ using a similar approach to
+
+ 43bead364514e8ae2ba00bcf07c460e31d0b1765
+ "Send one confchg event per CPG group to CPG client"
+
+ which did the same for leave events on a network partition.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cpg: notify_lib_joinlist: drop conn parameter
+ since it is always set to NULL.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-06-12 Jan Friesse <jfriesse@redhat.com>
+
+ vqsim: Check length of copied optarg
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Check result of icmap_set_uint32
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Remove unused total_nodes
+ ... and remove unused nodes_in_partition function.
+
+ Also replace TAILQ_FOREACH with goto to while cycle.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Free allocated newvq on error
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Check length of received message
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Check write result
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Do not access unitialized argv[0]
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Initialize return value in setup_nozzle
+ Also add comment why return value is currently not used.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: macaddr_str is always set
+ Check for NULL was invalid, because macaddr_str is ether defined in cmap
+ or set to "54:54:01:00:00:00".
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Ignore icmap_get_string result
+ ... and add comment why it is not a bug.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: create_nozzle_device simplify check
+ ipaddr existence is checked for being not NULL by caller setup_nozzle.
+ Also ipaddr was passed to reparse_nozzle_ip_address function unchecked
+ so code would crash before reaching the actual check.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemip: Use res in totemip_sa_equal
+ Setting res to -1 was not entirely following semantics of "equal"
+ operation. Set it to 0 and return it when families differs makes
+ compiler happy.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: ipaddr_equal use switch
+ Compiler may have problem understanding relation between addr1p and
+ addrlen. Small change makes code a little more readable and compiler
+ happy.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-06-10 Jan Friesse <jfriesse@redhat.com>
+
+ configure: Fix GDB_CFLAGS typo
+ GDB_FLAGS (without C) is the correct name of variable
+ to print in the summary.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Add vqsim man page into distributed tarball
+
+2019-06-07 Jan Friesse <jfriesse@redhat.com>
+
+ spec: Add support for user-flags configure option
+ Passing -ggdb3 (or -g3) during compiler may result in corrupted
+ debuginfo files (bug in debugedit - for Fedora filed as a
+ https://bugzilla.redhat.com/show_bug.cgi?id=1708786). Until the bug is
+ fixed it's possible to ether change configure to add -ggdb2/-g2 or use
+ already existing --enable-user-flags option and rely on environment set
+ by rpmbuild.
+
+ Patch implements second option so RPM distros without broken debugedit
+ are not affected.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Enahnce block_unlisted_ips description
+ Thanks Christine Caulfield <ccaulfie@redhat.com> for
+ Englishify and refining the description.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-05-31 Jan Friesse <jfriesse@redhat.com>
+
+ man: Enhance corosync.conf mp a bit
+ Fix issues found by Ulrich Windl <Ulrich.Windl@rz.uni-regensburg.de>
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-05-30 Fabian Grünbichler <f.gruenbichler@proxmox.com>
+
+ cfgtool: Fix link status display
+ instead of the nodeid, this displayed arbitrary values (usually '1')
+ from other cmap keys under nodelist.node.XX.
+
+ sscanf returns the number of conversions even on mismatch, e.g. it also
+ returns 1 for
+
+ nodelist.node.2.quorum_votes
+ nodelist.node.2.ring0_addr
+ nodelist.node.2.name
+ ...
+
+ instead of just
+
+ nodelist.node.2.nodeid
+
+ which leads to the value of (at least) quorum_votes being stored in
+ nodeid_list in addition to the actual nodeid.
+
+ storing the returned int in a cs_error_t enum also potentially masks
+ errors, so just compare the result with the expectation directly.
+
+ Fixes: c0d14485c3ebdeb2332f7c48acd155163e5b7fc1
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-29 Jan Friesse <jfriesse@redhat.com>
+
+ knet: Use block_unlisted_ips
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ udpu: Drop packets from unlisted IPs
+ This feature allows corosync to block packets received from unknown
+ nodes (nodes with IP address which is not in the nodelist). This is
+ mainly for situations when "forgotten" node is booted and tries to join
+ cluster which already removed such node from configuration. Another use
+ case is to allow atomic reconfiguration and rejoin of two separate
+ clusters.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-05-29 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Fix initialising of knet access lists.
+ It needs to be done at both reload and initialize time.
+ Also disable access lists if the config key is removed.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-29 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ knet: allow corosync to use knet access lists
+ currently knet acl are only available on master
+ but they might be backported
+ to stable1 as they don´t break onwire protocol.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-28 yuan ren <yren@suse.com>
+
+ man: Enhance token_retransmit description
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-15 yuan ren <yren@suse.com>
+
+ totemconfig: Fix minimum limit for hold timeout
+ Make sure the retransmit timeout have the lowest limit
+ `MINIMUM_TIMEOUT`. So, the lowest limit of hold should be
+ recalculated.
+
+ Also token timeout and retransmits count should
+ keep a relational expression.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Enhance vqsim
+ 1. Enable scripting of vqsim and add man page
+
+ I've added a 'sleep' command to help with scripting as well as
+ documentation on how to do it.
+
+ 2. Make 'sync' operation much more robust and useful
+
+ Refactored a lot of code to make sure that in sync mode the
+ prompt appears at the 'right' time. What we do is wait for all
+ of the nodes in all partitions to have the same ring_id. If this
+ doesn't happen then the timeout will fire as before.
+
+ 3. Rename binary to corosync-vqsim and add a sub-package for it
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-02 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Fix a couple of errors when adding a new link
+ When adding a new link for the first time you will often see:
+ 1) knet_link_set_ping_timers for nodeid 1, link 1 failed: Invalid
+ argument (22)
+ 2) New config has different knet transport for link 1. Internal value
+ was NOT changed. To reconfigure an interface it must be deleted and
+ recreated. A working interface needs to be available to corosync at all
+ times
+
+ 1) is caused by setting the ping timers twice, once in
+ totemknet_member_add() and once in totemknet_refresh_config().
+ The first time we don't know the value
+ so it's zero and thus display an error. For this we simply check
+ for the zero and skip the knet API call. It's not ideal, but
+ totemconfig needs a lot of reconfiguring itself before we can
+ make this more sane.
+
+ 2) was caused by simply comparing an unconfigured link with
+ a configured one, so OF COURSE, they are going to be different!
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-05-02 yuan ren <yren@suse.com>
+
+ totemconfig: fix autogen mcastaddr for ipv6-4
+ When UDP is used as a transport, the error would occur
+ "Multicast address family does not match bind address family"
+ because there is no ipv6 in /etc/hosts specified but using the
+ totem.ip_version: ipv6-4. because
+ the mcastaddr generated (if not specified) only according to
+ the totem.ip_version.
+
+ Solution is to use bindnetaddr (configured or generated from
+ nodelist) addr family.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-04-25 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: Ensure nodeid is specified for IPv6
+ Thanks Yuan Ren <yren@suse.com> for finding this problem.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-04-25 Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Fix vqsim for corosync 3.0
+ A couple of small internal changes in corosync 3.0 broke vqsim.
+ 1) The way the custom config file is specified (no long an env variable)
+ 2) votequorum now needs to know ouZ_node_pos
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-04-24 Jan Friesse <jfriesse@redhat.com>
+
+ vqsim: Make vqsim compile
+ Also add vqsim binary to .gitignore.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-04-23 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: ipaddr_equal check just addr part
+ Checking whole structure is fine for IPv4, but IPv6 contains also scope
+ id, what may be problem for local address. It's possible to use a zone
+ index, but because it's not required when host name is used, it
+ shouldn't be needed when IPv6 address is used.
+
+ Example configuration snip which fails without patch:
+
+ ...
+ nodelist {
+ node {
+ nodeid: 1
+ ring0_addr: fe80::1234:5678:9abc:def1
+ }
+ }
+ ...
+
+ (example succeed when %eth0 is used).
+
+ With patch, zone index is not needed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-04-16 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Add CPG_REASON_UNDEFINED
+ Previously the reason field for the member_list items
+ in cpg_totem_confchg_fn was unset what may be little confusing.
+
+ Solution is to add a special value CPG_REASON_UNDEFINED and use it for
+ the member_list items.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-04-15 Fabian Grünbichler <f.gruenbichler@proxmox.com>
+
+ crypto: re-introduce secauth parameter
+ with the following semantics:
+ - default off
+ - implies crypto_hash SHA256 and crypto_cipher AES256
+ - crypto_* have higher precedence
+ - only applicable for knet, like crypto_*
+
+ this should make upgrading from Corosync 2.x less painful for users that
+ have an explicit secauth=on in their configuration.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-04-11 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: Remove support for 3des
+ Triple DES is considered as a "weak cipher" since 2016 so there is
+ really no need to support it in the corosync. Thanks to bug in
+ Corosync/Knet/NSS which caused 3des to not work at all,
+ no matter what library was used, we can just remove support for 3des
+ without braking the compatibility.
+
+ Also fix coroparse so:
+ - totem.crypto_type is removed (this is 1.x construct which was not used
+ even in 2.x)
+ - Add checking of totem.crypto_model.
+ - Enumarate possible values for crypto_model, crypto_cipher and
+ crypto_hash error messages
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ keygen: Reflect change in knet
+ Knet commit 1cb36f0cffd4559971826ca4774a88c5b05882fb reduced minimal
+ key length to 1024-bit. Keygen should keep compatibility with already
+ released 3.0.[0-1] so default key length should be 2048 bits. It's
+ possible to use -s argument to generate shorter key - keygen respects
+ minimum/maximum as defined by knet.
+
+ Also fix man page to reflect this change.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-04-05 Fabian Grünbichler <f.gruenbichler@proxmox.com>
+
+ set totem.keyfile and totem.key to RO
+ so that we get the nice log message when attempting to modify them at
+ runtime, just like for totem.crypto_* and co.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-04-04 Jan Friesse <jfriesse@redhat.com>
+
+ Revert "init: Enable StopWhenUnneeded"
+ This reverts commit 03d9321bc80887d4578744c26c05d61e2d9d4278.
+
+ Reverted because when corosync service is not enabled and corosync
+ is executed by "systemctl start corosync" it is then immediately
+ shutdown because of "Unit not needed anymore. Stopping.".
+
+ This is really not expected behavior.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-04-01 yuan ren <yren@suse.com>
+
+ totemsrp: Word spelling mistake
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-02-26 Jan Friesse <jfriesse@redhat.com>
+
+ coroparse: Fix compiler warning
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ configure: Do not autodetect nozzle
+ Nozzle is part of kronosnet but it is independent library. Enabling it
+ when detected without ability to turn it off is not in line with
+ other libraries.
+
+ Solution is to use same method as for other libraries - add
+ --enable-nozzle to configure script and add support for this option into
+ spec file.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-02-26 Christine Caulfield <ccaulfie@redhat.com>
+
+ nozzle: Add support for libnozzle devices
+ A nozzle device is a pseudo ethernet device that routes network
+ traffic through a channel on the corosync knet network (NOT cpg or any
+ corosync internal service) to other nodes in the cluster. It allows
+ applications to take advantage of knet features such as multipathing,
+ automatic failover, link switching etc.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-02-15 Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: Fix exit status codes
+ 1. Use EXIT_SUCCESS and EXIT_FAILURE when possible
+ 2. For -s option return EXIT_SUCCESS when no problem appeared and node
+ is quorate, EXIT_FAILURE if problem appeared and exit code 2
+ (EXIT_NOT_QUORATE) when no problem appeared but node is not quorate.
+ 3. Document exit codes in the man page
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-02-14 Jan Friesse <jfriesse@redhat.com>
+
+ corosync-cfgtool: Fix -i matching
+ Previously it was required to use link id together with IP address (ex.
+ "0 127.0.0.1") as a -i parameter.
+
+ This was reported as not very user friendly. Solution is to split
+ returned interface name and try match link id and ip address
+ separately.
+
+ Also fix typo in description of parameter -s.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-02-06 Ferenc Wágner <wferi@debian.org>
+
+ build: Use the AWK variable provided by configure
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: Use the SED variable provided by configure
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: AC_PROG_SED is already present
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ corosync.conf.5: typography fixes
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ corosync.conf.5: fix grammar
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-02-04 Christine Caulfield <ccaulfie@redhat.com>
+
+ cfgtool: Improve link status display
+ Now show the nodeids properly, rather than node indexes which were
+ annoying and unhelpful.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-01-18 Jan Friesse <jfriesse@redhat.com>
+
+ doc: Update INSTALL file
+ - Add LibQB and Knet links
+ - Remove old (pre udpu) config file example
+ - Change corosync.conf man page to contain useful information about
+ token timeout
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2019-01-11 Jan Pokorný <jpokorny@redhat.com>
+
+ init: Enable StopWhenUnneeded
+ It shall be a rule of thumb not to combine "application stack"
+ components run under particular init/supervision mechanism and
+ run by whatever other means (without transitive relationships
+ like when corosync's client runs from other pacemaker that is
+ itself started through systemd) when there's a directed graph
+ of reliance between them (sans constrained corner cases like
+ when of such components is a kernel module).
+
+ And corosync on its own is just a service provider that only
+ appears useful when utilized as a basic building block for
+ application specific distributed environments.
+
+ Therefore, we may assume whenever corosync gets started by the
+ means of systemd, it's because of a mechanized attempt to satisfy
+ declared dependency of some such corosync's client that is about
+ to be started under the service manager realms (directly or, by
+ induction, through the same triggering mechanism indirectly).
+ Hence, when there's no such client around anymore (unless
+ this dependant is being restarted at the moment, see below)
+ corosync shall rather shutdown as well.
+
+ In the past, there was an issue with systemd regarding said
+ inflicted restart of the dependant/client, but that's resolved
+ as of v236:
+ https://github.com/systemd/systemd/commit/
+ deb4e7080db9dcd2a1d51ccf7c357f88ea863e54
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-01-11 Jan Friesse <jfriesse@redhat.com>
+
+ totemip: Use AF_UNSPEC for ipv4-6 and ipv6-4
+ AF_UNSPEC returns different results than AF_INET/AF_INET6, because of
+ nsswitch.conf search is in order and it stops asking other
+ modules once current module success.
+
+ Example of difference between previous and new code when ipv6-4 is used:
+ - /etc/hosts contains test_name with an ipv4
+ - previous code called AF_INET6 where /etc/hosts failed so other methods
+ were used which may return IPv6 addr -> result was ether fail or IPv6
+ address.
+ - new code calls AF_UNSPEC returning IPv4 defined in /etc/hosts ->
+ result is IPv4 address
+
+ New code behavior should solve problems caused by nss-myhostname.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2019-01-03 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ [totemknet] update for libknet.so.2.0.0 init API
+ more changes are to be expected on this front as the API evolves in
+ knet master.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2019-01-03 Ferenc Wágner <wferi@debian.org>
+
+ Config version must be specified
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Don't declare success early
+ Here we're very far from entering the main loop, even farther from
+ sending the READY notification to systemd. This sounded awkward:
+
+ systemd[1]: Starting Corosync Cluster Engine...
+ corosync[827]: [MAIN ] Corosync Cluster Engine ('2.99.5'):
+ started and ready to provide service.
+ corosync[827]: [MAIN ] Corosync built-in features: dbus monitoring
+ watchdog augeas systemd xmlconf snmp pie relro bindnow
+ corosync[827]: [MAIN ] parse error in config: No interfaces defined
+ corosync[827]: [MAIN ] Corosync Cluster Engine exiting with status 8
+ at main.c:1378.
+ systemd[1]: corosync.service: Main process exited, code=exited,
+ status=8/n/a
+ systemd[1]: corosync.service: Failed with result 'exit-code'.
+ systemd[1]: Failed to start Corosync Cluster Engine.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ More natural error messages
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-12-14 Jan Friesse <jfriesse@redhat.com>
+
+ main: Rename run_dir to state_dir
+ system.run_dir was a little bit unfortunate and confusing name. Rename
+ to state_dir makes more evident what is content of this directory. To
+ keep setting consistent with code, get_run_dir is changed to
+ get_state_dir.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Enhance totem.ip_version
+ Originally totem.ip_version was used to force ip version used by totem.
+ With Knet this variable didn't make too much sense so it was not used.
+
+ Sadly rely only on DNS resolver order doesn't always work (RFC is quite
+ complicated, but if IPv6 is not configured then IPv4 is preferred), what
+ we tried to solve by forcing IPv6 and only if that fails, use IPv4.
+
+ Sadly this collides with nss_myhostname which is able to return every
+ local address and today system usually have at least one autogenerated
+ link-local IPv6 address so it is able to "overwrite" /etc/hosts.
+
+ Solution is to enhance totem.ip_version and use it also for Knet.
+ totem.ip_version is now just a flag for resolver and can have four
+ states: ipv4 (only IPv4 is used), ipv6 (only IPv6 is used), ipv4-6 (ask
+ IPv4 first and if it fails ask for IPv6) and ipv6-4 (ask IPv6 first and
+ if it fails ask for IPv4). Default for Knet and UDPU transports is
+ ipv6-4, for UDP it's ipv4, because autogenerated mcast addr doesn't play
+ too well with ipv6-4.
+
+ So everywhere where nss_myhostname becomes problem, it's just possible
+ to set totem.ip_version to ipv4-6.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-12-13 Jan Friesse <jfriesse@redhat.com>
+
+ totemip: Add debug information to totemip_parse
+ It's required to create TOTEM logsys subsys before totemip_parse is used
+ (so before totem_config_read). Logsys is not yet fully initialized, but
+ it's good enough.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Add IPs to family mismatch error
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-12-11 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Look up hostnames in a defined order
+ Current practice is to let getaddrinfo() decide which address we get
+ but this is not necessarily deterministic as DNS servers won't
+ always return addresses in the same order if a node has
+ several. While this doesn't deal with node names that have
+ multiple IP addresses of the same family (that's an installation issue
+ IMHO) we can, at least, force a definite order for IPv6/IPv4 name
+ resolution.
+
+ I've chosen IPv6 then IPv4 as that's what happens on my test system (
+ using /etc/hosts) and it also seems more 'future proof'.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-12-11 Ferenc Wágner <wferi@debian.org>
+
+ Fix corosync.conf.5 manpage typos
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-12-10 Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Add some information about address resolution
+ to corosync.conf(5)
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-12-10 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: Really use totemip_parse results
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-12-06 Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Add instructions for adding/removing nodes
+ This replaces the 'cmaptool' method previously documented
+ in cmap_keys.8
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: Disallow corosync-cmapctl updates of nodelist
+ It didn't work anyway (the config system requires whole links
+ to be configured at once) and caused crashes.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-12-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Report IP addr/nodename parse errors back
+ Corosync used to just ignore parse errors so that un-resolved names
+ could cause silent failures. We now always check the result from
+ totemip_parse() and at least print something in syslog.
+
+ There's also a little get-out here that allows you to correct
+ a bad node address without having to destroy and recreate the
+ whole link. I'm being nice to you.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-11-29 Jan Friesse <jfriesse@redhat.com>
+
+ coroparse: Remove unused cs_err initialization
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Check cpg_local_get return code
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ testcpg2: Check cpg_dispatch return code
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-11-16 Jan Friesse <jfriesse@redhat.com>
+
+ notifyd: Delete registered tracking keys
+ Forward port of needle 70fd66767494872b93018949d685f19482cd5bec by Hideo
+ Yamauchi <renayama19661014@ybb.ne.jp>.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ stats: Fix delete of track
+ When cmap_track_delete was called to stats map (cmap created with
+ CMAP_MAP_STATS parameter) result was always ERR_BAD_HANDLE.
+
+ It turned out that corosync part of cmap is always calling icmap
+ function to get user data (where required hdb handle is stored)
+ instead of generalized map_fns.
+
+ After fixing this issue, valgrind showed error about jump depending on
+ unitialized data in stats_map_track_delete. Solution seems to be always
+ initialize tracker->events (so not only when track_type is add or
+ delete).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-11-15 Jan Friesse <jfriesse@redhat.com>
+
+ init: Fix init script to work with containers
+ Previously init scripts were not using pid file so pidof was used. This
+ is usually not a problem, but when containers are used it may result to
+ killing improper instance when issued on host.
+
+ Solution is to always use pidfile.
+
+ Also try to use LSB complaint status codes.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Remove COROSYNC_RUN_DIR
+ Remove last used environment variable (reasons similar to removal of
+ COROSYNC_MAIN_CONFIG_FILE).
+
+ This environment variable was never documented, so document it properly.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Describe nodelist.node.name properly
+ Old description is no longer true, because with knet transport name got
+ new and very important role.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Remove COROSYNC_TOTEM_AUTHKEY_FILE
+ Remove another environment variable (reasons similar to removal of
+ COROSYNC_MAIN_CONFIG_FILE).
+
+ Also properly document both totem.keyfile and totem.key.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Replace COROSYNC_MAIN_CONFIG_FILE
+ COROSYNC_MAIN_CONFIG_FILE environment variable was quite well hidden
+ and it was never used by init script. It also makes quite hard to debug
+ possible problems.
+
+ Replace it by -c option.
+
+ Also patch makes use of configuration file path as a base for uidgid.d
+ directory, so it's no longer needed to keep uidgid.d in sysconfdir.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Move sched paramaters to config file
+ The reason for this change is, that number of corosync CLI options
+ kind of exploded and scheduler based one are really beter to be kept in
+ config file.
+
+ Nice side-effect of this move is better "integration" with systemd,
+ because currently used EnvironmentFile should be really used for
+ environment and not that much for passing extra options to CLI.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-11-07 Jan Friesse <jfriesse@redhat.com>
+
+ configure: move to AC_COMPILE_IFELSE
+ from AC_PREPROC_IFELSE which is strongly discouraged.
+
+ Our detection system was very weak and recent versions of clang did
+ show that PREPROC_IFELFE (cpp) would enable warning options that
+ the compiler does not support (clang).
+
+ Use a full compilation test to detect what works and what doesn't.
+
+ Based on knet patch 88491f27375a9e8aceb946853a1abf4d23ebb8f3.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2018-10-29 Jan Friesse <jfriesse@redhat.com>
+
+ logsys: Make hires timestamp default
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ logsys: Support hires timestamp
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Fix logging of freed string
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-10-25 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Allow generated nodeis for UDP & UDPU
+ The conversion to the new srp_addr format broke the feature where
+ UDP/UDPU nodes could get their nodeids generated from the IP address.
+
+ A big part of this was the removal of mandatory ring0_addr - it was used
+ as a placeholder when reading down the nodelist. I replaced this with
+ nodeid thinking that nodeid was now mandatory, forgetting this use case.
+ So the compare on "ring0_addr" or "nodeid" is now replaced with a more
+ robust check that we're only reading keys from the same node_pos once,
+ this was needed in votequorum.c as well as totemconfig.c
+
+ Another tidying side-effect of this patch is that the nodeid generation
+ is now all in a single routine in totemconfig.c and not shared between
+ it and totemip.c.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-10-22 Jan Friesse <jfriesse@redhat.com>
+
+ config example: Migrate to newer syntax
+ Default config is knet with nodelist so extra udpu example is no longer
+ needed.
+
+ XML variant of corosync config never got expected usage, so delete
+ example config too.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-10-16 Jan Friesse <jfriesse@redhat.com>
+
+ log: Implement support for reopening log files
+ Feature depends on existence of libqb function qb_log_file_reopen.
+
+ New function call is added into CFG service API. This function is
+ used by corosync-cfgtool which now accepts -L parameter.
+
+ Finally, logrotate "postrotate" script is calling
+ corosync-cfgtool -L to notify corosync, instead of using
+ copytruncate option.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Replace strcpy by strncpy
+ Formally not needed, because totemip_print should not return string
+ longer than INET6_ADDRSTRLEN, but static analysis tools are not capable
+ of such conclusion.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-10-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Fix crash in reload if new interfaces are added
+ This is a bug I seem to have introduced in
+ 429209f4aa3c55504a49833e0004489f241e7819 where we compare links
+ for changes. if a new node was added on an existing link then it
+ was compared against a non-existant one in the previous configuration.
+ We now only compare nodes that are in both interfaces.
+
+ As I needed min() for this function, I moved it from individual
+ .c files into util.h so we only have one copy.
+
+ And the error message was fixed.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-10-04 Jan Friesse <jfriesse@redhat.com>
+
+ man: Fix default knet_pmtud_interval to match code
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-27 Jan Friesse <jfriesse@redhat.com>
+
+ build: Remove totempg shared library leftovers
+ Because totempg is not distributed it doesn't make sense to distribute
+ totem header files. Also pkgconfig file should not be created any more.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-25 Jan Friesse <jfriesse@redhat.com>
+
+ build: Do not compile totempg as a shared library
+ Instead of compiling totempg as a shared library, compile all totem code
+ directly into corosync binary.
+
+ Main idea of having totempg which may be
+ used in other projects was nice, but never really finished (and as far
+ as I know no project were ever really using it). So at the end of the
+ day, we've end with huge amount of problems (need to pass new arguments
+ thru X layers, hard debugging, ...) without any real benefit.
+
+ For a future version, we may consider to revisit idea of split totemsrp
+ into well tested library without unrelated bits like transports/ip/...
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-24 Ferenc Wágner <wferi@debian.org>
+
+ man: Fix typo conains -> contains
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: Fix typo connnections -> connections
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-09-17 Jan Friesse <jfriesse@redhat.com>
+
+ build: Remove NSS dependencies
+ Complete removal of NSS from corosync tree. Most of the changes are
+ in build system and cpgverify had to be rewritten to use crc32 instead
+ of sha1.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cts: Remove CTS
+ There are several reasons for removal of CTS:
+ 1. It's not actively maintained
+ 2. It's quite hard to setup
+ 3. It has hard to fix bug in it's design (syslog messages are thrown by
+ rsyslog (configurable), journald (configurable) or when rsyslog is
+ used together with journald (non configurable)) so test
+ can fail just because of lost message.
+ 4. It depends on pacemaker CTS, which is changed quite often
+ 5. CTS itself is great tool for Pacemaker
+ (shutdown/startup of the node), but Corosync has a slightly
+ different needs
+ 6. Bin Liu <bliu@suse.com> made a heroic effort to port it to Python 3
+ (huge thanks), but it's still not fully complete
+
+ All and all, if somebody is interested in maintaining CTS code, please
+ create repository similar to corosync flatiron cts and let us know.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-13 Jan Friesse <jfriesse@redhat.com>
+
+ man: Fix crypto_hash and crypto_cipher defaults
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-07 Jan Friesse <jfriesse@redhat.com>
+
+ coroparse: Fix newly introduced warning
+ Small fix for a problem introduced by "coroparse: Use key_name for error
+ message" patch.
+
+2018-09-07 Chris Walker <cwalker@cray.com>
+
+ Add option to force cluster into GATHER state
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-09-06 Jan Friesse <jfriesse@redhat.com>
+
+ coroparse: Use key_name for error message
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ coroparse: Add file name and line to error message
+ It's just much easier to find out what is happening when message like
+
+ parser error: /etc/corosync/corosync.conf:39: Unexpected closing brace
+
+ is logged instead of
+
+ parser error: Unexpected closing brace
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ coroparse: Be more strict in what is parsed
+ Corosync parser is not very clever, but it is able to detect more errors
+ without too much code.
+
+ 1. Check if section name is not empty (just '{' character)
+ 2. Check if there is no extra characters after opening bracket '{'
+ 3. Check if there is no extra characters after or before closing bracket
+ '}'
+ 4. Check if line is opening section, closing section or key/value
+
+ So following examples are reported as error:
+
+ totem {
+ version: 2
+ }}}}}}}}}}
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ coroparse: Fix remove_whitespace end condition
+ When remove_whitespace function parameter is single character string
+ with whitespaces (like a:) then colon is not removed. Reason is end
+ condition end != start, which is valid for empty string, but invalid in
+ case described above. Solution is to check if *end is '\0'.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ coroparse: Check icmap_set results
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ coroparse: Return error if config line is too long
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-05 Jan Friesse <jfriesse@redhat.com>
+
+ notifyd: Propagate error to exit code
+ When it's impossible to dispatch cmap/quorum messages exit code of
+ corosync-notifyd shouldn't be success.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-09-03 Jan Friesse <jfriesse@redhat.com>
+
+ git-version-gen: Fail on UNKNOWN version
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ build: Support for git archive stored tags
+ Attempt to solve problem with git archive generated tarballs
+ (used for example by github when release is downloaded) which are no
+ longer git tree and (in contrast to officially released tarballs) also
+ doesn't contain .tarball-version file so git-version-gen script simply
+ cannot obtain valid version info.
+
+ Solution is based on using gitattributes which is instructs git to
+ replace string in the .gitarchivever file by known ref names.
+ git-version-gen is enhanced to support this file and tries to parse
+ any string which looks like "tag: v[0-9]+.[0-9]+.[0-9]". If such string
+ is found it's used as a version. This file is used as a last attempt and
+ other methods (.tarball-version, git abbrev) have precedence.
+
+ Based on idea stated by Jan Pokorný <jpokorny@redhat.com>.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-08-20 Ferenc Wágner <wferi@debian.org>
+
+ man: fix cmap key name runtime.config.totem.token
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-08-14 Jan Friesse <jfriesse@redhat.com>
+
+ Remove libcgroup
+ Libcgroup is deprecated and not shipping with new distributions
+ (OpenSuSE is one example). Solution is to have a partial implementation
+ of required functionality of libcgroup in the corosync code.
+
+ Patch uses hardcoded cgroup mount point, because most of the systems are
+ now systemd and systemd is also using hardcoded mountpoint (see
+ https://github.com/systemd/systemd/blob/master/src/core/mount-setup.c)
+
+ Configuration option --enable-cgroup is gone, because it's not needed
+ any longer.
+
+ Big thanks to Christine Caulfield <ccaulfie@redhat.com> for example of
+ simplified implementation of cgroup management code primitives.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-08-14 Jan Pokorný <jpokorny@redhat.com>
+
+ systemd: prevent redundancy in journal
+ Originating from a dual sink (stderr and syslog).
+
+ Annotated example from "journalctl -b --no-hostname -u corosync":
+
+ Aug 14 00:27:45 corosync[5203]: [MAIN ] Corosync Cluster
+ Engine ('2.99.3'): started and ready to provide service.
+ ^ from syslog source
+ Aug 14 00:27:45 corosync[5203]: notice [MAIN ] Corosync Cluster
+ Engine ('2.99.3'): started and ready to provide service.
+ ^ from stderr source
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-08-14 Chris Walker <cwalker@cray.com>
+
+ Add token_warning configuration option
+ Token_warning is used to present information about
+ when the token was last received.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-08-13 Jan Friesse <jfriesse@redhat.com>
+
+ corosync-notifyd: Rename global local_nodeid
+ To prevent warning in functions where local_nodeid is also passed as
+ local parameter.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Add assert into memb_lowest_in_config
+ Add assert when there are no members in token_memb structure so
+ non-existing member is not accessed (token should always have
+ at least one member).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Enlarge error_string_response
+ ... so error_reason can be fully included into parse error message.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ ipc_glue: Fix strncpy in pid_to_name function
+ Trailing zero is always added so there is no need to have a warning
+ about unterminated destination string.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cmap: Fix strncpy warning in cmap_iter_next
+ cmap_iter_next in contrast of it's icmap counterpart copies key name
+ into user preallocated space. In the worst case, key name may be
+ CMAP_KEYNAME_MAXLEN, so cmap_iter_next then need CMAP_KEYNAME_MAXLEN +
+ additional byte to store zero. strncpy was copying only
+ CMAP_KEYNAME_MAXLEN characters so there was possibility of unterminated
+ string.
+
+ Patch solves this by using memcpy and always add trailing zero.
+ Documentation was improved suggesting minimum size of keyname buffer to
+ be CMAP_KEYNAME_MAXLEN + 1.
+
+ Also sam and quorumtool were using too short buffer so they are fixed too.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ util: Fix strncpy in setcs_name_t function
+ Trailing zero is always added so there is no need to have a warning
+ about unterminated destination string.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Free instance on failure exit
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-08-09 Jan Friesse <jfriesse@redhat.com>
+
+ spec: Add explicit gcc build requirement
+ Also remove %clean macro which is not needed for ages.
+
+2018-08-09 Chris Walker <cwalker@cray.com>
+
+ Add option for quiet operation to corosync-cmapctl
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-07-12 Jan Friesse <jfriesse@redhat.com>
+
+ totemudpu: Pass correct paramto totemip_nosigpipe
+ Fixes compilation on (at least) FreeBSD.
+
+2018-07-12 Bin Liu <bliu@suse.com>
+
+ totemudpu: Add local loop support
+ This patch intends to solve long time ifdown corosync problem. Idea is
+ to use local socket for sending both unicast and multicast messages if
+ interface is down.
+
+ Together with testing what is current bind state it's possible to keep
+ pretending existence of old IP address instead of rebinding to localhost
+ what breaks a lot things badly.
+
+ Heavilly based on Yu, Zou <zouyu@shiqichuban.com> work and it's
+ basically port of UDP patch created by
+ Jan Friesse <jfriesse@redhat.com>.
+
+ (ported from needle 96354fba72b7e7065610f37df0c0547b1e93ad51)
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-07-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Fail config validation if not all nodes have all links
+ KNET requires that all links be full-mesh (this may change in the future
+ but almost certainly not before knet 2.0), so enforce this in the
+ config.
+
+ Also avoid a potential div-by-0 error if the local node is not fully
+ configured either.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: Enforce use of 'name' node attribute in multi-link clusters
+ If the local host does not have a 'name' attribute and the cluster
+ has more than one link then fail the validation test.
+
+ I'm open to the idea of checking all of the nodes in the nodelist
+ if necessary. It seems overkill as each node will check its own
+ entry though.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-07-02 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Check for things that cannot be changed on the fly
+ There are a few things in the interface that cannot be changed on the
+ fly. Warn about them and tell the user that these things need to be done
+ in two steps and why.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-07-02 Jan Friesse <jfriesse@redhat.com>
+
+ Fix snprintf warnings
+ Compiler shows warnings about possible not large enough buffer, so check
+ snprintf return value properly.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ init: Use existing env variable from sysconf
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ upstart: Remove notifyd upstart unit
+ Hopefully this is last upstart bit.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-07-02 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Don't try to create loopback interface twice
+ It wasn't hardmful, but it generated an annoying message
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ knet: Fix knet log buffer size
+ knet sends log messages as struct knet_log_msg, not a string
+ of KNET_MAX_LOG_MSG_SIZE (which is only part of that structure).
+ So we were both losing and corrupting messages.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-04-30 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Inform clients about left nodes during pause
+ Patch tries to fix incorrect behaviour during following test-case:
+ - 3 nodes
+ - Node 1 is paused
+ - Node 2 and 3 detects node 1 as failed and informs CPG clients
+ - Node 1 is unpaused
+ - Node 1 clients are informed about new membership, but not about Node 1
+ being paused, so from Node 1 point-of-view, Node 2 and 3 failure
+
+ Solution is to:
+ - Remove downlist master choose and always choose local node downlist.
+ For Node 1 in example above, downlist contains Node 2 and 3.
+ - Keep code which informs clients about left nodes
+ - Use joinlist as a authoritative source of nodes/clients which exists
+ in membership
+
+ This patch doesn't break backwards compatibility.
+
+ I've walked thru all the patches which changed behavior of cpg to ensure
+ patch does not break CPG behavior. Most important were:
+ - 058f50314cd20abe67f5e8fb3c029a63b0e10cdc - Base. Code was significantly
+ changed to handle double free by split group_info into two structures
+ cpg_pd (local node clients) and process_info (all clients). Joinlist
+ was
+ - 97c28ea756cdf59316b2f609103122cc678329bd - This patch removed
+ confchg_fn and made CPG sync correct
+ - feff0e8542463773207a3b2c1f6004afba1f58d5 - I've tested described
+ behavior without any issues
+ - 6bbbfcb6b4af72cf35ab9fdb4412fa6c6bdacc12 - Added idea of using
+ heuristics to choose same downlist on all nodes. Sadly this idea
+ was beginning of the problems described in
+ 040fda8872a4a20340d73fa1c240b86afb2489f8,
+ ac1d79ea7c14997353427e962865781d0836d9fa,
+ 559d4083ed8355fe83f275e53b9c8f52a91694b2,
+ 02c5dffa5bb8579c223006fa1587de9ba7409a3d,
+ 64d0e5ace025cc929e42896c5d6beb3ef75b8244 and
+ b55f32fe2e1538db33a1ec584b67744c724328c6
+ - 02c5dffa5bb8579c223006fa1587de9ba7409a3d - Made joinlist as
+ authoritative source of nodes/clients but left downlist_master_choose
+ as a source of information about left nodes
+
+ Long story made short. This patch basically reverts
+ idea of using heuristics to choose same downlist on all nodes.
+
+ (ported from needle 9c2a97f4f96b9639d07e2a9fe378c28ab1963191)
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-04-25 Chris Lamb <lamby@debian.org>
+
+ man: Make the manpages reproducible
+ Whilst working on the Reproducible Builds effort [0], we noticed
+ that corosync could not be built reproducibly.
+
+ This is because, whilst it uses SOURCE_DATE_EPOCH[1], the output
+ varies depending on the current timezone.
+
+ (The LC_ALL is not needed as we only use %Y-%m-%d)
+
+ This was originally filed in Debian as #896441.
+
+ [0] https://reproducible-builds.org/
+ [1] https://reproducible-builds.org/specs/source-date-epoch/
+ [2] https://bugs.debian.org/896441
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-04-23 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Fix leave message regression
+ Leave message in totem is just join message where leaving member is
+ excluded from member list and included in fail list. It also contains
+ special nodeid in header.nodeid and system_from.nodeid fields.
+
+ Before "totem: Use nodeid ONLY in srp_addr" fix, most of the functions
+ were using system_from addresses and not nodeid, which was used only in
+ one specific case for memb_consensus_set function.
+
+ After the patch, addresses are gone and only nodeid is used. Result is,
+ that leaving node nodeid is not added into local fail list
+ (my_faillist) so node is unable to reach consensus till token timeout,
+ which starts new gather process.
+
+ Solution is to send valid leaving node nodeid in system_from.nodeid and
+ handle specific case for memb_consensus_set in memb_join_process.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Log proc/fail lists in memb_join_process
+ These information are useful and with trace log level they should not be
+ too much irritating.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Fix srp_addr_compare
+ There is regression caused by "totem: Use nodeid ONLY in srp_addr" patch
+ in srp_addr_compare function. This function should be usable with qsort,
+ so it should return values less than, equal to or greater than zero. It
+ was however returning only zero or negation of a zero. Final results
+ were unable to reach consensus in following test case:
+ - 3 node cluster
+ - start nodes 1, 2, 3
+ - shutdown node 3
+ - start node 3
+ - shutdown node 2
+ - start node 2
+ - shutdown node 1
+
+ After this steps, node 2 and 3 were unable to reach consensus.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-04-23 Ferenc Wágner <wferi@debian.org>
+
+ tools: don't distribute what we can easily make
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-04-23 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Drop all references to SECURITY file
+ File was removed by 6bdf0962ad035ac659bcbf36a918fe39931ed75d.
+ Patch fixes master branch build again.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-04-20 Jan Friesse <jfriesse@redhat.com>
+
+ SECURITY: Remove SECURITY file
+ Basically no information from SECURITY file is valid.
+
+ Library interface and related uidgid are better described in manpages.
+
+ LibNSS is not directly used any longer.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-04-20 Ferenc Wágner <wferi@debian.org>
+
+ NSS_NoDB_Init: the parameter is reserved, must be NULL
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: defualt -> default
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: sucesfully -> successfully
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-04-12 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Check join and leave msg length
+ If number of proc_list, failed_list or active members is too high it
+ may be impossible to put them into message, which is allocated on the
+ stack what results in stack corruption.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Implement sanity checks of received msgs
+ Sanity checkers are used to prevent crashing because of
+ accessing unallocated memory.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-04-11 Rytis Karpuška <rytisk@neurotechnology.com>
+
+ cpg: Handle fragmented message sending interrupt
+ It turns out that there are some legitimate cases where fragmented
+ messages might be interrupted during sending (e.g. CS_ERR_TRY_AGAIN or
+ as in my case: CS_ERR_INTERRUPT). This creates a situation where
+ LIBCPG_PARTIAL_FIRST is sent multiple times before receiving
+ LIBCPG_PARTIAL_LAST.
+
+ Solution is to drop incomplete message and start assembly of new message
+ as libcpg should have reported error during sending of that
+ incomplete message.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-03-16 Jan Friesse <jfriesse@redhat.com>
+
+ totem: Display IP of sender
+ To make finding victim of incompatible messages easier, IP of sender is
+ logged. Propagating IP in layers makes patch slightly larger.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Add magic and version into header
+ Magic number (0xC070) together with version in every packet
+ is used for detecting that other node is really
+ Corosync 3.x.
+
+ Endian_detector field is removed and magic number is now
+ used instead.
+
+ If received packet magic number differs, guessing is used to show more
+ about the source (Corosync 2.3+, 2.2 are quite reliable, Knet and
+ unencrypted Corosync 2.1/2.0/1.x/OpenAIS are semi-reliable and encrypted
+ Corosync 2.1/2.0/1.x/OpenAIS are quite unreliable).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-03-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Fix display of links with unconfigured link0
+ because totemknet always configures link0 as loopback even
+ if it's not known to corosync, we need to filter it
+ out when returning the link status, as things get misaligned
+ in cfg.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-03-02 Jan Friesse <jfriesse@redhat.com>
+
+ main: Set errno before calling of strtol
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtool: Don't set our_flags without v_handle
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ sam_test_agent: Remove unused assignment
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ blackbox: Quote subshell result properly
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ init: Quote subshell result properly
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-03-01 Christine Caulfield <ccaulfie@redhat.com>
+
+ cfgtool: Don't assume link ID is a single char
+ For the moment link-ids are a single digit, but that could change and
+ the tools shouldn't be quite so fragile. So parse the interface_name
+ properly by looking for the space between the linkID and the IP.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ knet: Always use link0 for loopback
+ Even if it's not used for anything else.
+
+ Also, make cfgtool show the correct link ID when links are not
+ contiguous
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totem: Fix debug warnings printed by knet
+ Fix crash introduced a couple of commits ago in iface_get
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: Allow use of ring0_addr
+ Allow ring0_addr to be used in place of 'name' for
+ backwards compatibility
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ config: Update message when local host isn't found
+ Make the message more representative of what's going on.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cfg: Fix cfg_get_node_addrs so that DLM works
+ Also update copyright dates
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totem: Return interface count correctly
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totem: Use nodeid ONLY in srp_addr
+ This shrinks the srp_addr (and consequently every packet sent by
+ corosync) so that instead of containing loads of IP addresses to
+ identify a node, it just sends the nodeid.
+
+ This then allows us to make ring0 optional and replaceable when running
+ knet.
+
+ It also means that we need some other way of identifying the local
+ node in corosync.conf, so the nodelist.node.name entry is now mandatory
+ and is mapped to the local host using the same algorithm as used in
+ cman.
+
+ This code needs LOTS of testing as it touches a huge amount of totemsrp
+ and totemconfig.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-02-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ [rpm] use rpm macros to identify build distro
+ thanks Honza for spotting it
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ [rpm] fixup corosync.spec.in to build on opensuse
+ - move dbus-devel and nss-devel BuildRequires to file based depedency.
+ Those 2 BR have different names in OpenSUSE vs Fedora/RHEL/Centos.
+ This is kind of controversial as most distribution prefers a package
+ based build depedency, but the rpm version that supports
+ BuildRequires: foo || bar
+ is only available in rawhide and tumbleweed (aka no stable releases
+ are shipping it yet).
+ In order to build rpms in CI and have some level of flexibility
+ with upstream spec file, we need to compromise a bit.
+
+ - add explicit --docdir
+ OpenSUSE does not ship docs in the normal dir and their rpm macro
+ does not appear to set it for us.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-02-09 Rytis Karpuška <rytisk@neurotechnology.com>
+
+ totempg: Fix corrupted messages
+ Commit 899cb299831fea479ca8bc64d99fb1fce215d795 changed copy_len
+ to iovec[i].iov_len, assuming,
+ copy_len is always the same as iovec[i].iov_len under those
+ circumstances, but it missed the possability of small message being
+ partly put at the end of packet, which cuts this message in two parts
+ and therefore making copy_len not equal to iovec[i].iov_len.
+
+ This is revert of 899cb299831fea479ca8bc64d99fb1fce215d795
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-02-08 Rytis Karpuška <rytisk@neurotechnology.com>
+
+ totempg: use iovec[i].iov_len instead of copy_len
+ To be more explicit that we are copying whole message.
+
+ Related to 0ebae6b47d39940c62dcbd9185b9af2f265a47ff.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totempg: Fix fragmentation segfault
+ The problem was that two or more messages were concatenated
+ together during fragmentation in mcast_msg() function. In specific case,
+ message of just short of 1MB was provided for mcast_msg() and it
+ happened so, that the remainder (212 bytes to be exact) left some free
+ space in packet, therefore branch
+
+ if ((copy_len + fragment_size) <
+ (max_packet_size - sizeof (unsigned short))) {
+ ...
+
+ was selected and this was the last mesage in provided iovec.
+ Then, on the second call, came another big message (about 300KB ) and
+ during fragmentation mcast.fragmented was set to 1.
+
+ On the other end, while receiving messages, due to missing
+ mcast.fragmentation==0 those two messages were concatenated and
+ therefore assembly->data array overflowed overwriting linked list
+ pointers and offset (which happened to be set to 0 and that 300KB
+ message was being copied from the beginning again).
+ After whole 300KB message has been sent, mcast.fragmentation==0 arrived
+ and totempg_deliver_fn() tried to move assembly structure to
+ assembly_list_free list, but as linked list pointers has been overriden,
+ segfault occured.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-02-05 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ [build] fix build with non-standard knet location
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ [man] fix regression introduced by 7162e75dcf81b7e475536e3060bf5e9312cd43b8
+
+2018-01-30 Christoph Berg <myon@debian.org>
+
+ Man: Move overview mp to sections 3 and 7 from 8
+ The _overview manpages are not actually commands and hence do not belong
+ into manpage section 8. Move corosync_overview to section 7
+ ("Miscellaneous") and the other *_overview pages to section 3 as they
+ contain API documentation (cf. string(3) for precedence of
+ multi-function manpages).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-30 Jan Friesse <jfriesse@redhat.com>
+
+ logging: Close before and open blackbox after fork
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ logging: Make blackbox configurable
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-01-26 Andrey Ter-Zakhariants <at1984z@live.com>
+
+ corosync-notifyd: improve error handling
+ Better handling of errors in _cs_cmap_members_key_changed().
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-25 Jan Friesse <jfriesse@redhat.com>
+
+ spec: Modernize spec to comply with newest Fedora
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ build: Remove support for upstart
+ Upstart files were already mostly removed but not from spec file and
+ configure.ac.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ build: Replace -lknet with autoconf generated vars
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ build: Remove rdma/ibverbs
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ qdevice: Remove qdevices
+ corosync-qdevice and corosync-qnetd now has a new home
+ https://github.com/corosync/corosync-qdevice
+
+ This will allow us to better react on actual needs of quite independent
+ projects.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-01-18 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Don't fudge port numbers
+ When I was adding knet I wanted the port numbers to default to the
+ base port number + the linknumber.
+
+ However I seem to have messed this up such that any port number
+ specified in the config file has the link number added to it. Which
+ is almost certainly not what people would expect.
+
+ This patch sets it right. If a port number is not specified
+ then 5405+linknumber is used. If a port number IS specified
+ then that actual number is used.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Allow ping_timers to be auto-configured
+ knet ping_timers are auto-configured according to token value.
+
+ This patch also fixes some knet config bugs that resulted in defaults
+ not being applied when values were removed from corosync.conf.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-15 Bin Liu <bliu@suse.com>
+
+ cts: Make code compatible with Python 3
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ corosync-notifyd: make SNMP work again
+ rrp_faulty_fn in notify_callbacks no longer exists, and now become
+ link_faulty_fn, and also link_faulty_fn needs 5 arguments while
+ rrp_faulty_fn needs 4.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-11 yuskiida <yusk.iida@gmail.com>
+
+ build: Add the headers necessary for RPM build
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-09 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: if local node addr is wrong, fail with a sensible message
+ If no valid local address is found in corosync.conf then corosync
+ exits with: "parse error in config: No multicast port specified"
+
+ This is because of the config change for knet that always populates
+ the interfaces. The old error of "no interfaces found" was only
+ slightly better anyway IMHO.
+
+ This patch adds an explicit check that local_node_pos has been
+ set in icmap and uses that to determine if a valid local address
+ has been found.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-09 Jan Friesse <jfriesse@redhat.com>
+
+ totemknet: Drop truncated packets on receive
+ This is backport of part of "totemudpu: Scale receive buffer" patch.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemudp: Make use of UDP_RECEIVE_FRAME_SIZE_MAX
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemudpu: Export and rename UDPU_FRAME_SIZE_MAX
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Fix UDP autogeneration of mcast addr
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemudpu: Scale receive buffer
+ Receive buffer should be based on PROCESSOR_COUNT_MAX and not static
+ buffer.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2018-01-05 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Allow selection of crypto_model
+ KNET has options for nss or openssl crpyto libraries, make this
+ available to corosync.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-04 Rytis Karpuška <rytisk@neurotechnology.com>
+
+ libcpg: Fix issue with partial big packet assembly
+ Packet assembly is done seperately for each nodeid, pid pair, therefore
+ multiple packets are not mixed into single buffer.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2018-01-02 Bin Liu <bliu@suse.com>
+
+ qdevice: mv free(str) after port validation
+ in the previous code of qdevice_net_instance_init_from_cmap:
+ host_port = strtol(str, &ep, 10);
+
+ free(str);
+
+ if (host_port <= 0 || host_port > ((uint16_t)~0) || *ep != '\0')
+
+ before free, *ep is '\0'. But after free, *ep changed to 'U', so mv
+ free behind the comparison.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-12-22 Toki Winter <toki@linuxfoundation.org>
+
+ corosync.aug: Add missing options
+ Knet related options are not yet included.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-12-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Allow links to have different ip_versions
+ knet allows links to have different IP versions - proivided they
+ all match per link. So don't force them all to be the same.
+
+ I've added a check here to make sure that all nodes on the same
+ link are using the same IP version.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-12-05 Bin Liu <bliu@suse.com>
+
+ Fix compile errors in qdevice and vqsim on FreeBSD
+ Some header files need to be specified on FreeBSD, otherwise there
+ are compile errors. These files does not affect Linux compilation.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-12-01 Christine Caulfield <ccaulfie@redhat.com>
+
+ cmapctl: mention the Clear stats option in usage message
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-12-01 Bin Liu <bliu@suse.com>
+
+ corosync-cfgtool: refactor cli parameters handling
+ use the idea from corosync-cmapctl to set ACTION and params in the first
+ swtich, and add another swtich to call function based on ACTION and the
+ params.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ wd: fix snprintf warnings
+ When running ./configure --enable-watchdog, gcc 7.2.1 will report
+ warnings for snprintf. This patch fixes the warnings.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-30 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Revert totemsrp_get_ifaces() changes
+ In my enthusiasm for removing code while integrating knet I
+ also deleted the correct code for returning IP address for a node,
+ so that only the IP addres of the local node was ever returned.
+
+ This commit restores the the previous code.
+
+ Also, because we always return INTERFACE_MAX interfaces now (they don't
+ have to be contiguous) set ss_family to zero if that interface is not
+ in use so that downstream apps know and don't display a lot of 0.0.0.0
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-30 Jan Friesse <jfriesse@redhat.com>
+
+ man: Add note about corosync not using name option
+
+2017-11-30 Jan Pokorný <jpokorny@redhat.com>
+
+ corosync.conf: publicize nodelist.node.name
+ It was discovered that pacemaker has been occassionaly relying on
+ those items configured in corosync.conf (and documenting so), while
+ backpropagation got stuck somewhere. As the option is deemed generally
+ beneficial, rectify this gap now and make it standard,
+ public part of the configuration space, possibly also for other
+ client SW to use now.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-29 Bin Liu <bliu@suse.com>
+
+ man: fixes for corosync.conf man page
+ 1. multicast address/port is only for UDP
+ 2. change kronosnet to Kronosnet
+ 3. nodeid must be set with KNET, not UDPU
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cmapctl: add "-m" option into help message
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: remove duplicate aes256 test
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-27 Bin Liu <liu4480@126.com>
+
+ fix output format for corosync-cfgtool with knet (#283)
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-11-16 Jan Friesse <jfriesse@redhat.com>
+
+ sync: Call sync_init of all services at once
+ This patch solves situation which can happen very rearly:
+ - Node B is running
+ - Node A is started and tries to create singleton membership. It also
+ initialize service S which tries to send message during initialization
+ - Just before node A finished move to operational state, it gets
+ Node B multicast message so moves to gather state
+ - Node A and B creates membership and moves to operational state and
+ sync is started
+ - Node A and B receives message sent by node A during initialization of
+ service S
+ - Node A exits before sync of service is finished
+
+ In this situation, node B may never execute sync_init for
+ service S. So node B service S is not aware of existence of node A but
+ it received message from it.
+
+ Similar situation can theoretically also happen during merge.
+
+ Solution is to change flow of sync, so now it looks like:
+
+ - Build service_list
+ - Call sync_init for all local services
+ - Send service_list
+ - Receive service_list from all members and send barier
+ - For all services:
+ - Receive barier
+ - Call sync_activate if this is not first service
+ - Call sync_process for next service or finish sync if previous
+ this service is the last one
+ - Send barier
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ sync: Remove unneeded determine sync code
+ Code was used for compatibility with old sync v1 (in needle this was
+ deleted and previous version 2 became v1), and it's no longer needed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-11-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ stats: Add some missing knet stats
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-14 Jan Friesse <jfriesse@redhat.com>
+
+ man: Add note about qdevice parallel cmds start
+
+2017-11-14 Jan Pokorný <jpokorny@redhat.com>
+
+ man: corosync-qdevice: some more stylistics
+ Following the well-used scheme:
+ - expressly given defaults: italics (underline in standard terminals)
+ - key cross-references: bold (as well as the originals)
+
+ + fix missing paragraph delimiters
+ + s/what/which/ and s/on/one/ where appropriate
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-10 Ferenc Wágner <wferi@debian.org>
+
+ systemd: corosync-qdevice can not run without corosync
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-09 Jan Pokorný <jpokorny@redhat.com>
+
+ man: corosync-qdevice: fix formatting vs. punctuation
+ Previously, some enumerations were hard to follow, as they were marked
+ up all at once, including punctuation and connectives. Also mark up
+ some expressly given defaults.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-09 Ferenc Wágner <wferi@debian.org>
+
+ configure: kill off INITWRAPPERSDIR
+ When configured for systemd, don't install the SysV init scripts at all.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ corosync-qdevice: send startup notification to systemd
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ corosync-qnetd: send startup notification to systemd
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Send corosync-notifyd startup notification to systemd
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Make systemd stop corosync-notifyd if corosync is stopped
+ Otherwise is just exits successfully (which should probably be fixed
+ eventually), leading to confusion.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-09 Jan Friesse <jfriesse@redhat.com>
+
+ corosync.spec: Add system-devel build requirement
+ Reviewed-by: Ferenc Wágner <wferi@debian.org>
+
+2017-11-09 Ferenc Wágner <wferi@debian.org>
+
+ Send corosync startup notification to systemd
+ This enables starting the daemon directly in the service file, because
+ dependent units won't be started until initialization is complete.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-08 Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: Use full buffer size in snprintf
+ Thanks Bin Liu <bliu@suse.com> for this patch.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Mark print/log functions with printf attr
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cpg_test_agent: Fix snprintf compiler warnings
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ sam: Fix snprintf compiler warnings
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-11-06 Jan Friesse <jfriesse@redhat.com>
+
+ coroparse: Do not convert empty uid, gid to 0
+ When uid (or gid) value was empty string it was incorrectly converted to
+ 0. Solution is to check input string emptines.
+
+ Thanks Bin Liu <bliu@suse.com> for reporting the bug.
+
+ Reviewed-by: Bin Liu <bliu@suse.com>
+
+2017-11-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ cmapctl: Add option to clear the stats
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ stats: Don't display errors when reading knet stat
+ Only add the knet handle stat keys if we are actually running knet. This
+ prevents errors occurring when iterating through all of the stats keys
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-03 Bin Liu <liu4480@126.com>
+
+ make the output of "corosync-cfgtool -s" more readable (#269)
+
+2017-11-01 Bin Liu <bliu@suse.com>
+
+ cfg: nodeid should be unsigned int
+ nodeid in struct req_lib_cfg_get_node_addrs is "unsigned int",
+ so the function corosync_cfg_get_node_addrs should have its param
+ "nodeid" to be unsigned int.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: remove duplicated help message
+ Option "-p" was included twice, so remove one of them.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-11-01 Jonathan Davies <jonathan.davies@citrix.com>
+
+ man: fix cpg_mcast_joined.3.in
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-31 Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Add stats.clear keys to the cmap_keys man pg
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ stats: Add cmap key to clear the various stats.
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-31 Ferenc Wágner <wferi@debian.org>
+
+ Use RuntimeDirectory instead of tmpfiles.d
+ This reverts part of commit 32123f6bb2ebc4f9ac7865945cc85a9c9b903dc6.
+
+ A simple directive is a much lighter solution to the same problem, and
+ automatically follows the specified User. I copied the 0770 modes from
+ the corresponding init scripts; they could use a little documentation.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-30 Bin Liu <bliu@suse.com>
+
+ totemconfig: generate mcast icmap items for UDP
+ Generating mcastaddr and mcastport in icmap make
+ sense only for UDP transport.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-30 Ferenc Wágner <wferi@debian.org>
+
+ Use static case blocks to determine distro flavor
+ This is a configure-time decision, avoid live filesystem checks.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure: add --with-initconfigdir option
+ Default value is /etc/sysconfig and resulting
+ INITCONFIGDIR is used to reduce duplication in init system
+ integration code.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-30 Bin Liu <bliu@suse.com>
+
+ totemconfig: add nodeid check for knet
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-25 Ferenc Wágner <wferi@debian.org>
+
+ man: support SOURCE_DATE_EPOCH
+ Make reproducible builds possible by supporting
+ https://reproducible-builds.org/specs/source-date-epoch/
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-25 Bin Liu <bliu@suse.com>
+
+ man:fix in corosync-qdevice.8
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-24 Bin Liu <bliu@suse.com>
+
+ man: must set nodeid for knet in nodelist
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-23 Jan Pokorný <jpokorny@redhat.com>
+
+ logsys: Avoid redundant callsite section checking
+ Previously, corosync executable was repeatedly (proportionally to the
+ count of LOGSYS_DECLARE_SUBSYS macro applications involved in the
+ constituent source files) checking the same for no gain in the pre-main
+ startup. This is not needed since nothing changes with static data
+ shared withing the same program space (it may have been a different
+ story once upon a time if loadable modules were in use), so make that
+ happen in (one-off per executable) LOGSYS_DECLARE_SYSTEM instead.
+
+ Libqb offers it's own ready-made macro to that
+ effect, simply to isolate the inner percularities from the library user
+ (that should not be required to understand anything about the orphan
+ sections and respective autocreated symbols to denote their boundaries).
+ As it is compile-time conditionalized in the same way, just use it
+ directly instead. As a value added, corosync will be kept up to date
+ about the possibly growing set of the logging-sanity checks as it gets
+ compiled with newer and newer libqb versions (their header files, for
+ that matter).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-23 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Fix memory leak
+ totem_volatile_config_set_string_value was not properly freeing memory.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ knet: Add support for knet compression
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-20 Jan Friesse <jfriesse@redhat.com>
+
+ qdevice: Add support for heuristics
+ Heuristics are set of commands executed locally on startup, cluster
+ membership change, successful connect to corosync-qnetd and optionally
+ also at regular times. When all commands finish successfully
+ (their return error code is zero) on time, heuristics have passed,
+ otherwise they have failed. The heuristics result is sent to
+ corosync-qnetd and there it's used in calculations to determine which
+ partition should be quorate.
+
+ Right know, there are some problems (bugs):
+ - Regular heuristics is supported only by ffsplit. This is not a
+ problem for clusters with power fencing, but deployments where
+ non-quorate partition continues to operate may see this as a problem.
+ - Qdevice-tool status doesn't contain detailed information about
+ heuristics.
+ - Qdevice-tool doesn't have a possibility to trigger heuristics
+ re-execute.
+
+ Thanks Chrissie Caulfield for Englishify the man pages.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-10-18 Keisuke MORI <kskmori@intellilink.co.jp>
+
+ Spec: fix arch-qualified dependencies
+ needed along with commit 30af25294e019678c4f31e3368b19266f69b8254
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-11 Jan Friesse <jfriesse@redhat.com>
+
+ cmap: Remove noop highest config version check
+
+2017-10-11 Jonathan Davies <jonathan.davies@citrix.com>
+
+ cmap: don't shutdown highest config_version node
+ Scenario:
+ 1. node A starts corosync with config_version = 2, nodelist = {A, B}
+ 2. node B starts corosync with config_version = 1, nodelist = {A, B}
+
+ corosync.conf(5) says the config_version option is "used to prevent
+ joining old nodes with not up-to-date configuration."
+
+ So expected outcome is:
+ * corosync on node A remains alive
+ * corosync on node B exits
+
+ Actual outcome is:
+ * corosync on node A exits
+ * corosync on node B exits
+
+ Explanation of actual behaviour:
+ * Host A will have cmap_my_config_version = 2 but
+ cmap_highest_config_version_received = 1, so will shutdown in
+ cmap_sync_activate because these are not equal.
+ * Host B will have cmap_my_config_version = 1 but
+ cmap_highest_config_version_received = 2, so will shutdown in
+ cmap_sync_activate because these are not equal.
+
+ Instead, node A should consider its own config_version in the
+ calculation of the highest config_version, i.e.
+ cmap_highest_config_version_received = 2, and so not shutdown
+ in cmap_sync_activate.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-10-02 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ totemudp: Remove memb_join discarding
+ This is already implemented in totemsrp in much cleaner way (added
+ by commit ab8942f6260fde93824ed2a18e09e572b59ceb25).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-26 Edwin Torok <edvin.torok@citrix.com>
+
+ votequorum: make atb consistent on nodelist reload
+ When the cluster changes from even sized to odd sized corosync
+ disables auto-tie-breaker if wait_for_all is not enabled.
+ However when changing from odd sized to even sized it doesn't reenable
+ it, causing auto_tie_breaker to be inconsistent across the cluster:
+ the newly added node and any nodes that restart corosync
+ will have it, but all the previously running nodes won't.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-22 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totem: Remove unnecessary NSS headers
+ Also fix corosync.spec.in to depend on libknet.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-21 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Allow dynamic link configuration
+ Now we are using knet, it's possible to dynamically add, remove and
+ reconfigure links on the fly.
+
+ Also print 'n' for non-existant knet links. This will show up
+ only on loopback links >0. But it looks better than 'status ='
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-19 Masse Nicolas <nicolas.masse@stormshield.eu>
+
+ totemudp: Retry if bind fails
+ If bind call fails it's retried for BIND_MAX_RETRIES.
+ If it's still unsuccessful, corosync exists instead
+ of working incorrectly.
+
+ Slightly modified by reviewer.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-14 Ferenc Wágner <wferi@debian.org>
+
+ corosync.conf.5: watchdog support is conditional
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ wd: default to not using a watchdog
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-12 Ferenc Wágner <wferi@debian.org>
+
+ wd: remove extra capitalization typo
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ corosync.conf.5: add warning about slow watchdogs
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-11 Jonathan Davies <jjd27@dani.uk.xensource.com>
+
+ totemknet: fix debug message typo
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-09-11 Ferenc Wágner <wferi@debian.org>
+
+ corosync.conf.5: Fix watchdog documentation
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ wd: fix typo
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-08-31 Khem Raj <raj.khem@gmail.com>
+
+ Include fcntl.h for F_* and O_* defines
+ Fixes errors like
+ utils.c:95:22: error: use of undeclared identifier 'O_WRONLY'
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-08-23 Christine Caulfield <ccaulfie@redhat.com>
+
+ stats: add knet 'handle' stats
+ knet handle stats show compression and crypto statistics. With these
+ you can see the effectiveness of compression and the overheads of both
+ crypto and compression.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-08-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ main: use syslog & printf directly for early log messages
+ libqb seems funny about logging things before its fully configured.
+ This corosync commit didn't help either:
+ 8b6bd86a55b8bda9f3a8ff67bdff908263976fa3
+
+ So to make sure that messages about the config file not being opened
+ get delivered to the user/syslog we send them directly.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-08-14 Christine Caulfield <ccaulfie@redhat.com>
+
+ totempg: Allow space for incoming overflow
+ totempg needs to store the current message + any
+ overflow for the next message which can be up to (nearly) the MTU size.
+ in knet that's large, but for UDP it's just 1500.
+
+ The reason we've never seen it before is because the actual max message
+ size is 1024 less than 1MB and after all the headers are stripped out the overflow is
+ usually 1024 bytes or less.
+ The 1024*1024 size of the assembly buffer is large enough to hold a max message (1047552) +
+ 1024 bytes of a new UDP message. So we never saw any problems.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-08-11 Chrissie Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Add options to change flood start/mult/end sizes (#237)
+ I ran out of sensible short options for cpghum so added some long
+ ones to cope with them.
+
+ Also added is the ability to specify most size values in a sensible format
+ eg 64M for 64 Megabytes or 48K for 48 Kilobytes.
+
+ Strictly those are MiB and KiB of course, but I'm old-fashioned.
+
+2017-08-04 Chrissie Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Use knet's LOOPBACK transport (#236)
+ knet now has a built-in LOOPBACK transport so use that
+ rather than special-casing it for ourself.
+
+2017-08-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ CFG: Remove ring-reenable code
+ RRP doesn't exist any more so all the ring re-enable code is redundant.
+
+ I've removed it from the library and all the code that does anything,
+ but I've left the hole in the IPC just in case old libraries are
+ hanging around.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-08-01 Jan Friesse <jfriesse@redhat.com>
+
+ main: Add support for libcgroup
+ When corosync is started in environment where it ends in cgroup without
+ properly set rt_runtime_us it's impossible to get RT priority.
+
+ Already implemented workaround is to use higher non-RT priority.
+
+ This patch implements another solution. It moves corosync into root cpu
+ cgroup. Root cpu cgroup hopefully has enough RT budget.
+
+ Another solution was mentioned on ML
+ https://lists.freedesktop.org/archives/systemd-devel/2017-July/039353.html
+ but this means to generate some "random" values.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ (cherry picked from commit c56086c701d08fc17cf6d8ef603caf505a4021b7)
+
+2017-07-27 Christine Caulfield <ccaulfie@redhat.com>
+
+ stats: Add map with on-demand statistics
+ Icmap is factored out so it's possible to add other
+ maps for cmap. API call to switch maps from application
+ end is added.
+
+ Corosync-cmapctl is enhanced with -m option.
+
+ Stats contains all statistics previously found in runtime.connections,
+ runtime.services and runtime.totem prefixes together with new knet
+ related. All stats are read only.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-07-14 Christine Caulfield <ccaulfie@redhat.com>
+
+ ipc: Check for the libraries sending invalid message IDs
+ If the library sent an invalid (ie too high) message ID to
+ corosync, then it could cause the daemon to crash.
+
+ Now we check the message ID before indexing the function array
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-07-10 Jan Friesse <jfriesse@redhat.com>
+
+ main: Add option to set priority
+ Option -P takes numeric value with same meaning
+ as nice or values min / max, meaning maximal / minimal priority (so
+ minimal / maximal nice value).
+
+ Scheduler / priority setting is moved in code so it is now executed
+ after logsys is configured so errors are logged.
+
+ Setting maximal priority is also used as fallback when realtime
+ scheduling is requested and sched_setscheduler fails.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ (cherry picked from commit a008448efb2b1d45c432867caf08f0bcf2b4b9b0)
+
+2017-07-03 Jan Friesse <jfriesse@redhat.com>
+
+ totemknet: Prevent dead-loop in log_flush_messages
+
+ corosync-keygen: Display number of needed bits
+ Instead of currently read bits, number of already read bits is
+ displayed to let the user know how long it's needed to "press keys"
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Flush knet log messages
+ When initialization fails knet logs messages into pipe. Previously they
+ were never processed. Solution is to add log_flush_messages which takes
+ care to call log_deliver_fn.
+
+ Call of log_flush_messages is also added to totemknet_finalize because
+ this removes log pipe fd from qb_loop so similar problem can happen.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ corosync-keygen: Make less-secure default
+ /dev/urandom is good enough for crypto keys and it's not blocking. If
+ superb randomness is really needed, it's possible to use newly added
+ option -r.
+
+ Also manpage is reworked a bit to use .nf instead of many .br.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ corosync-keygen: Adapt to knet key sizes
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Make crypto work again
+ Knet needs longer key and supports various key lengths. Split
+ TOTEM_PRIVATE_KEY_LEN into TOTEM_PRIVATE_KEY_LEN_MIN and
+ TOTEM_PRIVATE_KEY_LEN_MAX (both using KNET_*_KEY_LEN).
+
+ Fix incorrect "Could only read..." message.
+
+ Make sure key is properly initialized/zeroed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-06-29 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Compile with latest knet API
+ extra parameter added to knet_link_get_status()
+
+2017-06-15 Jan Friesse <jfriesse@redhat.com>
+
+ totem: Propagate totem initialization failure
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-06-09 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Use new knet_link_set_config() API
+ TC_PRIO_INTERACTIVE is now a link option in knet, so we have
+ to provide it at link config time.
+
+ This needs the latest knet git to compile as this is an updated API.
+
+2017-05-29 Michael Jones <jonesmz@jonesmz.com>
+
+ coroapi: Use size_t for private_data_size
+ Unsigned int and size_t represent two different concepts.
+
+ Same problem was present in ipc_glue.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-05-26 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Report errors from votequorum_exec_send_reconfigure
+ If votequorum_exec_send_reconfigure() returns an error (ie the
+ packet could not be sent) then we should either return it to the
+ sender (for a library call) or, for an internal call, log it.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-05-25 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: remove space after delimiter
+ machine-readable stats do not need extra spaces!
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cpghum: Add interim RTT to cpghum
+ when -f is selected the interim stats show the RTTs for that
+ size of packet.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-05-23 Michael Jones <jonesmz@jonesmz.com>
+
+ configure: Enable C99 language standard
+ Also disable some obsolete warnings.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-05-18 Jan Friesse <jfriesse@redhat.com>
+
+ main: Display reason why cluster cannot be formed
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2017-05-18 Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+
+ notifyd: Add the community name to an SNMP trap
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-05-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Add machine-readable output
+ and fix a few small counter bugs.
+
+2017-05-11 Chrissie Caulfield <ccaulfie@redhat.com>
+
+ test: Fold cpgbench into cpghum (#205)
+ * test: Fold cpgbench into cpghum
+
+ cpgbench and cpghum share a lot of code & concepts so it makes
+ sense to merge them into a single test program that can both
+ benchmark and sanity check CPG.
+
+ Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-05-09 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Allow space for encapsulated messages
+
+2017-04-25 Andrew Price <anprice@redhat.com>
+
+ Main: Call mlockall after fork
+ Man page of mlockall is clear:
+ Memory locks are not inherited by a child created via fork(2) and are
+ automatically removed (unlocked) during an execve(2) or when the
+ process terminates.
+
+ So calling mlockall before corosync_tty_detach is noop when corosync is
+ executed as a daemon (corosync -f was not affected).
+
+ This regression is caused by ed7d054e552b4cb2a0cb502b65f84310ce6da844
+ (setprio for logsys/qblog was correct, mlockall was not).
+
+ Solution is to move corosync_mlockall call on correct place.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-04-21 Michael Schwarz <michi.schwarz@gmail.com>
+
+ Fix typos in README.recovery
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-04-20 Bin Liu <bliu@suse.com>
+
+ coroparse: Use readdir instead of readdir_r
+ readdir_r is deprecated in glibc 2.24 in favor of readdir (which became
+ thread safe). Also because corosync never calls read_uidgid_files_into_icmap
+ in muliple threads, no problem should appears even with libc where
+ readdir is thread-safe.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemknet: Handle logpipe creation failure
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ wd: Report error when close of wd fails
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Qnetd lms: Use UTILS_PRI_RING_ID printf format str
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cpghum: Fix printf of size_t variable
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-04-11 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Got back to recvmsg() from recvmmsg()
+ The kernel team have recommended us not to use recvmmsg and as it
+ confers no particular speed advantage (especially given the extra
+ memory consumption) I'm going back to single message recvmsg() again.
+
+2017-04-11 Bin Liu <bliu@suse.com>
+
+ totemconfig: Prefer nodelist over bindnetaddr
+ In a two-node cluster, I 've one node configured with open-vswtich:
+ 5: br-fixed: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue
+ state UNKNOWN group default
+ inet 192.168.124.88/24 scope global br-fixed
+ inet 192.168.124.87/24 scope global secondary br-fixed
+ inet 192.168.124.83/24 brd 192.168.124.255 scope global secondary
+ tentative br-fixed
+ inet 192.168.124.89/24 scope global secondary br-fixed
+
+ while I use 192.168.124.83 in node list of corosync.conf with udpu, and
+ the bind_addr is 192.168.124.0. After upgrading corosync on this node,
+ the it uses 192.168.124.88 instead of 192.168.124.83. As we can see:
+
+ corosync-cfgtool -s
+ Printing ring status.
+ Local node ID 1084783704
+
+ corosync-quorumtool -s
+ Membership information:
+ Nodeid Votes Name
+ 1084783697 1 d52-54-77-77-01-02
+ 1084783699 1 d52-54-77-77-01-01 (local)
+
+ while the other node can only see itself:
+ corosync-cfgtool -s
+ Printing ring status.
+ Local node ID 1084783697
+ RING ID 0
+ id = 192.168.124.81
+ status = ring 0 active with no faults
+
+ corosync-quorumtool -s
+ Membership information:
+ Nodeid Votes Name
+ 1084783697 1 d52-54-77-77-01-02.virtual.cloud.suse.de (local)
+
+ this patch will check if there are both nodelist and bindnetaddr and if
+ so, display warning and use nodelist information.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-04-11 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Close libknet down cleanly at shutdown
+ By tidily shutting down knet in totekmknet_finalize we
+ make sure all the links are cleanly taken down and,
+ more importantly for us, the corosync LEAVE message gets
+ sent so we don't get fenced on a clean exit.
+
+2017-04-07 Christine Caulfield <ccaulfie@redhat.com>
+
+ man: Document -a option to corosync-quorumtool
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-04-07 Jan Friesse <jfriesse@redhat.com>
+
+ cpghum test: Improve error codes
+ Return error when unknown option is found. Also return error code 2 if
+ one of send/crc/length/sequence error happened. Finally make sure abort
+ returns same error code and not 999 (what is nonsense code anyway).
+
+2017-04-04 Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtool: Add option to show all node addresses
+ New -a option shows all of the names/ip address of nodes
+ in a multi-homed environment.
+
+2017-03-14 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Stop cpghum from reporting fake CRC errors
+
+2017-03-10 Bin Liu <bliu@suse.com>
+
+ logconfig: Do not overwrite logger_subsys priority
+ logfile_priority and syslog_priority could be modified by
+ logging.logger_subsys.{logfile_priority|syslog_priority}. which could
+ lead to the following output(which are at notice level):
+
+ corosync[21419]: [QUORUM] Using quorum provider corosync_votequorum
+ corosync[21419]: [QUORUM] Members[1]: 1084777643
+ corosync[21419]: [QUORUM] This node is within the primary component
+ and will provide service.
+ corosync[21419]: [QUORUM] Members[3]: 1084777563 1084777584 1084777643
+
+ even the syslog_priority is warning. This patch could avoid the
+ overwrite.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-03-02 Christine Caulfield <ccaulfie@redhat.com>
+
+ totem: Fix buffer sizes
+ knet needs buffers to be KNET_MAX_PACKET_SIZE or messages will
+ get lost or corrupted.
+
+ UDPU packets shouldn't be that big so I introduced UDP_FRAME_SIZE_MAX
+ for that transport.
+
+2017-02-27 Christine Caulfield <ccaulfie@redhat.com>
+
+ main: Don't ask libqb to handle segv, it doesn't work
+ segv should be handled by corosync, libqb is not the
+ place to be handling emergency signals.
+
+ This currently requires the head of libqb git tree to
+ generate a blackbox & coredump in the event of a segfault,
+ but it's better than the write() spin that currently happens.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-02-24 Jan Friesse <jfriesse@redhat.com>
+
+ Logsys: Change logsys syslog_priority priority
+ LibQB adds default "*" syslog filter so we have to set syslog_priority
+ as low as possible so filters applied later in
+ _logsys_config_apply_per_file takes effect.
+
+2017-02-24 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ knet: improve logging messages by adding knet subsystem
+
+2017-02-17 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Add abort_on_error option
+
+2017-02-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Add min rtt and print stats every alarm
+
+2017-02-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpghum: Add Round Trip Time (RTT) reporting
+
+2017-02-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ knet: Change nodeids to knet_node_id_t for new knet compatibility
+ after some feedback on github, people prefers to have the option
+ to support up to 64K node_id's.
+
+ libknet added knet_node_id_t to mask the size and type, currently
+ set to uint16_t.
+
+2017-02-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Fix MTU sizes & allow transport config in corosync.conf
+ Corosync layers don't need to know the knet MTU size - this way
+ corosync fragments buffers only when they get larger than the
+ KNET buffer size (64K) and knet fragments below that based on
+ the actual MTU and transport considerations.
+
+ It is also now possible to configure knet to use UDP or SCTP
+ transports in corosync.conf. This is currently done per-link
+ so if you have more than 1 link you need several interface{}
+ stanzas inside totem{} to make it use other than the default
+ of UDP. if it's useful I might add the option of a global
+ default.
+
+2017-02-11 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ knet: PMTUd data_mtu already accounts for IP and knet header overheads
+ provide some more space for data and small (+1% perf boost)
+
+ knet: switch from write to sendto()
+ this provides another 9.6% performance boost on 2 node clusters
+
+2017-02-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Change nodeids to 8 bit for new knet compatibility
+ I've also put an assert in totemknet_member_add() to check
+ for invalid nodeids. Later on we need to fix the rest of the
+ corosync code to only use 8bit nodeids (or force people to use
+ UDPU if they want large nodeids).
+
+2017-01-18 Adrian Vondendriesch <adrian.vondendriesch@credativ.de>
+
+ doc: document watchdog_device parameter
+ Commit 8d8d4a936ab73d8449a3574f969b17a90ef9428e introduced the
+ configuration parameter resources.watchdog_device. This commit
+ introduces the resources section and watchdog_device parameter in
+ corosync.conf.5.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-01-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Fix member_remove to shut down existing links first
+
+2017-01-10 Jan Pokorný <jpokorny@redhat.com>
+
+ Spec: make internal dependencies arch-qualified
+ To prevent any mismatch of this kind for sure.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Spec: drop unneeded dependency
+ corosynclib-devel doesn't need to have a dependency on corosync package.
+
+ It's expected that libraries are still working properly (e.g. indicating
+ errors to their users) when there's no corosync process around in that
+ moment, and from this perspective it doesn't matter whether it is
+ installed at all for some purposes, especially having linkage with them
+ in mind.
+
+ Note that the inverse dependency, main corosync package on corosynclib,
+ is already there (not strictly needed, likely just to enforce package
+ version match -- otherwise RPM's dependency generator will handle this
+ on its own using SONAMEs -- hence the comments to that effect are also
+ added), so breaking this symmetry:
+ - is supposed to be harmless modulo cases that should be fixed to
+ express explicit dependency on corosync's runtime anyway
+ (but only for runtime, i.e., Requires as opposed to BuildRequires)
+ - will effectively enable more lightweight get-build-deps-and-build
+ process for programs linking with corosynclibs (e.g. pacemaker),
+ as corosync package won't need to be installed needlessly
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2017-01-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Reduce default pong count to 2 for faster startup
+ The default PONG_COUNT of 5 made corosync slow to connect to other
+ nodes.
+ This helps.
+
+2016-12-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemknet: Make it compile with kronosnet git master
+
+2016-12-12 Bin Liu <bliu@suse.com>
+
+ Qdevice: fix spell errors in qdevice
+ There are somwe spell errors in qdevice-net-algo-test.c,
+ qnetd-algo-2nodelms.c, qnetd-algo-test.c qnetd-algo-ffsplit.c
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-12-05 Takeshi MIZUTA <miz.take4@gmail.com>
+
+ Remove redundant header file inclusion
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-12-05 Richard B Winters <rik@mmogp.com>
+
+ Remove deprecated doxygen flags
+ Running 'doxygen -u Doxyfile.in' in the source root produces the
+ following results:
+
+ - SYMBOL_CACHE_SIZE at line 301 has become obsolete. This tag
+ has been removed.
+ - SHOW_DIRECTORIES at line 507 has become obsolete. This tag
+ has been removed.
+ - HTML_ALIGN_MEMBERS at line 881 has become obsolete. This tag
+ has been removed.
+ - USE_INLINE_TREES at line 1067 has become obsolete. This tag
+ has been removed.
+ - XML_SCHEMA at line 1311 has become obsolete. This tag has been
+ removed.
+ - XML_DTD at line 1317 has become obsolete. This tag has been
+ removed.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-12-05 yuusuke <yusk.iida@gmail.com>
+
+ upstart: Add softdog module loading example
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-12-05 Bin Liu <bliu@suse.com>
+
+ Totempg: remove duplicate memcpy in mcast_msg func
+ In function mcast_msg of totempg.c, line 923, there is a memcpy call in
+ "else" branch, and also another memcpy out of the "else" branch, while
+ the two calls have the same parameters. It is possibleto remove the memcpy
+ in "else" branch.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-12-01 Takeshi MIZUTA <miz.take4@gmail.com>
+
+ man: Modify man-page according to command usage
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-28 Ferenc Wágner <wferi@niif.hu>
+
+ init: Add doc URIs to the systemd service files
+ These are used by systemctl help.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-28 Ferenc Wágner <wferi@debian.org>
+
+ Fix typo: Destorying -> Destroying
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-28 Takeshi MIZUTA <miz.take4@gmail.com>
+
+ man: Fix typos in man page
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-23 Takeshi MIZUTA <miz.take4@gmail.com>
+
+ totempg: totempg_groups_join return valid error
+ totempg_groups_join() is called by sync_init().
+ sync_init() judge that totempg_groups_join() failed if return code of
+ totempg_groups_join() is -1.
+ Therefore, the return code should return in -1 when
+ totempg_groups_join() fails.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-21 yuusuke <yusk.iida@gmail.com>
+
+ systemd: Delete unnecessary soft_margin
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-17 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Support reload of link parameters
+
+2016-11-15 Takeshi MIZUTA <miz.take4@gmail.com>
+
+ list: Unify the list processing with qb_list func
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-11-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ knet: Allow configuration of more params
+ knet_pmtud_interval &
+ knet_pong_count
+
+2016-11-14 Chrissie Caulfield <ccaulfie@redhat.com>
+
+ knet: Don't lose log messages when knet gets busy (#165)
+
+2016-11-07 Jan Friesse <jfriesse@redhat.com>
+
+ libvotequorum: Bump version
+
+2016-10-27 Jan Friesse <jfriesse@redhat.com>
+
+ list: Replace for_each by safe version where need
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ list: Remove list.h
+ List.h is no longer needed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-10-27 Michael Jones <jonesmz@jonesmz.com>
+
+ list: Replace uses of list.h with qblist.h
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-10-23 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ [build] Fix build on RHEL7.3 latest
+ header inclusion have changed
+
+2016-10-17 HideoYamauchi <renayama19661014@ybb.ne.jp>
+
+ Change a type of NodeID.
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-10-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ vqsim: Fix Makefile.am
+ Make it conditional on BUILD_VQSIM being defined
+
+ configure: Remove RDMA (again)
+ How did that creep back in again?
+
+ vqsim: Add Quorum simulator program
+ vqsim is a small program that allows node up/down/split/join
+ operations to be simulated without the use of an actual cluster.
+
+2016-10-13 Jan Friesse <jfriesse@redhat.com>
+
+ Build: Fail configure if knet is not installed
+ Libknet is now requirement.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-10-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ totem: add totemknet.[ch]
+ it seems git is better at deleting files than adding them
+
+2016-10-12 Michael Jones <jonesmz@jonesmz.com>
+
+ cfg: Prevents use of uninitialized buffer
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-10-11 Christine Caulfield <ccaulfie@redhat.com>
+
+ totem: Add Kronosnet transport.
+ This is a big update that removes RRP & MRP from the codebase
+ and makes knet the default transport for corosync. UDP & UDPU
+ are still (currently) supported but are deprecated. Also crypto
+ and mutiple interfaces are only supported over knet.
+
+ To compile this codebase you will need to install libknet from
+ https://github.com/fabbione/kronosnet
+
+ The corosync.conf(5) man page has been updated with info on the new
+ options. Older config files should still work but many options
+ have changed because of the knet implementation so configs should
+ be checked carefully. In particular any cluster using using RRP
+ over UDP or UDPU will not start as RRP is no longer present. If you
+ need multiple interface support then you should be using the knet transport.
+
+ Knet brings many benefits to the corosync codebase, it provides support
+ for more interfaces than RRP (up to 8), will be more reliable in the event
+ of network outages and allows dynamic reconfiguration of interfaces.
+ It also fixes the ifup/ifdown and 127.0.0.1 binding problems that have
+ plagued corosync/openais from day 1
+
+2016-10-06 HideoYamauchi <renayama19661014@ybb.ne.jp>
+
+ coropase: Set a poll_period value for wd monitor
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-09-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: simplify reconfigure message handling
+ As we now have update_node_expected_votes(), we can use that
+ when receiving a new EXPECTED_VOTES value from another node
+ rather than having our own loop.
+
+ votequorum: Don't update expected_votes display if value is too high
+ If expected_votes was set via the library but the calculation
+ decides it's too high, then an error is correctly returned but
+ the value is still set in the nodes' expected_votes field and
+ turns up in the corosync-quorumtool display.
+
+ This patch separates out the quorum calculation from the updating
+ of expected_votes per node to prevent this from happening.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-09-12 Ferenc Wágner <wferi@niif.hu>
+
+ Fix various typos
+ occured -> occurred
+ parantheses -> parentheses
+ configuraton -> configuration
+ aquire -> acquire
+ retrive -> retrieve
+ prefered -> preferred
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-09-02 Ferenc Wágner <wferi@niif.hu>
+
+ init: corosync and cman aren't system facilities
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ conf: be explicit about the mcast src/dst ports
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-08-30 Jan Friesse <jfriesse@redhat.com>
+
+ Qnetd LMS: Fix two partition use case
+ Solves situation when in 2 node cluster tie-breaker node dies. Because
+ code contains two bugs, other node got NACK instead of ACK.
+
+ - Algo timer is not stack, so calling abort and schedule in timer
+ callback without setting reschedule is noop.
+ - It's needed to check not only what current node thinks about
+ membership, but also what other nodes thinks. If views diverge -> wait.
+
+ Thanks Christine Caulfield <ccaulfie@redhat.com> for fixing the English
+ in the comments somewhat.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-08-12 Christine Caulfield <ccaulfie@redhat.com>
+
+ man: mention qdevice incompatibilites in votequorum.5
+
+2016-08-09 Jan Friesse <jfriesse@redhat.com>
+
+ Man: Fix corosync-qdevice-net-certutil link
+
+2016-08-04 Jan Friesse <jfriesse@redhat.com>
+
+ Spec: Qdevice require same version of corosync
+
+ Config: Flag config uidgid entries
+ Uidgid entries parsed from configuration files now has prefix
+ (uidgid.config.) so they are distinguishable from dynamically added
+ entries. Entries added from config file are pruned on reload if no
+ longer exists in config file (dynamic one stays unaffected). Also whole
+ uidgid.config. prefix is made read only.
+
+ This make PCMK work again after configuration reload is called.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-08-04 Bin Liu <bliu@suse.com>
+
+ cts: Make it run with pacemaker-1.13+
+ There are changes in pacemaker-cts which corosync-testagents denpends
+ on. With these changes, corosync-testagents can not run. This patch
+ fixes the issues, and makes corosync-testagents run.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-08-01 HideoYamauchi <renayama19661014@ybb.ne.jp>
+
+ Low: totemsrp: Addition of the log.
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-07-12 Christine Caulfield <ccaulfie@redhat.com>
+
+ qdevice: some more small man page fixes
+ including mentioning corosync-qdevice(5) on the
+ votequorum(5) and corosync.conf(5) pages.
+
+ Thanks to Jan Pokorný for reporting these.
+
+2016-07-07 Christine Caulfield <ccaulfie@redhat.com>
+
+ qdevice: Fix 'tie_breaker' in man page
+ the tie_breaker option was incorrectly listed as
+ tie-breaker on the man page.
+
+2016-06-30 Jan Friesse <jfriesse@redhat.com>
+
+ Qdevices: Include required files in tarball
+
+ Qdevice: Include man pages in tarball
+
+ tmpfiles.d: Install only when required
+
+2016-06-30 Christine Caulfield <ccaulfie@redhat.com>
+
+ Qdevice: Englishify man pages
+
+2016-06-29 Jan Friesse <jfriesse@redhat.com>
+
+ Qdevice: Add corosync-qdevice man page
+
+ Qdevice: Add more man pages
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ Qdevice: Fallback mkdir of /var/run sundirectory
+
+ Qdevice: Enhance delay before reconnect
+
+ Qdevice: Handle /var/run on tmpfs
+
+ Qdevice: Reconnect on algo or tb differs error
+
+ qdevice: Add qdevice-tool and qnetd-tool man pages
+
+ Qdevice: Make ffsplit algorithm default
+
+ Qdevice: Add sysconfig example
+
+ Fix few bugs found by coverity
+
+ Qdevice: Fix errors found by coverity
+
+ Qnetd: Execute qnetd as non root user
+
+ Qdevice: Adjust path to final location
+
+ Qdevice: Add qnetd configure option
+ Qnetd is no longer build as a part of --qneable-qdevices. Instead
+ --enable-qnetd is used.
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ quorum: revert patch that adds qdevice (node 0) to quorum callback
+ Revert patch 9f54f0a1fad7dad42c55562a50dfb9d773e6a660 as it causes
+ more troubles than it solves. Code that uses the quorum nodelist
+ to get a list of actual nodes in the cluster for communication
+ break using this as well as the display from corosync-quorumtool
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ Qdevice-net: Make duplicate node id err non-fatal
+ It can happen because qnetd not yet handled disconnect of client.
+
+ Qnetd: ffsplit: Add no active clients heuristic
+ On 50:50 split, ffsplit algorithm now prefers partition with
+ higher number of active clients. Tie-breaker is used only if both
+ partitions have same number of active clients.
+
+ Qdevice: Allow master_wins
+
+ Qnetd: ffsplit: Enhance ffsplit
+ 50:50 split algorithm now works in following way:
+ - On client configuration change, membership change or disconnect wait
+ till membership is stable (= all client configuration node list are
+ equal, and all partitions has equal information).
+ - Choose best partition >= 50%
+ - If no such partition exists, send NACK to all clients
+ - Send NACK to all clients who should receive NACK
+ - After all clients who should receive NACK confirm vote reception, send
+ ACK to all clients who should get ACK
+
+ This ensures that there are never two partitions with ACK and it has
+ much better behavior than previous version, because if tie-breaker
+ partition is not connected, other partition gets ACK.
+
+ Qdevice: Send ring id in more messages
+ To prevent receiving vote from old membership ring id is sent to server
+ during init and replied back to client in every node list,
+ ask for vote reply and vote info messages.
+
+ Qdevice: Remove unused variable
+
+ Qdevice: Wait for ring id before executing model
+
+ Qnetd: Make sure all header files are in final tar
+
+ Qdevice: Add initial version of ffsplit
+ For now it's doing same job as atb.
+
+ Qnetd: Return errors in test algorithm
+
+ Qnetd: Implement cluster algorithm data
+
+ Qdevice: Fix qdevice-net-certutil quickstart
+ Last part (import p12 files on other nodes) were not implemented.
+
+ Qnetd: Split cluster-list
+
+ Qnetd: Store result vote of ask_for_vote correctly
+ Previously unitialized vote was stored.
+
+ Qdevice: Correct API comments
+ Also after votequorum node list is received and qnetd is connected,
+ default vote is changed to WAIT_FOR_REPLY. This make much more sense
+ because it ensures qdevice doesn't vote with new ring id until qnetd
+ sends reply.
+
+ Qdevice: Add expected votes notify callback API
+
+ Qdevice: Do not call cmap_dispatch in sync
+ When corosync is during sync operation cmap_dispatch blocks.
+
+ Qdevice: Add advanced settings
+ All previously defined defaults are now configurable via -S option.
+
+ qnetd: Add warning to test algorithm
+
+ Qnetd: Add advanced settings
+ All previously defined defaults are now configurable via -S option.
+
+ qdevice: Ensure to exit if ipc socket is closed
+ When ipc socket was closed before poll and new connection got same fd as
+ original IPC socket, shutdown didn't work. Solution is to check if IPC
+ socket is active during poll array create.
+
+ Qdevice: Add IPC clients
+
+ qnetd: Add support for IPC list command
+
+ qdevice: Make sure qdevice exists on corosync exit
+
+ Add qdevice into spec file
+
+ Make sure all qdevice files are packaged
+
+ Split qnetd certutil to qnetd and qdevice-net part
+
+ Qnetd: Add local IPC
+ Basic commands shutdown and status are implemented.
+
+ Qdevice: Quote str func compatible with simple_lex
+
+ Qdevice: Improve simple lex and add unit test
+ Simple lex now support backslashes and quotes. Behavior is
+ similar to shell.
+
+ Qdevice: Support for IPC status cmd in net model
+
+ qdevice certutil: Increase default cert validity
+
+ Qnetd: Don't fall if TLS is disabled
+
+ Qnetd: Log client in IP address:port format
+
+ Qdevice: Don't abrt if IPC connect isn't accepted
+ Also sending buffer is increased from testing value 2 to 1024.
+
+ Qdevice: Implement status command
+
+ Qdevice: Allow compiler warn about unhandled case
+ Remove default case where switch selection is made on top of enum value.
+
+ Qdevice: Add format macro for nodeid, ring, ...
+
+ qdevice: Properly free IPC data on exit
+
+ qdevice: Implement shutdown command
+
+ qdevice: Add dynar prepend
+
+ qdevice: Sending error (output) in IPC
+
+ qnetd: Fix logging function va_arg handling
+
+ qdevice: Add vcatf to dynar-str
+
+ qdevice: Fix cluster-list test
+
+ qdevice: Add functions to manipulate dynar string
+
+ qdevice: Add public prealloc function to dynar
+
+ qdevice: Make simple-lex locale independent
+ Simple-lex is going to be used in protocol so it's not good idea to
+ depend on locale.
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ quorum: Return qdevice nodeid in the quorum callbacks (if active).
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qdevice: Improve socket based IPC
+
+ qnetd: Factorize qnetd-poll-array to generic unit
+
+ qdevice: Add preliminary version of IPC
+
+ qdevice: Add qdevice service scripts
+ Also fix qnetd systemd service.
+
+ qdevice: Remove compiler warning
+
+ qdevice: Unregister votequorum tracking on exit
+
+ qdevice: Add support for daemonize
+ Also local unix socket is now created. In future this is going to be
+ used for qdevice-tool, for now it's used only for handling SIGINT and
+ SIGTERM.
+
+ qdevice-net: Add option to force ip version
+
+ qnetd: Add dead peer (client) detection
+
+ qdevice timer-list: Add reschedule operation
+
+ qdevice: Wait a while before reconnect
+ It's viable to give qnetd a little time before client tries reconnect.
+
+ qnetd: Replace err by qnetd_log on some places
+ err should be used only before qnetd log is fully initialized.
+
+ qnetd: Validate tie-breaker, algo and node dup
+ If new client request tie-breaker or algo which differes from rest of
+ cluster, error message is sent back. Also it's checked if node is not
+ duplicate by comparing node id.
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qdevice-lms: improvements to LMS algorithm
+ Use the new timers to get better response from LMS when the network
+ splits, this also closes a race where the remote side could go inquorate
+ before we confirmed the vote.
+
+ Add client-side (qdevice-net) code to cope with a detached qnetd if we
+ are quorate and have wait_for_all enabled. THat situation will now
+ keep quorum.
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qdevice: Allow delete timer withing it's callback
+
+ qdevice: Force send of heartbeat
+ Previously client was not force to use heartbeat. Because we have to be
+ able to detect dead client in qnetd, heartbeat setting is now forced.
+ Insted of set_option message, heartbeat is force to exists in init
+ message. This also means that
+ QDEVICE_NET_INSTANCE_STATE_WAITING_SET_OPTION_REPLY can be removed and
+ client is considered as connected after init_reply is received. So
+ currently, set_option is not used (but implementation of these two
+ messages still exists).
+
+ qdevice: Improve timer-list
+ Timer-list is now more efficient and as a side-effect it's possible to
+ add/delete timer in callback.
+
+ qnetd: Add support for qnetd algo timer
+ Algo timer is simplified timer designed for qnetd algorithm. Instead of
+ full timer only one can exists per client. Workflow is:
+ - In one of algorithm callbacks qnetd_client_algo_timer_schedule is
+ called
+ - On timeout .timer_callback is called (for example
+ qnetd_algo_test_timer_callback). It's possible to set send_vote and
+ result_vote to send vote info to client
+ - It's possible to discard timer by calling
+ qnetd_client_algo_timer_abort
+
+ Timer is automatically deleted on client disconnect.
+
+ To make all this possible, qnetd main loop now has support for
+ timer-list (main_timer_list). To be able to handle error and disconnect
+ client from timer callback, client has schedule_disconnect. If this is
+ set to 1, client is disconnected on current call of poll loop.
+
+ qdevice-net: Allow connect to choose lists to send
+ Also disconnect and connect can now affect vote timer.
+
+ qnetd-algo-utils: Remove goto
+
+ qdevice-net: Support tls required and fix leaks
+
+ qdevice tlv: Remove default/return code redundancy
+
+ qdevice-net: Free send buffer on error (leak)
+
+ qnetd: Return lock file fd
+
+ qdevice-net: Ensure to free non blocking client
+
+ Refactor qdevice-net
+ - corosync-device-net as binary is gone. Replacement is
+ corosync-qdevice
+ - corosync-qdevice has support for multiple models (only net is
+ currently implemented)
+ - Completelly redesign qdevice-net main loop.
+ - Connect is non blocking
+ - Cmap and Votequorum events are handled even before connect to
+ qnetd. Algorithm gets send_node_list and vote set so it's not needed
+ to check connection status and also vote_timer is running and voting
+ until something changes (configuration or votequorum node list)
+ - If connect fails, algorithm_disconnected with new reason
+ CANT_CONNECT_TO_THE_SERVER is called
+ - Logging for qdevice is based on libqb logging functions. Also
+ logging configuration from corosync.conf is now used and dynamic
+ changes of configuration are handled.
+ - Added qdevice_net_algorithm_config_node_list_changed
+ - Changed qdevice_net_algorithm_votequorum_node_list_notify in respect
+ of adding send_node_list so it's similar to other functions.
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Allow wait_for_all with qdevice
+
+ qnetd: Use ring_id, not client->last_ring_id in algorithms
+ ring_id should only be copied into the client structure after the
+ algorithm has run (so the last one is also available), so fix the
+ algorithms to use the passed-in ring_id where available.
+
+ Also tidy some debug logging in algo-lms
+
+ qnetd-algo: Fix list traversal corruption when freeing partitions.
+ TAILQ_* doesn't have a safe iterator for use when freeing entries, so the
+ only safe way of doing it (without assuming implementation) is to
+ restart the iterator after freeing the structure.
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ Improve qdevice
+ - Add support for cmap node list configuration change
+ - Add client side algorithms
+ - Check if currently received ring id in membership message
+ equals to last sent ring id
+ - Send config node list only if config node list really changes and not
+ after every reload
+ - Add tlv_ring_id_eq (replacing qnetd_algo_rings_eq) so it's usable in
+ client
+ - Move debug logs from algo-test into qnetd-log-debug.c and call them in
+ proper places (= logs are now algorithm independent)
+ - Fix memory leak in msg
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qnetd-algo: Refactor common routines
+ Move several commonly used routines into their own
+ qnetd-algo-utils.[ch] files and change over to using
+ the ring_id held in the client structure rather than
+ managint it ourself.
+
+ qnetd: Add ring_id to client structure
+
+ algo-lms: some tidying
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qnetd: Make proper support for ipv4/6
+ - Add option for forcing ip version 4 or 6
+ - Choose new default port. It's now 5403. Exactly one less than used by
+ corosync.
+ - Fix compiler warning
+
+ qnetd: Add init script
+
+ qnetd: Refactor
+
+ qnetd: Really daemonize
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qdevice: qnetd_algo_lms: Fix nominated tie_breaker node
+
+ qnetd: lms: Add support for other tie_breaker options.
+
+ qnetd: Add tie_breaker options to 2nodelms
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qdevice: Add tie_breaker option
+ Tie-breaker can be used in algorithm to decide if algorithm should
+ prefer highest, lowest or some concrete node id.
+
+ qnet: Add TLV_VOTE_NO_CHANGE
+ State used for informative only callbacks (quorum node list) and
+ possibly informative only callbacks (configuration node list). Client
+ doesn't change cast vote timer state.
+
+ qnet: Migrate to new votequorum API
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qdevice: 2nodelms: don't split-brain when the primary node comes back.
+
+ qnetd: lms: Fix search for node/ring_id check
+ We were looking for us in other node lists, rather than
+ others in our nodelist.
+
+ Also, remove debug print in votequorum.c
+
+ votequorum: Fix up quorum/nodelist callbacks
+ This patch tidies the two state change callbacks and explains them
+ in the man page:
+
+ The difference between votequorum_nodelist_notification_t and
+ votequorum_quorum_notification_t is subtle but important.
+ The 'nodelist' callback is sent at the start of a cluster state
+ transition and contains the new ring_id and only the list of
+ nodes that are included in the sync state - ie only active nodes. No
+ quorum information is included this callback because it is not
+ available at that time.
+
+ The 'quorum' callback is sent after the cluster state transition has
+ completed and does contain quorum information.
+ In addition, the nodelist contains a list of all nodes known to
+ votequorum (whether up or down) and their state as well
+ as information about the quorum device attached (if any). quorum
+ callbacks will not be sent for qdevice up and down
+ events unless they affect quorum.
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qnetd: Some small improvements
+
+ qnetd: Improve logging
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: split callbacks into nodelist and quorum
+ This split is needed for qdevice, so that it gets the ring_id and
+ nodelist as part of the sync process and not afterwards - when quorum
+ has been calculated.
+
+ As this is and unsupported API I'm not too worried about breaking
+ existing code - all the clients I know of are using the quorum API
+ anyway as they should be.
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qdevice-net: Copy correct ring id in votequorum cb
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qnetd: Add LMS algorithm
+ Only lightly tested so far
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ Improve qdevice-net
+ - Add cast vote timer (qdevice-net now really votes)
+ - In sync phase it's impossible retreive cmap config version so it's no
+ longer sent in membership node list
+ - Refactor qdevice-net
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: make corosync_quorumtool show full ring_id
+ Add the ring leader node_id to corosync_quorumtool. This is
+ only shown when votequorum is active
+
+ qnetd: move 2nodelms algo files to the right directory
+ No, I don't know how that happened.
+
+ qdevice-net: add a 2node Last Man Standing algorithm Signed-off-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qdevice-net: Implement missing messages handlers
+
+ qnetd-certutil: Fix master node variable
+
+ corosync-qnetd-certutil: Delete tabs
+
+ corosync-qnetd-certutil: Delete dev comment
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qnetd: Move algorithms_register into qnetd-algorithms.c
+ and fix qnetd_algorithm_vote_info_reply_received
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ corosync-qnetd-certutl: Improvements
+ - Location of certificates is now correctly set depending on operation
+ (qnetd/node)
+ - Added quick start mode
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ qnetd: Make it easier to add algorithms
+ Put the algorithms into an array of structure pointers
+ (a bit like corosync services) so we can easily add more
+ without having huge switch statements.
+
+ I haven't added any code to the client end that parses the
+ name into the enum. Yet.
+
+ Don't attempt to free a string we haven't been given.
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ qnetd: Improvements
+ - Move adding client to cluster to init phase instead of preinit
+ - Implement missing ask for vote and vote info messages
+ - Fix cluster name memory leak
+ - Refactor unexpected message handler to one generic function
+ - Move qnetd_client_send_err to new file
+ - Add qnetd_client_send_vote_info
+
+ qnetd: Add skel of ffsplit algo and cluster list
+
+ Qnetd improvements
+ - Complete config and membership node list callbacks
+ - Add client disconnect callback
+ - Always send msg_seq_num in node list
+ - Store config and last membership node list
+
+ Qnet improvements
+ - Support for membership node list
+ - Initial support for "pluggable" algorithms
+
+ Qdevices-net improvements
+ - Implement node list
+ - Implement send buffer list
+ - Add nodelist message type
+ - Add ring_id, config_version, data_center_id, node_state, node_info,
+ node_list_type and vote msg options
+
+2016-06-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Make display of qdevice more intuitive.
+ corosync-quorumtool displays the votes of the qdevice whether
+ or not it is active. This is confusing because if it is not active
+ then the display looks like there is a vote being contributed to
+ quorum when there is not.
+
+ This patch displays 0 for qdevice votes if the device is present
+ (but inactive) and adds the votes after the name. If the device is
+ contributing votes then they are displayed as normal.
+
+2016-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ Improve qnet
+
+ Initial commit of qdevice net
+
+ config: get_cluster_mcast_addr error is not fatal
+
+2016-06-27 bliu <bliu@suse.com>
+
+ low:typo fix in sam.h
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-06-22 Ferenc Wágner <wferi@niif.hu>
+
+ Fix typo: Diabled -> disabled
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: alocated -> allocated
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: retrive -> retrieve
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: aquire -> acquire
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: Uknown -> Unknown
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: interger -> integer
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix typo: funtion -> function
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cmap_track_add.3.in: fix typo: bellow -> below
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-05-27 Christine Caulfield <ccaulfie@redhat.com>
+
+ logconfig: Fix logging reload disabling logfiles
+ In my previous logconfig patch, adding a subsys so the
+ logging stanzas could disable logging to a file, because
+ the subsys closed the file used by the main logging.
+
+ This patch only applies defaults to higher-level logging and
+ non-deprecated keys.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-05-27 yuusuke <yusk.iida@gmail.com>
+
+ wd: Warn if values are out of range
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ parser: WD Read type correctly from corosync.conf
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-05-24 Christine Caulfield <ccaulfie@redhat.com>
+
+ Add some more RO keys
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Reapply config defaults corosync.conf reload
+ There were several places where defaults were not restored
+ if the keys were removed from corosync.conf and the file reloaded.
+
+ This patch adds those back so that reloading corosync.conf
+ has the expected effect when keys are deleted.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-05-17 Jan Friesse <jfriesse@redhat.com>
+
+ schedwrk: Cleanup and make it work on PPC BE
+ Schedwrk is passing hdb handle (64-bit) to
+ totempg_callback_token_create as a context. Context is defined to be
+ pointer, so there is conversion function which stores 64-bit hdb_handle
+ into pointer. Potentially, pointer can be 32-bit. This means, check
+ part of hdb is discarded (and have to get special no_check value in
+ schedwrk_do) later. This works quite well on 32-bit Little-Endian
+ system. Sadly on Big-Endian system, check partition of hdb is stored
+ instead of value. Result is error of hdb_handle_get call.
+
+ Proposed solution is to pass handle pointer to
+ totempg_callback_token_create as context. This means full hdb (check +
+ value) can be used in schedwrk_do (easier detection of memory
+ corruption).
+
+ Main reason for this patch is to remove usage of pointer as integer
+ value.
+
+ Small drawback of given solution is that handle pointer must be memory
+ allocated on heap or static memory, making API more bug-prone. Current
+ usage of schedwrk API across corosync always use memory in .text
+ section (safe), so it's not a problem.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cmapctl: Handle corosync errors in print_key func
+ print_key handles only CS_ERR_TRY_AGAIN error. If different error is
+ returned, print_key loops forewer.
+
+ Solution is to handle all errors.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-05-12 Michael Jones <jonesmz@jonesmz.com>
+
+ Adds doxygen stubs to include directory
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-05-03 Michael Jones <jonesmz@jonesmz.com>
+
+ Add clang-format configuration file
+ This .clang-format file is written for clang-format version 3.7.1
+
+ I've attempted to set the options for clang-format so that the
+ difference between the current code, and the result of the clang format
+ call is as small as possible.
+
+ Unfortunately, clang-format doesn't yet have the ability to handle every
+ single possible formatting option, so it's not perfect yet.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-05-03 Valentin Vidic <Valentin.Vidic@CARNet.hr>
+
+ wd: make watchdog device configurable
+ Add configuration option resources.watchdog_device allowing runtime
+ selection of watchdog device. Useful for newer servers having more
+ than one watchdog available (IPMI and iTCO).
+
+ Special value "off" disables watchdog in configuration rather than
+ just using build options. Useful when watchdog device is needed
+ elsewhere (SBD cluster stonith service).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-05-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ logging: Use our own version of basename
+ basename() function has some potentially odd issues on
+ other platforms.
+
+ So, to be safe, here's an internal version.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-04-26 Christine Caulfield <ccaulfie@redhat.com>
+
+ logsys: fix TOTEM logging when corosync built out of tree
+ If corosync is built out-of-tree (passing --srcdir to configure) then
+ TOTEM logging doesn't print anything.
+
+ This is caused by the source filenames (from __FILE__ at compilation
+ time) having the configured path in them - in this example
+ ../corosync/exec/totemudp.c etc. The list of totem source filenames
+ passed to libqb logging facility only has the basenames so the filenames
+ never match up as libqb does an exact string match.
+
+ I looked into fixing this in libqb but it causes a regression. We can't
+ simply basename() __FILE__ at the point of calling log_printf as it's i
+ common also to use __FILE__ to generate the logging source, and
+ using basename() on both removes the distinction between similarly named
+ files from different directories which could be a requirement.
+
+2016-04-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ parser: Make config file parser more hierarchy
+ pass 'state' down the stack so that the state of the
+ hierarchy doesn't get lost when there are unexpected items
+ in the config hierarchy.
+
+ Don't bother setting 'state' on SECTION_END as there's no point
+ now we're going back up the stack.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-04-07 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: Explicitly pass IP version
+ If resolver was set to prefer IPv6 (almost always) and interface section
+ was not defined (almost all config files created by pcs), IP version was
+ set to mcast_addr.family. Because mcast_addr.family was unset (reset to
+ zero), IPv6 address was returned causing failure in totemsrp.
+ Solution is to pass correct IP version stored in
+ totem_config->ip_version.
+
+ Patch also simplifies get_cluster_mcast_addr. It was using mix of
+ explicitly passed IP version and bindnet IP version.
+
+ Also return value of get_cluster_mcast_addr is now properly checked.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2016-02-24 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Handle ipc error in cpg_zcb_alloc/free
+ - Error returned by coroipcc_msg_send_reply_receive is now correctly
+ handled.
+ - If munmap fails, error is set to proper value and handle is put back
+ into handle_db
+
+2016-02-24 Athira Rajeev <atrajeev@linux.vnet.ibm.com>
+
+ cpg: Memory not unmapped in cpg_zcb_free
+ Function in cpg_zcb_alloc (from code lib/cpg.c) creates
+ /dev/shm/corosync_zerocopy-XXXXX and does mmap
+
+ The memory is allocated by corosync service (function zcb_alloc
+ in exec/cpg.c) also and both shares this memory via mmap
+ (uses MAP_SHARED in mmap call)
+
+ Corosync calls unlink which deletes the file from /dev/shm while
+ closing the file descriptor, but unmap is not happening correctly
+ while calling cpg_zcb_free.
+
+ So:
+ - still the deleted file holds the memory
+ - As munmap is not happening correctly, the number of mappings per
+ process gets exceeded and corosync dies with ENOMEM
+
+ From gdb, the size passed to munmap appears to be zero and address
+ looks wrong. Also in the code return code of munmap is not checked.
+
+ The patch adds check for:
+ - munmap return code and getting correct address for munmap
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-02-10 Jan Friesse <jfriesse@redhat.com>
+
+ totempg: Fix memory leak
+ Previously there were two free lists. One for operational and one for
+ transitional state. Because every node starts in transitional state and
+ always ends in the operational state, assembly was always put to normal
+ state free list and never in transitional free list, so new assembly
+ structure was always allocated after new node connected.
+
+ Solution is to have only one free list.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Steven Dake <stdake@cisco.com>
+
+2016-01-27 Richard B Winters <rik@mmogp.com>
+
+ Fix spelling error in binary corosync
+ - Changed paramater to parameter in exec/logcconfig.c
+
+ Change-Id: I8a24b0ef5c6621dc6c19d7decbdfe7a255afd10d
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix spelling error in binary corosync-cfgtool
+ - Changed reenable to re-enable in tools/corosync-cfgtool.c
+
+ Change-Id: I0457bf3040a454a44f0d8343dd2cd8bf8fad16e0
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix spelling error in manual sam_overview 8
+ - Changed usefull to useful
+
+ Change-Id: I2d7872b21e889202cd2b7752db4c76f18fffa95d
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-01-27 Jan Friesse <jfriesse@redhat.com>
+
+ cmap_keys.8: Fix spelling and grammar errors
+ - "There are informations" changed to "There is information"
+ - Other occurrences of informations changed to information
+
+ Original patch was created by Richard B Winters <rik@mmogp.com>, so
+ thanks for it.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2016-01-27 Richard B Winters <rik@mmogp.com>
+
+ Fix spelling errors in manual corosync.conf 5
+ - dont to don't
+ - overriden to overridden
+ - informations to information
+
+ Change-Id: If6644694d750c30ba9f5f43b4eb852485613d64a
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix grammer error in manual votequorum_trackstart
+ "allows to" was updated to read "allows one to"
+
+ - With a subject it's grammatically correct.
+
+ Change-Id: I9559e31c780e211b651744c6eaa056ce8d4c3db1
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Add section in manual title for cpg_zcb_free 3
+ Change-Id: Ib80face38dce0345e649297d16cf8a63c5b0e8c1
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Add section in manual title for cpg_zcb_alloc 3
+ Change-Id: I8c5d6af915203533c80e4eaa574e305a46d74815
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix incorrect spelling of retrieve from retreive
+ Corrected the spelling of retrieve, where it was spelled as retreive.
+
+ - There were two cases of this mispelling; one
+ upper-case and one lower-case
+
+ Change-Id: Ic97fd210d8d3ae7e568e5a2e5d97c6220d2ff628
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2016-01-05 Jan Friesse <jfriesse@redhat.com>
+
+ Update corosync.spec source link
+
+ Update gitignore files
+
+ Remove all links to old ML
+
+2016-01-04 Ruben Kerkhof <ruben@rubenkerkhof.com>
+
+ totemsrp: Fix clang warning (tautological compare)
+ gsfrom is always >= 0
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: Make location of .pc overrideable
+ FreeBSD stores them in /usr/local/libdata/pkgconfig
+
+ This allows us to remove some local hooks in the process.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove a few unused variables and functions
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: We don't need no C++ compiler
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: Remove deprecated AC_PROG_LIBTOOL
+ AC_PROG_LIBTOOL is deprecated version of LT_INIT. Because LT_INIT is
+ called we can remove it.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: Remove AC_PROG_RANLIB
+ It was obsoleted by libtool and we don't use ranlib standalone.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: make foreign apply to all Makefiles
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove unused, obsolete check
+ From autoconf info Obsolete Macros:
+
+ "These days, it is portable to assume C89, and that signal
+ handlers return void, without needing to use this macro or RETSIGTYPE."
+
+ And we indeed assume so.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-12-16 Ruben Kerkhof <ruben@rubenkerkhof.com>
+
+ Fix detection of qb_log_thread_priority_set
+ This fixes detection of libqb function qb_log_thread_priority_set
+ if it was installed outside of the standard library search
+ path, in my case /opt.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cpghum: Fix type of recv_crc
+ Fixes build on FreeBSD which doesn't have ulong
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Check for fdatasync
+ If we don't have it, fall back to fsync
+
+ Fixes the build on FreeBSD
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix detection of warning flags for clang
+ Using ./configure CC=clang, the following flags are detected
+ as supported:
+
+ checking whether clang supports "-Wgnu89-inline"... yes
+ checking whether clang supports "-Wno-strict-aliasing"... yes
+
+ Which results in a lot of warnings during make:
+
+ warning: unknown warning option '-Wunsigned-char'
+ [-Wunknown-warning-option]
+ warning: unknown warning option '-Wgnu89-inline'
+ [-Wunknown-warning-option]
+
+ Clang doesn't support these flags, but the compile check returns a
+ warning, not an error:
+
+ configure:16649: checking whether clang supports "-Wunsigned-char"
+ configure:16662: clang -E -Wunsigned-char conftest.c
+ warning: unknown warning option '-Wunsigned-char'
+ [-Wunknown-warning-option]
+ 1 warning generated.
+ configure:16662: $? = 0
+ configure:16663: result: yes
+
+ Use -Wunknown-warning-option -Werror if supported
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-11-27 Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+
+ quorum: Display node id as unsigned int.
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-11-23 Jan Friesse <jfriesse@redhat.com>
+
+ cts: InitClusterManager is now BootCluster
+ This is forward port of flatiron-cts
+ fbe1721e676eafd1f25f470234b646904f54e3f3.
+
+ Thanks to bliu <bliu@suse.com> for pointing out.
+
+2015-11-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemudp: Move udp bind() so that multicast works with IPv6
+ It seems that the IPv6 multicast parameters only take effect when bind()
+ is called, so I've moved the mcast recv socket bind() to the bottom of
+ totemudp_build_sockets_ip().
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-11-13 Hideo Yamauchi <renayama19661014@ybb.ne.jp>
+
+ cfgtool: Display nodeid as unsigned int
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-10-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Don't send multiple callbacks when nodes join
+ This patch aligns the votequorum callbacks so that they are
+ the same as the quorum ones. Previously it was quite common
+ for votequorum to send one callback for every node in the cluster
+ when a single new node joined (because it sent one for every
+ nodeinfo message it received).
+
+ This new system makes much more sense in itself and being
+ consistent with the internal quorum is also an advantage!
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-09-18 Ferenc Wágner <wferi@niif.hu>
+
+ man: Add synopsis for cpg_zcb_alloc and free
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man html index: Update index
+ - add link to cmap_keys(8)
+ - remove link to cpg_groups_get(3)
+ - add missing cpg_* and votequorum_qdevice_* functions
+ - corosync-fplay has already been removed by ab32894
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-08-28 Ferenc Wágner <wferi@niif.hu>
+
+ votequorum: Make sure cs_error_t is defined
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-08-26 Ferenc Wágner <wferi@niif.hu>
+
+ Close Doxygen group in include/corosync/cmap.h
+ This avoids warning: end of file while inside a group.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Doxygen fix for cmap_iter_next()
+ Remove the extra cmap_ prefix of the iter_handle parameter.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure: Correct help entry for logdir
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totmesrp: Fix typo in log message
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ configure: typo in include
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man page: Correct option letter for DBus
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-07-14 Christine Caulfield <ccaulfie@redhat.com>
+
+ wd: fix setting of watchdog timeouts
+ Fix setting of initial watchdog timeout, and also changing of timeout.
+
+ Remove redundant starting of timer in exec_init_fn
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2015-07-02 Jason HU <huzhijiang@gmail.com>
+
+ CFG: Prevent CFG orignating messages during SYNC
+ During SYNC, corosync-cfgtool -R/-H commands can pass through IPC then
+ send totem messages. This may corrupts
+ assembly_list_inuse/assembly_list_free if those messages are recedived
+ after SYNC is done.
+
+ The solution is marking related CFG APIs as
+ CS_LIB_FLOW_CONTROL_REQUIRED.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-06-22 Jan Friesse <jfriesse@redhat.com>
+
+ Don't link with libz when not needed
+ Commit 8cc8e513633a1a8b12c416e32fb5362fcf4d65dd added check for libz
+ resulting in linking with lib z for all libraries. This is not expected
+ behavior. Patch solves it by making defining automake conditional so
+ cpghum is linked only if libz is available and LIBS variable is not
+ modified at all.
+
+ Log: Add logrotate configuration file
+ In cman era corosync was depending on logrotate file distributed by
+ cman. It's good idea to logrotate also on systems without cman (new
+ clusters).
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add note about rrp active beeing unsupported
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2015-06-18 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Fix auto_tie_breaker behaviour in odd-sized clusters
+ auto_tie_breaker can behave incorrectly in the case of a cluster
+ with an odd number of nodes. It's possible for a partition to
+ have quorum while the other side has the ATB node, and both will
+ continue working. (Of course in a properly configured cluster one side
+ will be fenced but that becomes an indeterminate race .. just what ATB
+ is supposed to avoid).
+
+ This patch prevents ATB from running in a partition if the 'other'
+ partition might have quorum, and also mandates the use of wait_for_all
+ in clusters with an odd number of nodes so that a quorate partition
+ cannot start services or fence an existing partition with the tie
+ breaker node.
+
+ Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-06-12 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemsrp: Improve logging of left/down nodes
+ This patch from Hideo Yamauchi improves the logging of
+ whether nodes leave the cluster cleanly or uncleanly,
+ making it easier to determine if a node ws shut down
+ by the operator. There is also the possibility that a
+ LEAVE message could get missed (due to the node being
+ in flush state) so this can also make that clearer.
+
+ The modifications are as follows.
+
+ Change 1) I added the list which maintained LEAVE node to totemsrp.
+ Change 2) I added registration, a search, the handling of to clear LEAVE
+ node.
+ Change 3) I added the output to log.
+ Change 4) I changed an output level of the log.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-04-17 Christine Caulfield <ccaulfie@redhat.com>
+
+ totem: Log a message if JOIN or LEAVE message is ignored
+ As per recent email thread, this patch adds a log message if a JOIN or
+ LEAVE message is discarded while corosync is flushing the receive queue.
+
+ While ignoring a JOIN message is harmless (it will be resent), ignoring
+ a LEAVE message can cause a longer state transition as it is treated as
+ a node crashing rather than leaving gracefully, so the system admin
+ might be confused as to the cause.
+
+ Unfortunately, we can't (at the totemudp level) distinguish between JOIN
+ or LEAVE messages without a lot more protocol-specific code creeping in
+ the lower layer so the message is left ambiguous.
+
+2015-04-10 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Check for duplicate nodeids
+ Having duplicate nodeids in corosync.conf can play havoc with a cluster,
+ so (as suggested by someone on this list) here is some code to check
+ that all nodeids are unique. Even if a nodeid is not specified it will
+ check to be sure that the ID generated from the IP address (ipv4 only)
+ does not clash with one that is provided.
+
+ It logs all non-unique nodeids to syslog, but only the last is reported
+ on the command-line to the user which should be enough to get them to
+ check further. At startup this will cause corosync to fail to start.
+
+2015-03-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ quorum: don't allow quorum_trackstart to be called twice
+ If quorum_trackstart() or votequorum_trackstart() are called twice with
+ CS_TRACK_CHANGES then the client gets added twice to the notifications
+ list effectively corrupting it. Users have reported segfaults in
+ corosync when they did this (by mistake!).
+
+ As there's already a tracking_enabled flag in the private-data, we check
+ that before adding to the list again and return an error if
+ the process is already registered.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-03-10 Jan Friesse <jfriesse@redhat.com>
+
+ Really add cpghum
+
+2015-03-05 Christine Caulfield <ccaulfie@redhat.com>
+
+ cpg: Add support for messages larger than 1Mb
+ If a cpg client sends a message larger than 1Mb (actually slightly
+ less to allow for internal buffers) cpg will now fragment that into
+ several corosync messages before sending it around the ring.
+
+ cpg_mcast_joined() can now return CS_ERR_INTERRUPT which means that the
+ cpg membership was disrupted during the send operation and the message
+ needs to be resent.
+
+ The new API call cpg_max_atomic_msgsize_get() returns the maximum size
+ of a message that will not be fragmented internally.
+
+ New test program cpghum was written to stress test this functionality,
+ it checks message integrity and order of receipt.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-03-05 Andrey N. Groshev <greenx@yandex.ru>
+
+ totemsrp: Format member list log as unsigned int
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-03-02 Christine Caulfield <ccaulfie@redhat.com>
+
+ Don't allow both two_node and auto_tie_breaker in corosync.conf
+ The two_node and auto_tie_breaker options are incompatible as they
+ specify conflicting methods of determining the quorate half of a cluster
+ partition.
+
+ This patch detects this error in corosync.conf, issues a message and
+ disables two_node if auto_tie_breaker is present.
+
+ Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Votequorum: Fix auto_tie_breaker default
+ The default for auto_tie_breaker should be 'lowest' - which is what it
+ was before the extended ATB functionality of auto_tie_breaker_node was
+ added, and what the documentation states.
+
+ However this was broken so that if auto_tie_breaker_node was not
+ specified then auto_tie_breaker itself was ignored. This patch fixes
+ that.
+
+ It also fixes a typo in a comment.
+
+ Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2015-01-21 Jan Friesse <jfriesse@redhat.com>
+
+ Handle adding and removing UDPU members atomically
+ When config file is reloaded with removed UDPU member, internal icmap
+ index of nodelist.node can change. This can result in removal and then
+ adding back node. This, with UDPU alive filtering (where member is by
+ default considered as not a member) makes corosync not sending messages
+ to such members resulting in new membership creation.
+
+ Solution is to properly test which members were really deleted and added
+ (instead of relying on internal and dynamic naming of icmap hash table
+ key name).
+
+ Also trully dynamic add and remove node (via cmap) is now handled by
+ same function so totem_config->interfaces is now updated properly.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2015-01-20 Jan Friesse <jfriesse@redhat.com>
+
+ corosync_ring_id_store: Use safer permissions
+ corosync_ring_id_store should use same (safer) permissions as
+ corosync_ring_id_create_or_load for (eventually) newly created ringid
+ file.
+
+ Credit to Sjerek for finding this problem.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2015-01-15 Jason <huzhijiang@gmail.com>
+
+ totem: Ignore duplicated commit tokens in recovery
+ In active rrp mode, commit tokens are treated as mcast data messages,
+ thus, rrp directly delivers them to srp layer by active_mcast_recv().
+ This will result in duplicated commit tokens being received by srp from
+ different heartbeat links. If node is in recovery state and has already
+ sent out the initial orf token, those duplicated commit tokens will
+ cause message_handler_memb_commit_token() to send initial orf token
+ again! This is wrong because it resets the orf token content in
+ instance->orf_token_retransmit, which breaks the token retransmission
+ state.
+
+ Furthermore, by sending those initial orf tokens again and again,
+ it may lead active_token_recv() to drop some subsequent orf tokens.
+ It is OK for rrp because srp will do token retransmission,
+ but as said above, srp retransmission state has already been broken,
+ so finally we meet a "token lost in recovery state" condition caused
+ by software. If token timeout value is large, then it will takes long
+ time to create a new ring.
+
+ This can be reproduced by having two noded set to active rrp mode, with
+ two heartbeat links. Then with one node always on, let the other one do
+ stop/start again and again. It has a low probability to reproduce.
+ In theory, I think, the more heartbeat links used, the more easily it
+ can be reproduced.
+
+ This problem can be resolved by letting
+ message_handler_memb_commit_token() to ignore duplicated commit tokens
+ in recovery state if node (the ring representation) has already sent
+ out the initial orf token.
+
+ Different from prev take, this version do not depends on stored token
+ data but uses originated_orf_token in totemsrp_instance to remember
+ if initial orf token has been already originated for current membership.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2015-01-14 Jan Friesse <jfriesse@redhat.com>
+
+ Log auto-recovery of ring only once
+ Make sure to log auto-recovery of ring only once. Every
+ MESSAGE_TYPE_RING_TEST_ACTIVATE receive is logged, but with lower
+ priority and more detailed information.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2015-01-05 Jan Friesse <jfriesse@redhat.com>
+
+ Set RR priority by default
+ Experience with larger production clusters showed that setting RR
+ priority for corosync is viable for prevent random fencing, ...
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ automake: Check minimum automake version
+ Corosync needs automake version at least 1.11. Patch adds minimum
+ version check.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-12-08 Jason <huzhijiang@gmail.com>
+
+ Reset timer_problem_decrementer on fault
+ After a heartbeat link's FAULTY and its auto re-enable,
+ active_instance->timer_problem_decrementer did not reset to zero. So in
+ the next timer_function_active_token_expired() round,
+ active_timer_problem_decrementer_start() will not be called. This will
+ result in that the active_instance->counter_problems of this link can
+ not be decreased any more. Cause rrp lose the ability to tolerate
+ network fluctuation.
+
+ This problem can be reproduced by the following sequence:
+ 1) Set RRP in active mode, configure at least 2 heartbeat links.
+ 2) Unplug one link till corosync-cfgtool -s shows it is FAULTY.
+ 3) Re-plug this link then corosync-cfgtool -s shows it is active with
+ no faults.
+ 4) Unplug this link again but quicky re-plug it before it becomes
+ FAULTY.
+ 5) Finally, you can see corosync-cfgtool -s shows it is in
+ "Incrementing problem counter" state despite it currently is physically
+ healthy.
+
+ It can be solved by not forget to reset timer_problem_decrementer to
+ zero in active_timer_problem_decrementer_cancel().
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-11-24 Jan Friesse <jfriesse@redhat.com>
+
+ config: Ensure mcast address/port differs for rrp
+ When using multiple interfaces, it's necessary to use different
+ multicast address/port pair for each interface to make
+ rrp work correctly. This is now checked in parser.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Process broadcast option consistently
+ Broadcast option is global but in config set in interface section. When
+ more interfaces are defined, only broadcast from last section was used.
+
+ Solution is to use broadcast whenever at least one interface use
+ broadcast.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Make sure user doesn't mix IPv6 and IPv4
+ Checking code was there, sadly not correct, so it was possible to enter
+ one bindnet addr as IPv4 and second as IPv6. Fix is trivial.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-10-13 Jan Friesse <jfriesse@redhat.com>
+
+ man page: Improve description of token timeout
+ With introduction of token_coefficient, token timeout defined in
+ configuration file may be no longer reflect real token timeout, what may
+ be confusing.
+
+ Enhanced description hopefully fix that.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Store configuration values used by totem to cmap
+ Some totem configuration values (like token, consensus, ...) are ether
+ computed or default value is used. It's hard to find out, what
+ value is really used.
+
+ Solution is to store values in cmap.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-10-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ manpage: Fix English
+ While I was looking at the above man page changes I thought I'd review
+ the rest of it. So here are some more English fixes for the cmap_keys.8
+ man page
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-10-08 Jan Friesse <jfriesse@redhat.com>
+
+ init: Don't wait for ipc if corosync doesn't start
+ Init script now checks return code of executing corosync command. If it
+ fails, ipc_wait section is skipped, resulting in much faster failure of
+ init script.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2014-10-01 Jan Friesse <jfriesse@redhat.com>
+
+ Adjust MTU for IPv6 correctly
+ MTU for IPv6 is 20 bytes larger then IPv4. This fact was not taken into
+ account so IPv6 packets were larger then MTU resulting in fragmentation.
+
+ Solution is to substract correct IP header size.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-09-06 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ [crypto] fix crypto block rounding/padding calculation
+ libnss is "weird" in this respect as some block sizes are hardcoded,
+ others need to be determined dynamically.
+
+ For AES we need to use the values we know since GetBlockSize would
+ return errors, for 3des (that hopefully nobody is using) the value
+ returned by GetBlockSize is 8, but let's use the call into libnss
+ to avoid possible conflicts with distro patching or older versions.
+
+ Now, given the correct block size, the old calculation simply added
+ block size to the hdr_size. This is not sufficient.
+
+ We use _PAD encryption methods and we need to take that into account.
+
+ _PAD is calculated given the current input buf len and rounded up
+ to block size boundary, then block_size is added.
+
+ Ideally we would do that on a per packet base but current transport
+ infrastructure doesn't allow it yet.
+
+ So round up the hdr_size to double the block_size reported by the
+ cipher.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-08-26 Jan Friesse <jfriesse@redhat.com>
+
+ totemudpu: Send msgs to all members occasionally
+ To follow spec it's needed to send messages to all nodes (not only
+ active members) from time to time to detect merge.
+
+ This is needed in situations when totemsrp merge timer isn't running
+ (because there is enough messages sent by processors) to detect merge.
+
+ Example scenario:
+ - 3 nodes, all of them running cpgverify
+ - One node is isolated (iptables for example)
+ - Node is un-isolated
+
+ Without this commit, node will not merge as long as the cpgverify is
+ running.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemudpu: Implement member_set_active
+ Member active is used for sending "multicast" messages only to members
+ of ring. This reduces network load if some nodes are intentionally down.
+ Only regular multicast message load is reduced (messages sent by
+ totemudpu_mcast_noflush_send), because special messages (like hold
+ cancel, join message, ...) still have to be send to all members to
+ ensure correct behavior.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemrrp: Implement *_membership_changed
+ All *_membership_changed calls totemnet_member_set_active passing 1 as
+ active parameter for joined nodes and 0 for left nodes.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemnet: Add totemnet_member_set_active
+ totemnet_member_set_active together with transport specific
+ member_set_active makes possible for totemnet (and more interestingly
+ transport) to be informed about membership changes.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totem: Inform RRP about membership changes
+ Services are informed about membership changes, but if same information
+ is needed inside totemrrp or totemnet, it's impossible to gather this
+ information.
+
+ Patch makes this possible for now only for RRP with empty callbacks.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-08-25 Jan Friesse <jfriesse@redhat.com>
+
+ Makefile: Do not install TODO file
+
+ TODO: Remove TODO file
+ TODO file has many problems like it's not updated regularly, it's not
+ updated at all in already distributed tarballs, ...
+
+ All relevant RFEs were filled at github as issues with flag "TODO file
+ convert" so file can finally be removed from git.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-08-22 Christine Caulfield <ccaulfie@redhat.com>
+
+ corosync-quorumtool: add sort options
+ Adds a -o<a|i|n> option to corosync-votequorum so that the nodes list
+ can be sorted by Address, node Id or Name. The default remains IP
+ address.
+
+ Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-08-18 Christine Caulfield <ccaulfie@redhat.com>
+
+ YKD: Fix loading of YKD quorum module
+ Although YKD is currently unsupported, untested and decprecated it's
+ handy for testing things in the quorum module.
+
+ This patch allows YKD to actually load without an error. It does not fix
+ anything else in the service!
+
+ Also remove vsftype and its reference to YKD being the preferred and
+ default provider from the corosync.conf man page,
+ as that hasn't been true for a considerable time.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-08-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtool: Sort output by nodeid
+ corosync-quorumtool prints the node listing by IP address
+ (as passed back to it from corosync) but this can be
+ counter-intuitive if the node IDs aren't in the same
+ order as the IP addresses. This patch sorts the nodes
+ by node ID so that the output is easier for humans to
+ parse.
+
+ Reviewed-By: Jan Friesse <jfriesse@redhat.com>
+
+2014-08-12 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Add cmap key to reset wait_for_all
+ It's possible in a two_node cluster (and others but it's more likely
+ with just two) that a node could be booted up after downtime or failure
+ and the other node is not available for some reason. In this case it
+ would not be allowed to proceed because wait_for_all is enforced.
+
+ This patch provides a cmap key to clear this flag in the desperate
+ situation where that becomes necessary. It should only be used with
+ extreme caution and will be wrapped up in pcs which should also check
+ that fencing has been run.
+
+ Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-08-12 Jason HU <huzhijiang@gmail.com>
+
+ Cancel token holding while in retransmition
+ When there is no other activty on ring but only retransmition, and
+ token is in hold mode, the retransmition will become slow. More over,
+ if the retransmition is always fail but token rotation works well, then
+ it takes quite a lone time
+ (fail_to_recv_const * token_hold = 2500 * 180ms = 450sec) for the
+ retransmit requester to meet the "FAILED TO RECEIVE" condition to
+ re-construct a new ring.
+
+ This problem can be solved by checking if retransmits are present
+ before going into hold. If a node is the retransmit requester or
+ the resender, it set my_token_held to 0 to speed up retransmition
+ and omit further unnecessary sending of token_hold_cancel signal.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-08-05 Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: Make qdev timeout in sync configurable
+ Configuration option quorum.device.sync_timeout is available for setting
+ qdevice poll timeout for synchronization phase. Default value is 30
+ sec.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ testvotequorum2: Opt for polling with old ringid
+ Option -F is added to force sending old ringid for given number of
+ times. Option is useful for testing failure scenario during corosync
+ synchronization phase.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Block sync until qdevice poll
+ If qdevice is registered a alive, corosync waits in sync phase until
+ timeout expires or qdevice votes with correct nodeid parameter.
+
+ This gives qdevice time to decide to vote or not undisturbed and without
+ time hazard.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ ipc: Process votequorum messages during sync
+ This is needed for qdevice to be able to process messages during
+ synchronization phase.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Add ring id to poll call
+ If votequorum service receives incorrect (not current) ringid, call is
+ ignored and CS_ERR_MESSAGE_ERROR is returned.
+
+ This and previous commits makes incompatible changes in votequorum
+ API/ABI, so library version is increased.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Return current ring id in callback
+ Returning ring id will be used in poll function.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-07-25 Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Make sure join timeout is less than consensus
+ The thesis contains this paragraph:
+
+ " The Join timeout is shorter than the Consensus timeout and is used to
+ increase the probability that Join messages from all currently
+ working processors are received during a single round of consensus."
+
+ Empirically I can confirm that making join less than consensus can cause
+ havoc with a cluster so I think we should enforce this.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-24 Christine Caulfield <ccaulfie@redhat.com>
+
+ config: Fix typos
+ Fix several places where 'then' is used instead of 'than' in error
+ messages and a comment.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-24 Jan Friesse <jfriesse@redhat.com>
+
+ corosync-keygen: Replace printf/exit call with err
+ Calling of err makes code shorter, easier to read and eliminates
+ problems with forgotten newline characters.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-07-22 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: refactor nodelist_to_interface func
+ Move finding of bindaddr in nodelist to generally usable function
+ totem_config_find_local_addr_in_nodelist and refactor
+ config_convert_nodelist_to_interface function to use it.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemconfig: totem_config_get_ip_version
+ Add totem_config_get_ip_version to get user configured ip version.
+ Make totem_config_read use this newly introduced function.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemconfig: Free ifaddrs list
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2014-07-21 Vladislav Bogdanov <bubble@hoster-ok.com>
+
+ Slightly rework corosync-keygen.
+ Allow it to create keyfile not in the hardcoded location.
+ Drop root checks.
+ Minor cosmetic fixes to the man-page.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-21 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ be consistent in using CPPFLAGS vs CFLAGS
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ cleanup after test-driver
+ update .gitignore and make maintainer-clean target
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-16 Vladislav Bogdanov <bubble@hoster-ok.com>
+
+ Implement config file testing mode
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-15 Vladislav Bogdanov <bubble@hoster-ok.com>
+
+ corosync-cmapctl: Allow -p option to delete keys
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-09 Jan Friesse <jfriesse@redhat.com>
+
+ Fix compiler warning introduced by previous patch
+ QB loop signal handler prototype differs from signal(2) prototype.
+ Solution is to create wrapper functions.
+
+2014-07-03 zouyu <hopkings2005@gmail.com>
+
+ Handle SIGSEGV and SIGABRT signals
+ SIGSEGV and SIGABRT signals are now correctly handled (blackbox is
+ dumped and logsys is finalized).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ fix memory leak produced by 'corosync -v'
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-07-01 Kazunori INOUE <kazunori.inoue3@gmail.com>
+
+ systemd: Config example for corosync wd service
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-06-27 Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: Do not process events during reload
+ During reload, local_node_pos is deleted and reinstation is handled in
+ totemconfig after reload is finished. votequorum handles this events and
+ tries to reload it's configuration. This led to logging a little scary
+ messages (even nothing bad is happening, because after local_node_pos
+ reinstation everything back to normal).
+
+ Solution is to stop processing events during reload. Sadly, simple
+ tracking of config.reload_in_progress doesn't work because LibQB events
+ triggering order is undefined so votequorum reload handler can be called
+ before totemconfig (and before local_node_pos is reinstatied).
+
+ So new config.totemconfig_reload_in_progress key is defined with very
+ similar semanthic as config.reload_in_progress but set inside
+ totem_reload_notify function. Votequorum then use this new key.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Make config.reload_in_progress key read only
+ It's not very good idea to allow user apps changing internal key
+ reload_in_progress.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-06-12 Jan Friesse <jfriesse@redhat.com>
+
+ Doc: Enhance INSTALL file a bit
+ Some information in INSTALL file were pretty outdated. This patch moves
+ them closer to current release.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ coroparse: More strict numbers parsing
+ Previous safe_atoi didn't check range of input values so if for example
+ user used -1 s token timeout, it was converted to UINT32_MAX without
+ letting user know.
+
+ Another safe_atoi problem was using strtol. This works pretty well on
+ 64-bit systems, where long integer is usually 64-bits long, sadly on
+ 32-bit systems, it is usually 32-bit long. And because strtol returns
+ signed integer, it was not possible to enter 32-bit value with highest
+ bit set.
+
+ Solution is to use strtoll which is guaranteed to be at least 64-bits
+ long and check value range.
+
+ Also error message now contains also information about expected value
+ range.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-06-10 Konstantin <konstantin.ponomarenko@gmail.com>
+
+ Install doc: Correct a typo
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-06-09 Lidong Zhong <lzhong@suse.com>
+
+ init: change return value when starting corosync
+ When corosync is started by systemd, it would be considered
+ as failed because it returns a non-zero value, even though it
+ starts sucessfully.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-06-02 Jan Friesse <jfriesse@redhat.com>
+
+ Move ringid store and load from totem library
+ Functions for storing and loading ring id was in the totem library. This
+ causes problem, what to do when it's impossible to load or store ring
+ id. Easy solution seemed to be assert, but sadly this makes hard for
+ user to find out what happened (because corosync was just aborted and
+ logsys didn't flush)
+
+ Solution is to move these functions to main.c, where is much easier to
+ handle error. This also makes libtotem free of any file system
+ operations.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Introduce get_run_dir function
+ Run dir (LOCALSTATEDIR/lib/corosync) was hardcoded thru whole codebase.
+ Totemsrp was trying to create and chdir into it, but also
+ takes into account environment variable COROSYNC_RUN_DIR creating
+ inconsistency.
+
+ get_run_dir correctly returns COROSYNC_RUN_DIR (when set) or
+ LOCALSTATEDIR/lib/corosync. This is now used by all functions instead of
+ hardcoded string.
+
+ All occurrences of mkdir/chdir are removed from totemsrp and chdir is
+ now called in main function. Mkdir call is completely removed, because
+ it was not used anyway (check in main.c was called before totemsrp init,
+ so mkdir was never called) and also make install and/or package system
+ should take care of creating this directory with correct
+ permissions/context.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ logsys: Log warning if flightrecorder init fails
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ logsys: Log error if blackbox cannot be created
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-05-15 Jan Friesse <jfriesse@redhat.com>
+
+ totemiba: Fix incorrect failed log message
+ rdma_join_multicast failed ... message parameters was swapped.
+
+ Also information about multicast join is now logged as notice.
+
+2014-05-14 Yevheniy Demchenko <zheka@uvt.cz>
+
+ totemiba: Add multicast recovery
+ Totemiba wasn't able to survive SubnetManager handover or
+ restart. If SM was migrated to another node, corosync logged
+ "multicast error" and losses connectivity.
+
+ Commit should solve this situation.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-05-09 hfu <askfuhu@gmail.com>
+
+ Indent: Remove newline before else branch start
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Indent: Remove space in negation of expression
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-05-09 Kazunori INOUE <kazunori.inoue3@gmail.com>
+
+ upstart: Make job conf file configurable
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-05-07 Jan Friesse <jfriesse@redhat.com>
+
+ config: Allow dynamic change of token_coefficient
+ token_coefficient change in cmap didn't triggered change. So only way
+ how to change token_coefficient was editing config file and reload.
+
+ Patch let's key totem.token_coefficient to be processed so
+ token_coefficient can be dynamically changed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-04-11 Jan Friesse <jfriesse@redhat.com>
+
+ init: Make init script configurable
+ Init script loads /etc/sysconfig/corosync (or /etc/defaults/corosync) by
+ default, but it didn't existed by default and also no options was
+ defined.
+
+ Patch adds COROSYNC_INIT_TIMEOUT (how many seconds to wait for ipc
+ initialization) with default value 1 minute (instead of previous 10
+ seconds, what may be too small value for some productions) and
+ COROSYNC_OPTIONS (by default empty) containing options directly
+ passed to corosync executable.
+
+ Specfile template is also modified to install example of init file
+ configuration.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-03-25 Jan Friesse <jfriesse@redhat.com>
+
+ Add token_coefficient option
+ Token coefficient is used only when nodelist is specified and contains
+ at least 3 nodes. If so, real token timeout is then computed as
+ token + (number_of_nodes - 2) * token_coefficient. This allows cluster
+ to scale without manually changing token timeout every time new
+ node is added. This value can be set to 0 resulting in effective
+ removal of this feature.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Log errors on key change and reload
+ When volatile key was changed (cmap set or reload) and checks fails,
+ nothing was logged.
+
+ Values are now checked and error string is logged on problems.
+
+ Also totem_config is dumped to log (DEBUG level) after every
+ volatile key change and every reload.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Key change process dependencies
+ When key with dependency was changed, dependant keys were not recomputed.
+ Nice example is consensus timeout. If token timout was changed,
+ consensus timeout was not recomputed correctly (nether via cmap change
+ of key nor via cfg reload).
+
+ Solution is almost complete refactor of handling volatile defaults.
+
+ totem_volatile_config_read now handles not only storing cmap key to
+ totem_config structure, but also checking of existence, comparing with
+ zero value and properly storing defaults.
+
+ totem_set_volatile_defaults is gone. It's function was splitted into
+ totem_volatile_config_read and totem_volatile_config_validate functions.
+
+ Reload callback and change of key callback are now mostly same functions
+ and both calls totem_volatile_config_read.
+
+ Patch also fixes small memory leak. totem.vsftype key is not used for
+ long time and original totem_volatile_config_read wasn't freeing
+ allocated memory returned by icmap_get_string. Whole reading of
+ totem.vsftype is removed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Really clear totemconfig nodes on reload
+ When reload was called nodes were constantly added to totemconfig
+ nodelist.
+
+ So simple corosync-cfgtool -R resulted very quickly in filling whole
+ array and segfault.
+
+ Solution is to clear member_count.
+
+ Clearing is also moved directly to put_nodelist_members_to_config to
+ make sure it's always processed.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Log: Make reload of logging work
+ When reload was called multiple times (~20), logging to file stopped
+ working.
+
+ Main problem was hidden in the fact, that log file was opened multiple
+ times, because even target_id was shared via subsystem loggers, file
+ name was not.
+
+ Solution is to ALWAYS set proper log file name into subsystem logger
+ (copy is stored). This will not only fix problem but also removes small
+ leak.
+
+ Also if filename didn't changed, function can return sooner.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-03-17 Jan Friesse <jfriesse@redhat.com>
+
+ config: Handle totem_set_volatile_defaults errors
+ When totem_set_volatile_defaults is called from totem_config_validate
+ return code is unchecked.
+
+ It's then perfectly possible to set (for example) join timeout to very
+ small value (1) and consensus value is then set to 0 making corosync
+ unable to create membership.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-02-26 Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: Properly initialize atb and atb_string
+ icmap_get_* behavior is to NOT modify passed variable when it doesn't
+ success. So we must initialize variable before icmap_get_* call.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2014-02-25 Jan Friesse <jfriesse@redhat.com>
+
+ mon: Make monitoring work
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ mon: Pass correct pointer to inst
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ mon: Fix comparsion typo
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ mon: Make mon compilable with libstatgrab ver 0.9
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-02-19 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Make sure left nodes are really removed
+ When node is paused and other nodes has in meantime exited cpg process,
+ paused node after resume doesn't update it's membership correctly so on
+ previously paused node exited cpg process is still visible.
+
+ Solution is to compare join list with cpd and remove all pids which are
+ not included in join list.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cpg: Make sure nodid is always logged as hex num
+ Also number is prefixed by 0x so it's easier to spot that number is
+ hexadecimal.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cpg: Refactor mh_req_exec_cpg_procleave
+ Most of functionality is moved to do_proc_leave function to make it
+ reusable.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-02-18 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Fix typo with cont gather
+ Patch f3ffd3da5c71a10e1783a38e50bafc61192854f6 introduced named states
+ of state-machine, but sadly contains logical problem causing
+ stats.continuous_gather increasing even when it shouldn't. Problem is
+ not critical, because continuous_gather is set to 0 on successful
+ membership creation.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-02-17 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Add extended options to auto_tie_breaker
+ This patch adds more flexibility to the auto_tie_breaker feature of
+ votequorum. With this, not only can the lowest nodeid be used as
+ a tie breaker, but also the highest, or a node from a nominated list.
+
+ If there is a list of nodes, the first node in the list that was not
+ part of the previous partition is used. This allows the user to
+ specify a preferred set of nodes but prevents a split-brain if the
+ cluster divides evenly with a node in each half.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-01-23 Masatake YAMATO <yamato@redhat.com>
+
+ Free object allocated at quorum_register_callback
+ Memory object allocated with malloc at quorum_register_callback
+ is not freed. The object is linked to internal_trackers_list.
+
+ The object is unlinked at quorum_unregister_callback. However,
+ it is not freed at the function.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-01-14 Jan Friesse <jfriesse@redhat.com>
+
+ Properly check result of symlink
+ Error message is displayed when it's impossible to create symlink to
+ fdata file.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Fix cppchecks warning
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ Close devnull file handler
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-01-14 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Add missing man pages
+ Man pages for votequorum_qdevice_update and votquorum_qdevice_master_wins
+ were missing from the last commit.
+
+2014-01-13 Jason <huzhijiang@gmail.com>
+
+ totem: Drop invalid join msg in operational state
+ According to the totem paper, if a processor
+ receives a join message in the operational state and if the
+ receivers identifier is in the join messages fail list,
+ then join message should be ignored.
+
+ By applying this validation of join messages, we can avoid unnecessary
+ switching from operational state to gather state(or even lead to rings
+ can not be merged) like the following to happen.
+
+ 1. Initially, there is only one ring contains three nodes, say
+ ring(A,B,C).
+ 2. A and B network partition, "in the same time", C is down.
+ 3. Node A sends join message with proclist:A,B,C. faillist:NULL.
+ Node B sends join message with proclist:A,B,C. faillist:NULL.
+ 4. Both A and B consensus timeout due to network partition.
+ 5. A and B network remerged.
+ 6. Node A sends join message with proclist:A,B,C. faillist:B,C. and
+ create ring(A).
+ Node B sends join message with proclist:A,B,C. faillist:A,C. and
+ create ring(B).
+ 7. Say join message with proclist:A,B,C. faillist:A,C which sent
+ by node B is received by node A because network remerged.
+ 8. Node A shifts to gather state and send out a modified join message
+ with proclist:A,B,C. faillist:B. Such join message will prevent
+ both A and B from merging.
+ 9. Node A consensus timeout (caused by waiting node C) and sends join
+ message with proclist:A,B,C. faillist:B,C again.
+
+ Same thing happens on node B, so A and B will dead loop forever
+ in step 7, 8 and 9.
+
+ As the paper also said: "If a processor receives a join message in the
+ operational state and if the sender's identifier is in the receiver's
+ my_proclist and the join message's ring_seq is less than the receiver's
+ ring sequence number, then it ignores the join message too." So these
+ patch applying these validations of join messages altogether.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-01-13 Jan Friesse <jfriesse@redhat.com>
+
+ systemd unit: Make sure network is really up
+ Change network.target to network-online.target to make sure network is
+ really up and running when starting corosync.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2014-01-13 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Improve/add documentation for quorum device API
+ Improve the man pages for the votequorum qdevice API and include
+ them in the build. Also improve the testvotequorum2 test program.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2014-01-07 Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: Add persistent expected_votes tracking.
+ This patch adds the option to store expected_votes to
+ persistent storage. This is needed to allow_downscale
+ to operate properly.
+
+2013-11-26 Jan Friesse <jfriesse@redhat.com>
+
+ cfgtool: return error on reload failure
+ If reload fails, return code is set to value >0 to indicate error.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2013-11-08 Christine Caulfield <ccaulfie@redhat.com>
+
+ man pages: Note that votequorum's allow_downscale is unsupported
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-11-04 Jan Friesse <jfriesse@redhat.com>
+
+ logsys: Make logging of totem work again
+ Because of change in libqb (9abb686) logging of TOTEM subsystem stopped
+ working.
+
+ Instead of rely on previous behavior (implicit substring match), all
+ totem files are now explicitly given.
+
+ Also QB subsystem now uses comma separated filelist instead of previous
+ function calling.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2013-10-24 Masatake YAMATO <yamato@redhat.com>
+
+ totemsrp: Show English message when memb_state_gather_enter is called
+ The reason why memb_state_gather_enter is invoked was printed
+ in integer code. This patch introduces human readable English
+ messages for the code.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-09-20 Yevheniy Demchenko <zheka@uvt.cz>
+
+ totemiba: Check if configured MTU is allowed by HW
+ Solution use aproximation of totem structures. This needs to be
+ rewritten in proper way. Also MTU checking should be implemented for IP
+ transports.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemiba: Fix parameters position for poll_add
+ Parameters in functions like mcast_cq_send_event_fn, ... were defined in
+ incorrect order. Also their names were weird.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemiba: Del channel fd from poll before destroy
+ Corosync freezes after several peer node connects/disconnects. The
+ freeze happens in recv_token_cq_recv_event_fn in ibv_get_cq_event call.
+ The problems is in fact, that after each peer node connect,
+ recv_token_accept_destroy is called, which tries to call
+ poll_dispatch_delete _after_ freeing of completion_channel. As
+ completion_channel contains fd, handlers are not disconnected from
+ poller properly. This leads to complete inconsistency in subsequent
+ calls to handlers.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemiba: Properly allocate RDMA buffers
+ 1. In UD mode receivnig side of RDMA application should have enough
+ space in buffer to hold data and GRH. Also, sge.length on the receiving
+ size should be set to max_msg_size + sizeof (struct ibv_grh). Current
+ corosync doesn't take grh in the account and does not work if mtu is set
+ to the real mtu of IB port (it works if netmtu is set to < 2048-40).
+ 2. ibv_wc.byte_len is the actual lentgh of the received packet, i.e.
+ msg_len + GRH. GRH length should be substracted in further proceeding.
+ If not, it might cause problems when messages get retransmitted, as
+ their apparent size will constantly grow.
+ 3. Current corosync will not work with rdma and mtus > 2048. Most modern
+ IB HW supports 4096 mtu.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-09-12 Christine Caulfield <ccaulfie@redhat.com>
+
+ Reload: document config.reload_in_progress in man page
+
+ Reload: Add atomic reload to log config
+ When a reload is in progress, wait until it has all finished
+ before re-reading all of the logging parameters
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Reload: Add atomic reload to totemconfig
+ When a reload is in progress, wait until the whole thing has
+ finished before setting parameters
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Reload: Add reload code to cfg
+ Add the code to do the actual corosync.conf reload to cfg, along with
+ a corosync-cfgtool -R command to trigger it
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Reload: Make coroparse use a designated icmap hash table
+ Pass an icmap hashtable into coroparse so we can load it into
+ a temporary one during reload
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-09-10 Jan Friesse <jfriesse@redhat.com>
+
+ icmap: Add func to test equality of two key values
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2013-09-10 Christine Caulfield <ccaulfie@redhat.com>
+
+ [PATCH] Replace freopen with open/dup2 when daemonizing
+ This patch replaces the existing freopen method of
+ forcing stdin/out/err to /dev/null with the more
+ usual system of open/dup2.
+
+ While I don't like posting patches I don't fully understand,
+ this patch seems to fix a problem where stdout/err get
+ assigned to a socket causing double logging output
+ on systemd.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-09-03 Christine Caulfield <ccaulfie@redhat.com>
+
+ Add log message to exit signal handler
+ I've seen a few instances where corosync has shut down for
+ apparently 'no reason'. In fact most of the time the shutdown
+ has been caused by an external source (often an init script)
+ but it's not been obvious what has happened and people
+ implicate the deamon
+
+ This patch simply adds a log message to the signal handler
+ when it is called so that the cause of the shutdown is obvious.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-08-29 Jan Friesse <jfriesse@redhat.com>
+
+ icmap: Add map copy function
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ icmap: Add function to return item data pointer
+ icmap_get_r is now implemented using this function. Function is not very
+ safe tho defined as static.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ icmap: Fix value len checking for strings
+ Implementation should allow pass only parts of string (shorten string)
+ and must prohibit reading of uninitialized memory.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ icmap: Add function to return global icmap
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2013-08-27 Jan Friesse <jfriesse@redhat.com>
+
+ icmap: Allow multiple icmap instances
+ Patch adds reentrant version of most of functions (with exception of RO
+ flags support and tracking) to allow multiple icmap instances existence
+ inside corosync.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2013-08-19 Michael Chapman <mike@very.puzzling.org>
+
+ Fix scheduler pause-detection timeout
+ qb_loop_timer_add expects the timeout to be in nanoseconds, but we were
+ passing the value in milliseconds. Scale the timeout appropriately.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-07-10 Jan Friesse <jfriesse@redhat.com>
+
+ Remove dir pragma for xml2conf.xsl in specfile
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-07-09 Jan Friesse <jfriesse@redhat.com>
+
+ cts: Update DC_IDLE pattern
+
+2013-07-08 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ Use restart policy in the corosync-notifyd unit
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-07-04 David Vossel <dvossel@redhat.com>
+
+ ipc_glue: proper ref counting during service connection iteration
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ ipc_glue: Remove connection unref with no matching reference.
+ We don't reference the connection object on creation, so there
+ is on reason to dereference it on disconnect.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ ipc_glue: Fixes connection ref count leak
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-07-01 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ systemd: fix typo in unit file
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ notifyd: fix handle dispatch functions results
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-06-27 Christine Caulfield <ccaulfie@redhat.com>
+
+ The corosync message "A processor joined or left the membership" is vague and unhelpful. People have to look for the following quorum message and try to deduce which nodes have joined or left from that and past membership messages, even though the routine printing the message already has this information to hand.
+ This patch fixes that message so that it prints the nodeids of the nodes
+ that have joined/left the cluster.
+
+ Signed-Off-By: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-By: Jan Friesse <jfriesse@redhat.com>
+
+2013-06-21 Jan Friesse <jfriesse@redhat.com>
+
+ Log: Output parse errors to syslog
+ When corosync was started in daemon mode and there was parse error, no
+ way existed how to find out what happened (this is usual situation with
+ systemd enabled systems). Solution seems to be output to syslog by
+ default.
+
+ Also redundant line with setting logsys is removed because it's no
+ longer needed, because FORK and THREADED mode options has no longer
+ effect. FORK is handled by libqb by default and THREADED mode is forced
+ by calling logsys_thread_start.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemconfig: Prevent leak of cluster_name str
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ service: Fix memleak in service_unlink_and_exit
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2013-06-20 Eric Raymond <esr@thyrsus.com>
+
+ Fix patch for corosync.conf.5
+ he markup around an example is impossible to lift to XML or HTML
+ cleanly. Simplifying it fixes the problem.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-06-18 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Set umask in memory_map function
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ ipc_glue: Check service name len
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ ipc_glue: Introduce constant for service name len
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfg: Check interface status and name length
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfg: Check number of interfaces
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ cfg: Introduce CFG_MAX constants
+ Instead of magic numbers, use constant.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totemrrp: Make status string shorter
+ Status string should be same lenght as needed for cfg
+ ringstatusget function.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ totem: Don't leak instance variable on crypto fail
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemudpu: Handle fd leak in totemudpu
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemconfig: Check length of rrp_mode string
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ coroparse: Ensure that config items fits into cmap
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg: Check cpg zc buffer path name length
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-06-17 Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: Prevent leak in qdevice_is_configured
+ Also LEAVE from function is now properly logged.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-06-13 Jan Friesse <jfriesse@redhat.com>
+
+ ipc_cfg: Make coverity happy
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Initialize error variable in ykd_init
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Initialize node_found in nodelist_to_interface fun
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Initialize item in cmap_mcast_send
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cmapctl: Remove unnecessary access check
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequrorum: Assert sender nodeid is known
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: Properly check nodeid cli param
+ Return value of strtol can be negative, but result was assigned to
+ unsigned integer. To make check correct, result is first assigned to
+ signed variable, checked, and then assigned to unsigned variable.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Handle errors when getting SC_PAGESIZE
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Check result of logsys_subsys_create
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Check logsys_format_set result in logsys setup
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Use proper totem_ip_address size in memset
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Free icmap strings in logconfig
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Properly break MAIN_CP_CB_DATA_STATE_QDEVICE state
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Do not dereference format_buffer when it's NULL
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Check icmap str get for clustername
+ Even this check is really not needed, it's nice to have it and on fault
+ ensure that cluster_name is really NULL.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Handle dispatch functions results
+ On error, exit corosync-notifyd properly.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Properly check result of stat func in coroparse
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ testcpg: Check length of input group name
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ common ta: Close client sockets
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ common ta: Close listener socket
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ test sam: Free temp str allocated by cmap
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ sam test agent: Assert results of send func
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum test agent: Assert results of send func
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg test agent: Test len of name for cpg_join
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg test agent: Cfg shutdown flag is not bitfield
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg test agent: Assert results of send function
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg test agent: Fix typo in assert
+ Assert should compare rc, instead of setting it.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Rename make target coverity
+ Makefile target "coverity" is renamed to coverity-aggressive, and target
+ coverity is defined as a little less aggressive.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-05-24 Michael van der Westhuizen <r1mikey@gmail.com>
+
+ Allow corotypes.h to be included from C++ code.
+
+2013-05-21 Jan Friesse <jfriesse@redhat.com>
+
+ Remove unnecessary mmap in cpg
+ Code for zero-copy in cpg does following mmaps:
+ - Mmap anonymous, private memory to some address (-> malloc)
+ - Mmap shared memory of fd to address returned by first mmap
+ (effectively shadows first mapping)
+
+ This is not necessary and only one mapping is needed.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-04-16 Jan Friesse <jfriesse@redhat.com>
+
+ Install sysconfig/corosync-notifyd in specfile
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Improve corosync-notifyd example
+ Example now contains default option -d, so corosync-notifyd init script
+ don't fall. Also description is improved a little bit.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-04-12 Masatake YAMATO <yamato@redhat.com>
+
+ Fix a typo in README.recovery
+ Fix a typo.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-04-10 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ Add Upstart job configuration file
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-04-08 Jan Friesse <jfriesse@redhat.com>
+
+ Detect big scheduling pauses
+ Add poll timer scheduler to be called 3 times per token timeout.
+ If poll timer was not called for more then 0.8 * token timeout, it means
+ corosync process was not scheduled and ether token_timeout should be
+ increased or load should be reduced (useful for VM, where host is
+ overcommitted so VM is not scheduled as expected).
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-04-03 Andrei Belov <defanator@gmail.com>
+
+ Added checks for "--as-needed" and "--version-script" linker flags.
+ This makes possible to build Corosync from sources on SunOS 5.11,
+ Mac OS X 10.8.3 and probably other systems with non-GNU linker.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-04-02 Jan Friesse <jfriesse@redhat.com>
+
+ Support for numerical uid/gid
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-04-02 Yuichi SEINO <seino.cluster2@gmail.com>
+
+ build: pass enable options to "make rpm" from configure
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-03-28 Andrei Belov <defanator@gmail.com>
+
+ Improved POSIX-compliant handling of getpwnam_r() and getgrnam_r().
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-03-27 Jan Friesse <jfriesse@redhat.com>
+
+ Make cts work with pacemaker 1.1.9
+ This is counterpart of adcc21a30c70a40861736bc9d902c2ef2d4b42c4 in
+ pacemaker.
+
+2013-03-21 Jan Friesse <jfriesse@redhat.com>
+
+ totempg: Make iov_delv local variable
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cfgtool: Retry shutdown on CS_ERR_TRY_AGAIN
+ It may be nice to deliver macro cs_repeat as default in some include
+ file.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-03-20 Jan Friesse <jfriesse@redhat.com>
+
+ cts: Output nodeid consistently as unsigned int
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-03-19 Xia Li <xli@suse.com>
+
+ Convert the nodeid byte order to be aligned with network order
+ When using corosync with clear_node_high_bit setting to yes,
+ the highest bit is cleared. When all the cluster nodes are in
+ one subnet, we probably configure the IP addresses as follows:
+
+ node1: 147.2.207.64
+ node2: 147.2.207.192
+
+ If the byte order of the nodeid is little endian, wiping off the
+ highest bit will make the two nodes have the same nodeid!
+
+ This patch fixes this by converting the nodeid to network order.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-03-08 Jeremy Fitzhardinge <jeremy@goop.org>
+
+ Handle ERANGE from getpwnam_r / getgrnam_r
+ These functions return ERANGE if the supplied buffer is too small to
+ fit a line. Try doubling the buffer a few times until it works.
+
+2013-02-26 Michael Chapman <mike@very.puzzling.org>
+
+ build: make --disable-testagents work
+ The --disable-testagents option sets enable_testagents to "no". This
+ variable should always be explicitly tested against "yes", not just
+ that it is non-empty.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-01-31 Jan Friesse <jfriesse@redhat.com>
+
+ Handle unexpected closing brace in config file
+ If configuration file contains closing brace before opening brace
+ at top level, configuration parsing is stopped and file is not
+ completely parsed. Solution is to detect extra closing brace and display
+ error.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Handle colon in configuration file
+ If colon was entered as part of value on end of value, it is deleted.
+ This makes impossible to enter (legal) IPv6 address ending with :: (like
+ fed0::).
+
+ Also when line contains both brace and colon, it is parsed twice (first
+ as key = value and second as start of section). This is handled by
+ continue in if section.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2013-01-31 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: port to sync API (take 2)
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-01-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto config: update man pages and examples
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: enforce hmac config when crypto is enabled
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-01-14 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ log: move Corosync started log messages
+ "Corosync Cluster Engine ... started" message is shown after
+ logsys is full configured.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2013-01-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto: drop < 2.3 protocols and onwire compat
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemcrypto: fix hmac key initialization
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-12-12 Jan Friesse <jfriesse@redhat.com>
+
+ Move qb_loop creation after daemonization
+ Creating qb_loop before daemonization is not problem for poll or epoll
+ type loops, but it's problem for kqueue, because kqueue is not shared
+ in child with parent after fork.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-12-06 Jan Friesse <jfriesse@redhat.com>
+
+ cmap: Handle NULL params in few more functions
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-12-03 Jan Friesse <jfriesse@redhat.com>
+
+ Add option to specify ip version
+ Default is ipv4.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-22 Jan Friesse <jfriesse@redhat.com>
+
+ Add waiting_trans_ack also to fragmentation layer
+ Patch for support waiting_trans_ack may fail if there is synchronization
+ happening between delivery of fragmented message. In such situation,
+ fragmentation layer is waiting for message with correct number, but it
+ will never arrive.
+
+ Solution is to handle (callback) change of waiting_trans_ack and use
+ different queue.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Handle segfault in backlog_get
+ If instance->memb_state is not OPERATION or RECOVERY, we was passing NULL
+ to cs_queue_used call.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-22 Steven Dake <sdake@redhat.com>
+
+ Fix problem with sync operations under very rare circumstances
+ This patch creates a special message queue for synchronization messages.
+ This prevents a situation in which messages are queued in the
+ new_message_queue but have not yet been originated from corrupting the
+ synchronization process.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-22 Jan Friesse <jfriesse@redhat.com>
+
+ Fix handling of NULL parameters in cmap
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-22 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemcrypto: implement crypto packet format 2.2 and crypto_compat: config opt
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Update .gitignore files
+ Untracked files:
+ (use "git add <file>..." to include in what will be committed)
+
+ compile
+ init/corosync
+ init/corosync-notifyd
+ test/ploadstart
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-11-21 Evgeny Barskiy <barskiy@rts.ru>
+
+ corosync to start in infiniband + redundant ring active/passive mode
+ Corosync now works with infiniband transport in any redundant ring mode
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-11-20 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: fix handling of expected_votes/votes changes from cmapctl
+ and allow natural selection to take place....
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorum-tool: use option to generate machine parsable output
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-11-08 Jan Friesse <jfriesse@redhat.com>
+
+ Add support for selecting IPC type
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Check successful initialization of IPC
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-07 Jan Friesse <jfriesse@redhat.com>
+
+ Enahnce manpages a little bit
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-07 Angus Salkeld <asalkeld@redhat.com>
+
+ Try reduce the number of sprintf's
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Override the link_all_deplibs=no in ubuntu
+ but allow the user to disable this.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-06 Jan Friesse <jfriesse@gmail.com>
+
+ Merge pull request #2 from dfcluster/master
+ Update corosync man page
+
+2012-11-05 Jan Friesse <jfriesse@redhat.com>
+
+ If failed_to_recv is set, consensus can be empty
+ If failed_to_recv is set (node detect itself not able to receive
+ message), we can end up with assert, because my_failed_list and
+ my_member_list are same list. This is happening because we are not
+ following specification and we allow to mark node itself as failed.
+ Because if failed_to_recv is set and we reached consensus across nodes,
+ single node membership is created (ignoring both fail list and
+ member_list), we can skip assert.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-11-05 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: add local nodeid to global quorum info section
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: add (local) next to the nodename when displaying node data
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: change default command from -h to -s
+ default run will show status instead of help text
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-10-30 dfcluster <df.cluster@gmail.com>
+
+ Update man/corosync.conf.5
+
+2012-10-29 Jacek Konieczny <jajcus@jajcus.net>
+
+ link libtotem_pg to libqb
+ The libtotem_pg library uses symbols from libqb, so it should be
+ explicitely linked with it. This doesn't cause problems for corosync
+ binary itself, as it is linked to both libraries, but can cause
+ problems if anything else links to libtotem_pg.so and automated
+ checkers can show this as a library problem.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix dbus configuration install
+ The corosync-signals.conf DBus configuration file was not
+ installed even if DBus support was enabled because of a configure
+ test error.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-10-17 Jan Friesse <jfriesse@redhat.com>
+
+ Correctly check if service was unloaded
+ my_processing_idx is pointer to received service list, instead of global
+ service number. If we check state of service we should use service_id
+ instead of my_processing_idx.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Define AES_*_KEY_LENGTH if not defined
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-10-16 Andreas Gruninger <Andreas.Grueninger@lgl.bwl.de>
+
+ Missing space in man/Makefile.am
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-10-15 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemcrypto: add support for different encryption methods
+ (backport from nsscrypto kronosnet code)
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-10-11 Jan Friesse <jfriesse@redhat.com>
+
+ Change specfile URL and Source
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Document config_version option
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-10-10 Jan Friesse <jfriesse@redhat.com>
+
+ Use systemd-rpm macros in specfile
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-10-09 Jan Friesse <jfriesse@redhat.com>
+
+ Enhance spec file
+ Weird construct buildtrunk is gone. Instead of that, we use bcond
+ feature. Also buildtrunk is renamed to runautogen, because SVN era is
+ gone.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-10-08 Jan Friesse <jfriesse@redhat.com>
+
+ Make totemiba compile again
+
+ Return back "Totem is unable to form..." message
+ This patch returns back SUBJ functionality. It rely on fact, that
+ sendmsg will return error, and if such error is returned for long time,
+ it's probably because of firewall.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Move "Totem is unable to form..." message to main
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Use unix socket for local multicast loop
+ Instead of rely on multicast loop functionality of kernel, we now use
+ unix socket created by socketpair to deliver multicast messages to
+ local node. This handles problems with improperly configured local
+ firewall. So if output/input to/from ethernet interface is blocked, node
+ is still able to create single node membership.
+
+ Dark side of the patch is fact, that membership is always created, so
+ "Totem is unable to form a cluster..." will never appear (same applies
+ to continuous_gather key).
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-10-04 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ man page: fix quorum references
+
+2012-10-03 Jan Friesse <jfriesse@redhat.com>
+
+ Store config_version of other nodes
+ Config version of other nodes is stored in
+ runtime.totem.pg.mrp.srp.members.NODEID.config_version key. Also when
+ local config_version is changed, all nodes are informed.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-10-02 Jan Friesse <jfriesse@redhat.com>
+
+ Support for check of config version on start
+ Config version is requested from other nodes. If our config version is
+ not 0 and differes from highest config version of other nodes, corosync
+ quits.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Make cmap_mcast_send return correct error code
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Make service_build contain correct number of msgs
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Align items in cmap_mcast_send
+ Aligning function (kernel style magic) MAR_ALIGN_UP is used for
+ aligning of items in req_exec_cmap_mcast message.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Support for flt and dbl in mcast_endian_convert
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add support for swab float and double
+ This uses general swabbin function which is able to swab every byte in
+ array.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add support for sending cmap values to wire
+ Function is little more complex, but it is designed to be used in future
+ without big changes.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Parse config_version as 64-bit uint
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-09-27 Jan Friesse <jfriesse@redhat.com>
+
+ Don't access invalid mem in totemconfig interfaces
+ When ringnumber in config file was set to value bigger or equal to
+ INTERFACE_MAX, we are using this big value as index to totemconfig
+ interfaces array, resulting to access to invalid memory and segfault.
+
+ Instead of that, ringnumber is now checked and proper error message is
+ printed if value is too big.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-09-19 Jan Friesse <jfriesse@redhat.com>
+
+ Move some totem and cpg messages to trace level
+ Messages which are flow messages, rather then lifecycle are now logged
+ in trace level.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add support for debug level trace in config file
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-09-12 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ icmap: fix mapping return codes
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-09-11 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix indirect linking vs rpath by linking --as-needed
+ libtotem_pg links against libnss/nspr and correctly sets RPATH
+ corosync links against libtotem_pg, but libtool (via .la) enforces
+ an extra layer of linking against libnss/nspr without setting RPATH.
+
+ corosync final binary can't resolve the second linking and fails
+ to load.
+
+ This issue is visible only on NetBSD that enforces a much stricter
+ use of rpath (vs other OS/distros). Using --as-needed avoids that
+ and it's generally safe to use on other OS'es.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-09-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: make secure build optional
+ apparently some versions of gcc accepts the pie/relro bits
+ but fails to produce a working binary (freebsd9)
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ build: fix regression with handling fPIC and DPIC
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-09-07 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: add support for relro and bindnow
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: autodetect if compiler support -fPIE and -pie for linking
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: clean AM_CFLAGS and AM_CPPFLAGS usage around
+ also set commont include dirs.
+
+ fPIC and DPIC are automatically detected and added
+ as required by libtool. We don't need to carry it around.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: drop unnecessary includes
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-09-06 Jan Friesse <jfriesse@redhat.com>
+
+ Remove newline in logsys_config_file_set_unlocked
+ Also remove commented leftover.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Make threaded log work
+ Previous two log releated patches tried to solve few problems with
+ threaded libqb, but introduced regressions when running in daemon mode.
+
+ This patch takes bigger hammer and hopefully solves all problems.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-09-05 Jan Friesse <jfriesse@redhat.com>
+
+ Ensure qb_log thread is started
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-09-03 Jan Friesse <jfriesse@redhat.com>
+
+ Ensure no garbage left in msghdr for sendmsg call
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Use uint8_t in setsockopt when needed
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ OpenBSD getifaddrs returns netmask without sa_family
+ So we relax netmask check and set to same family as ipaddr
+ if needed
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add header files when needed
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Make use of EBADMSG conditional
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-08-31 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix cpg_membership_get()
+ The wrong size was getting set in exec/cpg.c
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-08-30 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: drop OS detection
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: bring SOLARIS up to the same standard as other OSes
+ drop all SOLARIS specific ifdefs and replace them with feature checks
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop TS_CLASS definition, used nowhere
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop COROSYNC_BSD out of configure
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemip: clean up headers a lot more
+ getifaddrs is always available if there is freeifaddr.
+
+ all BSD and openindiana have it defined in ifaddr.h.
+
+ drop a bunch of obsoleted headers.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop MAP_ANONYMOUS check from configure
+ define it only in case it's not there
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop COROSYNC_DARWIN definition
+ not referenced anywhere in the code
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop completely linux detection
+ from now on there are no unsupported OS'es...
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: make libstatgrab the facto default for monitoring service
+ drop duplicate code and remove the last COROSYNC_LINUX ifdefs
+ around
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemip: add missing include
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: use MADV_NOSYNC only when it's defined
+ so far only FreeBSD defines it.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: make exec/totemip os detection free
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop _SEM_SEMUN_UNDEFINED
+ not referenced anywhere in the code
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-30 Jan Friesse <jfriesse@redhat.com>
+
+ Log: Use threaded mode for syslog and file log
+ Syslog and file log can block, so it's good idea to use libqb threaded
+ mode to prevent it.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Use native IPC mechanism
+ Instead of hardcoded SHM, we should use NATIVE, so libqb is able to find
+ out what is best/availiable mechanism.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add la, lo and .libs files/directory to gitignore
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-08-30 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix library version export in ELF header
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-29 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix spec file creation
+ hopefully once and for all...
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ spec: cleanup spec file to be slightly smarter
+ move all the conditionals in 2 variables to make it easier to read
+ and maintain and fix install of dbus-signal file
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: fix do_snmp conditionals
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-28 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix make rpm
+ remove .la files from binary rpm
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: cleanup configure.ac for non-linux OS'es
+ libstatgrab ships with pkg-config file. Use it.
+
+ watchdog is implemented only on linux. Error out if necessary.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop PATH_MAX definition from dark ages
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop redefine of NAME_MAX since nothing references it anylonger
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop last reference to OS_CPPFLAGS and use AC EXTENSIONS instead
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: fix build on openindiana 151a
+ openindiana toolchain is rather messy. This is the first cut only
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: remove bashism in cc support check
+ this is required for all systems that don't use bash for /bin/sh
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop SOLARIS_OPTS and DARWIN_OPTS
+ SOLARIS was unused
+
+ DARWIN needs verification
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: minor cleanup and final removal of OS_LDFLAGS
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: rework snmp library detection and setting of CFLAGS
+ this allows to drop more OS_* specific bits
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: drop more dlopen leftovers from dinosaur era...
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: make monitoring optional in corosync exec
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: update .gitignore files
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: fix make distcheck
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: make path to bash configurable at build time
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: order library install to make sure libsam can relink against libcmap
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: fix usage of sed and drop build-aux/genman
+ "sed -i" is a GNU specific extention.
+
+ Replace with more portable version and drop completely genman
+ in favour of a make rule.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ test: fix testcpg build on FreeBSD9
+ HOST_NAME_MAX is intentionally NOT defined on BSD.
+
+ Users of HOST_NAME_MAX should be using sysconf or use very
+ conservative values.
+
+ limits.h still defines _POSIX_HOST_NAME_MAX. use that instead.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: respect watchdog conditional when building corosync exec
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ common_lib: make it build on FreeBSD 9 and Mac OS X
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: use libtool for linking
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ build: cleanup configure.ac
+ sort different sections in more logical way and add check for sed
+ plus a few missing headers/functions
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-21 Tim Beale <tim.beale@alliedtelesis.co.nz>
+
+ Remove redundant default-config code
+ We were checking 'hold_timeout == 0' in 3 different places when setting up
+ the default totem config.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-21 Tim Beale <tlbeale@gmail.com>
+
+ Remove unused structure
+ Nowhere in the corosync codebase references this structure.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: corosync.conf seqno_unchanged_const description incorrect
+ seqno_unchanged_const is used to determine when the rep should hold the
+ token. The merge detection timeout is started after any idle rotation of
+ the token.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-16 Jan Friesse <jfriesse@redhat.com>
+
+ Make logging of WD and MON service correct
+ MON and WD services are using fsm.h, which calls log function. Such
+ messages were incorrectly logged as SERV (or random service) which made
+ debugging hard.
+
+ Solution is to add callback parameter to fsm functions and do actual
+ logging there.
+
+ Handling of failure states is also done in calback now.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix dbus part of corosync-notifyd
+ Function dbus_connection_read_write which causes block for 0.5 sec is
+ replaced by correct dispatching of input and flushing of output buffer.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-08-14 Jan Friesse <jfriesse@redhat.com>
+
+ example conf: Remove Duplicate "debug" statement
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-08-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix libsam dependencies when using make -j
+ tested on linux (can't verify solaris)
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-13 Jan Pokorny <jpokorny@redhat.com>
+
+ Example config files: fix a typo
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-09 Jan Friesse <jfriesse@redhat.com>
+
+ IPC: Call lib function only when it's possible
+ send_ok was incorrectly tested as boolean, even it's errno type
+ variable.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Close sockets after deleting from poll
+ This will remove (non critical) debug message from QB about polling on
+ closed FD.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg: Check input param name_t length
+ IPC is using buffer of CS_MAX_NAME_LENGTH for name. If user calls
+ function with longer string, such string can be passed to service
+ incomplete.
+
+ Solution is to not allow string larger then CS_MAX_NAME_LENGTH
+ and return error.
+
+ Same applies to cpg service.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Handle sync and service unload correctly
+ When sync started and service is unloaded in meantime, it can happen that
+ sync will call sync_* functions on unloaded service.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ service: remove leftovers from mt corosync
+ Multithreaded corosync used to use many ugly workarounds. One of them is
+ shutdown process, where we had to solve problem with two locks. This was
+ solved by scheduling jobs between service exit_fn call and actual
+ service unload. Sadly this can cause to receive message from other node
+ in that meantime causing corosync to segfault on exit.
+
+ Because corosync is now single threaded, we don't need such hacks any
+ longer.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cmap: Check input param name_t length
+ IPC is using buffer of CS_MAX_NAME_LENGTH for name. If user calls
+ function with longer string, such string can be passed to service
+ incomplete.
+
+ Solution is to not allow string larger then CS_MAX_NAME_LENGTH (what is
+ same as ICMAP_KEYNAME_MAXLEN) and return error.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-08-09 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: fix display when nodenames or reverse lookup is missing
+ when requesting nodename in ring0_addr, and reverse dns lookup
+ is not available, quorumtool output becomes inconsistent.
+
+ quorum {
+ provider: corosync_votequorum
+ }
+
+ nodelist {
+ node {
+ ring0_addr: fedora-master-node1
+ nodeid: 1
+ }
+ node {
+ ring0_addr: fedora-master-node2
+ nodeid: 2
+ }
+ }
+
+ [fabbione@daikengo corosync]$ nslookup fedora-master-node1
+ ..
+ Address: 192.168.2.193
+
+ [fabbione@daikengo corosync]$ nslookup 192.168.2.193
+ ..
+ ** server can't find 193.2.168.192.in-addr.arpa.: NXDOMAIN
+
+ [root@fedora-master-node1 tools]# corosync-quorumtool -s
+ ...
+
+ Membership information
+ ----------------------
+ Nodeid Votes Qdevice Name
+ 1 1 NR fedora-master-node1.int.fabbione.net
+ 2 1 NR 192.168.2.194
+
+ (similar on the other node)
+
+ With this patch, when nodelist is available, we simply return ring0_addr
+ name for a node, fixing the output to be:
+
+ Membership information
+ ----------------------
+ Nodeid Votes Qdevice Name
+ 1 1 NR fedora-master-node1
+ 2 1 NR fedora-master-node2
+
+ that also removes possible inconsistencies between nodename, FQDN
+ and so on, by using what user requested in corosync.conf
+
+ In case ring0_addr is not available or numeric output is requested,
+ behavior remains as before.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-08 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: change init/clean up to deal with exit races
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-07 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: make output more meaningful
+ there is really no point to have a per node view of (vote)quorum
+ since all the info are always there.
+
+ drop the -n option for status/display nodes and improve
+ the output to provide a full cluster view at any given time.
+
+ Old format:
+
+ [root@fedora-master-node2 ~]# corosync-quorumtool -s
+ Quorum information
+ ------------------
+ Date: Mon Aug 6 10:22:27 2012
+ Quorum provider: corosync_votequorum
+ Nodes: 2
+ Ring ID: 8
+ Quorate: Yes
+
+ Votequorum information
+ ----------------------
+ Node ID: 3254954176
+ Node state: Member
+ Node votes: 1
+ Qdevice votes: 1
+ Expected votes: 3
+ Highest expected: 3
+ Total votes: 3
+ Quorum: 2
+ Flags: Quorate Qdevice
+
+ Membership information
+ ----------------------
+ Nodeid Votes Name
+ 3238176960 1 fedora-master-node1.int.fabbione.net
+ 3254954176 1 fedora-master-node2.int.fabbione.net
+ 0 1 QDEVICE (Alive/Voting/NoMasterWins)
+
+ New format:
+
+ [root@fedora-master-node1 tools]# ./corosync-quorumtool -s
+ Quorum information
+ ------------------
+ Date: Mon Aug 6 15:50:03 2012
+ Quorum provider: corosync_votequorum
+ Nodes: 2
+ Ring ID: 48
+ Quorate: Yes
+
+ Votequorum information
+ ----------------------
+ Expected votes: 3
+ Highest expected: 3
+ Total votes: 3
+ Quorum: 2
+ Flags: Quorate Qdevice
+
+ Membership information
+ ----------------------
+ Nodeid Votes Qdevice Name
+ 3238176960 1 A,V,MW fedora-master-node1.int.fabbione.net
+ 3254954176 1 NR fedora-master-node2.int.fabbione.net
+ 0 1 QDEVICE
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: make the last QDEVICE define name consistent with everything else
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: bump soname
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: display qdevice votes
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: add missing return call
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: make master_wins check stricter
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: add ENTER/LEAVE for consistency
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: fix library checks on qdevice name and readd qdevice_update
+ for some odd reasons qdevice_update was just gone.. totally...
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: delegate qdevice_master_wins setting to qdevice
+ votequorum has no business to device if master_wins setting is correct or not.
+ only the qdevice can decide and should set the value for votequorum.
+
+ Logic is:
+
+ - user requests master_wins from config
+ - corosync starts
+ - qdevice starts
+ - qdevice reads cmap values / register with votequorum
+ - qdevice decides if the node can support master_wins or not and tells votequorum
+ - at this point votequorum can check if an unquorate node is part of the master_wins
+ partition
+
+ it is the qdevice responsibility to keep that value up to date in votequorum and the
+ value can be changed at runtime.
+
+ this commit also exchange per node master_wins information to lay down the infrastructure
+ to verify discrepancies in node config for master_wins (coming next on this channel).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: drop votequorum_qdevice_getinfo and collapse data into getinfo
+ it's really pointless to have basically a duplicated API call
+ to transfer one value and one name.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: external defines should all be prefixed with VOTEQUORUM_
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: drop _FLAG_ from defines
+ those are all info flags.. it's redudant and inconsistent
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: fix define name to match reality
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ qdevice: implement master_wins partition
+ in previous incarnation of qdisk + cman, master_wins was restricted
+ to 2 node only.
+
+ In this new version it is possible to use master_wins for any cluster
+ size.
+
+ Let's assume a 4 node cluster. Each node votes 1, qdevice votes 3.
+
+ node 1 becomes qdevice master
+ node 2/3/4 no
+
+ In case of a split (let's assume 2/2):
+
+ partition 1: {4, 1}
+ partition 2: {1, 1}
+
+ node 2 in partition 1 would normally be unquorate, leaving effectively
+ only node 1 active.
+
+ master_wins allows node 2 to recognize to be part of a quorate partition
+ (since node1 is broadcasting that qdevice is voting) and retain
+ quorum.
+
+ node1 has never lost quorate status since qdevice is voting there.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: fix flag check for qdevice votes propagation
+ and cleanup similar code to make it more readable
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: remove last instance of state and rename it to cast_vote
+ also align naming of vote to cast_vote for info calls
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: several major bug fixes and code cleanup
+ - add a protection check to avoid spurious messages on membership
+ change
+ - greately simplify processing of nodeinfo, since the only
+ data that we send for qdevice over nodeinfo is the number of votes
+ - fix a flag check to trigger quorum calculation that would
+ leave a cluster unquorate under certain conditions
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: move to the new flag structure
+ simplify different code path as checks are simpler, separate
+ ALIVE and CAST_VOTE
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: simplify getinfo data and protect against call against quorum node
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: use REGISTERED flag consistently
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: simply internal qdevice_getinfo function
+ as data are moving around we can drop lots of special cases
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: add qdevice CAST_VOTE status/flag
+ this is a preparation commit for the next changes. right now it is
+ no more than an alias to ALIVE.
+
+ CAST_VOTE is required to support master/slave feature from qdevice.
+
+ Effectively a quorum device can be:
+
+ Not registered / registered (connected to API but nothing else is happening)
+
+ if registered:
+
+ Not alive / alive (quorum device is petting the API via poll and timer is running)
+
+ if alive:
+
+ Not voting (slave) / voting (master)
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: rename NODE_FLAGS_QDEVICE_STATE to NODE_FLAGS_QDEVICE_ALIVE
+ STATE is confusing and overloaded term in votequorum as it's used for nodes
+ and other bits.
+
+ make the name unique and ALIVE means that the qdevice is heartbeating
+ to votequorum.
+
+ improve display of the status in tools and tests.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: rename NODE_FLAGS_QDEVICE to NODE_FLAGS_QDEVICE_REGISTERED
+ make the flag name explicit
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: re-enable qdevice api
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorum devices: add support to build system
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-08-04 Steven Dake <sdake@redhat.com>
+
+ Add groff as a BuildRequires to spec file
+ According to Fedora packaging guidelines, groff is not on the list
+ of package exceptions for BuildRequires. A recent change in the Fedora
+ build system has triggered breakage in building rpm packages and it
+ is likely this package won't build for Fedora 18.
+
+ Reference:
+ http://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2
+
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+2012-08-02 Jan Friesse <jfriesse@redhat.com>
+
+ Don't call sync_* funcs for unloaded services
+ When service is unloaded, sync shouldn't call sync_init|process|activate
+ and abort functions. It happens very rare, but in process of unloading
+ all services, totem can recreate membership and bad things can happen
+ (service is unloaded, so there may be access to already freed memory,
+ ...)
+
+ Solution is to fetch services sync handlers in every time when we are
+ building service list instead of using precreated one.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Introduce SERVICES_COUNT_MAX macro
+ Sync/service was using maximal number of services in ehter numberic form
+ (magic constant) or inconsistently, this means using
+ SERVICE_HANDLER_MAXIMUM_COUNT which means maximal number of handlers.
+
+ New macro solves this.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-07-30 Jan Friesse <jfriesse@redhat.com>
+
+ cmap_keys: Document few more runtime statistics
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cts: Delete shm blacbox after corosync kill
+ This makes SHM Audit pass in test CpgCfgChgOnExecCrash.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg: Be more verbose for procjoin message
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-07-12 Jan Friesse <jfriesse@redhat.com>
+
+ cts: Change DC_IDLE pattern
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cts: Make shm_leak_audit run
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Correctly free state string in wd
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cts: Change local_start[ing|ed] pattern in CTS
+ Previous pattern is no longer send to syslog. Use first pattern which
+ is.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Support for crypto_ and nodelist in lenses
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-07-11 Jan Friesse <jfriesse@redhat.com>
+
+ Revert "Free state variable allocated in wd_resource_state_is_ok"
+ This reverts commit 01c63ca17ca5b5a780cff0dd96d7d432b3e980a3.
+
+2012-06-14 Jan Friesse <jfriesse@redhat.com>
+
+ cpg: Enhance downlist selection algorithm
+ Let's say we have 2 nodes:
+ - node 2 is paused
+ - node 1 create membership (one node)
+ - node 2 is unpaused
+
+ Result is that node 1 downlist is selected, so it means that from node 2
+ point of view, node 1 was never down.
+
+ Patch solves situation by adding additional check for largest previous
+ membership.
+
+ So current tests are:
+ 1) largest (previous #nodes - #nodes know to have left)
+ 2) (then) largest previous membership
+ 3) (and last as a tie-breaker) node with smallest nodeid
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cpg: Print cpg name to debug informations
+ In downlist and joinlist debug output group was printed in nonsense
+ format of integer to pointer to array.
+
+ Now it's printed by full name.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cpg: Process join list after downlists
+ let's say following situation will happen:
+ - we have 3 nodes
+ - on wire messages looks like D1,J1,D2,J2,D3,J3 (D is downlist, J is
+ joinlist)
+ - let's say, D1 and D3 contains node 2
+ - it means that J2 is applied, but right after that, D1 (or D3) is
+ applied what means, node 2 is again considered down
+
+ It's solved by collecting joinlists and apply them after downlist, so
+ order is:
+ - apply best matching downlist
+ - apply all joinlists
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cpg: Never choose downlist with localnode
+ Test scenario is follows:
+ - node 1, node 2
+ - node 1 is paused
+ - node 2 sees node 1 dead
+ - node 1 unpaused
+ - node 1 and 2 both choose same dowlist message which includes node 2 ->
+ node 2 is efectivelly disconnected
+
+ Patch includes additional test if left_node is localnode. If so, such
+ downlist is ignored.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-06-11 Jerome FLESCH <jerome.flesch@netasq.com>
+
+ When flushing, discard only memb_join messages
+ Patch solves problem when 1 ring out of 2 went up/down quite often.
+
+ The simplest setup to reproduce bug is following:
+ - 2 VMs, connected by 2 network interfaces
+ - OS: Linux
+ - On one of the VMs, a test program sending some CPG messages (see the
+ script "test_corosync.sh" joined to this mail for example)
+
+ Here are the Corosync logs we get when we do this setup:
+
+ Jun 06 16:23:40 corosync [TOTEM ] A processor joined or left the
+ membership and a new membership was formed.
+ Jun 06 16:23:40 corosync [CPG ] chosen downlist: sender r(0)
+ ip(192.168.56.104) r(1) ip(192.168.57.104) ; members(old:1 left:0)
+ Jun 06 16:23:40 corosync [MAIN ] Completed service synchronization,
+ ready to provide service.
+ Jun 06 16:24:37 corosync [TOTEM ] Marking ringid 1 interface
+ 192.168.57.105 FAULTY
+ Jun 06 16:24:38 corosync [TOTEM ] Automatically recovered ring 1
+ Jun 06 16:25:33 corosync [TOTEM ] Marking ringid 1 interface
+ 192.168.57.105 FAULTY
+ Jun 06 16:25:34 corosync [TOTEM ] Automatically recovered ring 1
+ Jun 06 16:26:35 corosync [TOTEM ] Marking ringid 1 interface
+ 192.168.57.105 FAULTY
+ Jun 06 16:26:36 corosync [TOTEM ] Automatically recovered ring 1
+ (...)
+
+ The second ring goes down about every 2 minutes and automatically back
+ up right after.
+
+ We spent some times looking for the commit that introduced this bug, and
+ it appears it's due the following one:
+ Corosync 1.3.3 -> 1.3.4: e27a58d93d0d3795beb550f87b660c9c04f11386
+ Corosync 1.4.1 -> 1.4.2: be608c050247e5f9c8266b8a0f9803cc0a3dc881
+ Commit message: Ignore memb_join messages during flush operations
+
+ I had a look at this commit, and it seems to me it's dropping too many
+ packets:
+ Because of this commit, while totemrrp_recv_flush() is called, Corosync
+ drops memb_join packets, but also ORF tokens. In the end, it seems that
+ sometimes, we drop so many of them that Corosync marks the ring as
+ faulty.
+
+ To fix that, only memb_join messages are dropped now.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-06-05 Jan Friesse <jfriesse@redhat.com>
+
+ Store fdata with timestamp and pid in name
+ This should allow easier handling of various blackbox dumps. Original
+ fdata name is now symlink to latest created dump.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Remove corosync-fplay
+ Libqb now ships with qb-blackbox command doing same job as
+ corosync-fplay. It doesn't make sense to maintain two versions of same
+ utility so corosync-fplay can go. corosync-blackbox command now calls
+ directly qb-blackbox.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-06-01 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ notifyd: handle addition of a members key to CMAP
+ When new key (totem.pg.mrp.srp.members) was added to CMAP,
+ we would like to receive the trap of this time.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-06-01 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ testcpg: fix build warning
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-05-31 Jan Friesse <jfriesse@redhat.com>
+
+ totemudpu: Bind sending sockets to bindto address
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-05-29 Jan Friesse <jfriesse@redhat.com>
+
+ snmp MIB: Remove unnecessary comma
+ Thank Hideo Yamauch for pointing this bug.
+
+2012-05-29 Kazunori INOUE <inouekazu@intellilink.co.jp>
+
+ notifyd snmp: fix a function name
+ This fixes the bug to which snmp trap of rrp_faulty_event is not sent.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-05-29 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ rename mainconfig to logconfig
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ mainconfig: allow mainconfig logic to be used both internally and externally
+ corosync logging configuration logic is rather complex and in order
+ to make it simpler to reuse (at least within corosync/ tree)
+ we need to be able to use both icmap and cmap.
+
+ the patch might seem controversial, but it reduces heaps of code around
+ from qdevices (coming next).
+
+ It might be useful to consider moving this to a common shared library
+ but there aren't enough users yet and a shared lib would force
+ corosync to link with cmap (that we do not want at all costs)
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-05-29 Angus Salkeld <asalkeld@redhat.com>
+
+ LOG: make sure the log target is enabled.
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ LOG: handle closing unused logfiles better
+ This fixes a bug where having a second log file will close
+ the previous one.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ LOG: be more explict about the qb file names
+ else we can get messages been put in the wrong subsys.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ LOG: drop the number of logging subsystems from 64 to 32
+ Currently 14 are used, 64 seems like a waste of memory.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-05-24 Barney Desmond <barney.desmond@anchor.net.au>
+
+ Correct the description of bindnetaddr config parameter in manpage
+ bindnetaddr has been wrongly described in the past, and did not
+ document that fact that it will also accept exact address matches.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-05-24 Jan Friesse <jfriesse@redhat.com>
+
+ totemip: Support bind to exact address
+ Logic for binding now works in following way:
+ - Try to find exact match
+ - If not exact match is found, use first found network address
+
+ This allows set concrete IP even if network settings contains two IPs on
+ same network.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ totemip: insert items in correct order
+ list_add_tail is used instead of list_add so ip addresses are inserted
+ in same order as returned by getifaddrs.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-05-21 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ init: major cleanup
+ - rename generic.in and notifyd.in to corosync.in and corosync-notifyd.in
+ (makes build simpler)
+ - fix sysvinit corosync.in sleep time to include a check for when IPC
+ are ready and drop cman bits (there is no cman with corosync 2.0)
+ - corosync-notifyd.service should always start after corosync.service
+ - corosync.service should always start after network
+ - corosync.service uses init script wrapper
+ - install/ship sysvinit as wrappers for systemd in /usr/share/corosync
+ when necessary
+ - change the build system to deal with all of the above
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-05-17 Jan Friesse <jfriesse@redhat.com>
+
+ Include ringid in processor joined log message
+ This should help correlate syslog entires with their blackbox
+ counterparts.
+
+ Reviewed-by: Andrew Beekhof <andrew@beekhof.net>
+
+2012-05-15 Jan Friesse <jfriesse@redhat.com>
+
+ Update TODO file
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-04-26 Dan Clark <2clarkd@gmail.com>
+
+ Improve testcpg to handle change of node identity
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-04-24 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ icmap: don't leak memory when changing ro/rw status on a key
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ icmap: fix a valgrind errors (pass 1)
+ clean up a lot of allocated blocks at exit.
+ those changes has no runtime effects, but it makes valgrind
+ output a bit more useful by dropping over 700 errors/warnings to skip
+ over every single run.
+
+ there are still a few icmap related valgrind errors but those need
+ some more complex and timeconsuming investigation.
+
+ pre patch:
+
+ ==21844== HEAP SUMMARY:
+ ==21844== in use at exit: 1,229,321 bytes in 1,516 blocks
+ ==21844== total heap usage: 7,191 allocs, 5,675 frees, 3,819,853 bytes allocated
+
+ ==21844== LEAK SUMMARY:
+ ==21844== definitely lost: 3,617 bytes in 11 blocks
+ ==21844== indirectly lost: 21,960 bytes in 11 blocks
+ ==21844== possibly lost: 1,080,101 bytes in 131 blocks
+ ==21844== still reachable: 123,643 bytes in 1,363 blocks
+ ==21844== suppressed: 0 bytes in 0 blocks
+
+ ==21844== ERROR SUMMARY: 136 errors from 136 contexts (suppressed: 0 from 0)
+
+ post patch:
+
+ ==25793== HEAP SUMMARY:
+ ==25793== in use at exit: 1,185,870 bytes in 808 blocks
+ ==25793== total heap usage: 9,427 allocs, 8,619 frees, 4,156,841 bytes allocated
+
+ ==25793== LEAK SUMMARY:
+ ==25793== definitely lost: 3,697 bytes in 12 blocks
+ ==25793== indirectly lost: 22,248 bytes in 13 blocks
+ ==25793== possibly lost: 1,079,655 bytes in 113 blocks
+ ==25793== still reachable: 80,270 bytes in 670 blocks
+ ==25793== suppressed: 0 bytes in 0 blocks
+
+ ==25793== ERROR SUMMARY: 119 errors from 119 contexts (suppressed: 0 from 0)
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-04-20 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto init: release *_slot resource after init
+ Those are only used at init phase and we can free some memory for the system.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-04-16 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ ipcs: allow connections only after all services are ready
+ this fixes a rather annoying race condition at startup where a client
+ connects to corosync "too fast" before the service is ready to operate
+ and client gets some random data during initialization phase.
+
+ With this fix, we allow connections to ipc only after the main engine
+ is operational and configured (and after the first totem transition).
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-04-10 Jan Friesse <jfriesse@redhat.com>
+
+ Always allocate totemrrp stats array
+ This prevents segfault when rrp mode is set with only one ring.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Properly parse uidgid files
+ Full path to key is now tested rather then key name only.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-04-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: improve systemd service file handling
+ this solves the issue of having to special case before and after usrmove
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-04-06 Jan Friesse <jfriesse@redhat.com>
+
+ Remove info pages see also from cmapctl man
+ Corosync doesn't have documentation in info format, so information is
+ corosync-cmapctl was not true.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add man page with CMAP keys created by corosync
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-04-05 Angus Salkeld <asalkeld@redhat.com>
+
+ Check before making a reference to __start___verbose
+
+2012-04-03 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ conf: add quorum section to example config
+ document only the provider option since all the others
+ (votes/expected_votes/etc) are provider specific.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-04-03 Angus Salkeld <asalkeld@redhat.com>
+
+ Only call qb_ipcc_disconnect when the instance is fully dereferenced.
+ Sometimes calling xyz_finilize() within a dispatch would
+ cause a crash because the qb_ipcc_disconnect actually
+ disconnects immediatly and frees it't memory. whereas
+ the corosync structure is reference counted. So this
+ makes use of the reference counting to only call
+ qb_ipcc_disconnect when it is fully dereferenced.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-27 Jan Friesse <jfriesse@redhat.com>
+
+ Convert udpu example to use nodelist
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-27 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totemcrypt: fix build warning (unused variable)
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemcrypto: major code cleanup (no functional or onwire changes)
+ - cleanup include list
+ - reorder code and functions (crypto then hash)
+ - split crypt/decrypt/hash functions
+ - some micro optimizations by dropping a few memcpy
+ - make the code more readable (better var names and buffers mapping)
+ - improve exit paths on error (return codes and free)
+ - store crypto header size instead of recalculating it per packet
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-03-26 Jan Friesse <jfriesse@redhat.com>
+
+ Make ifaces_get work with dynamic no_rings
+ Commit which added number of addresses to srp_address structure didn't
+ count with totemsrp_ifaces_get where whole structure was copied instead
+ of addresses only. This is now fixed.
+
+ Also to make API totempg forward compatible, size of interfaces array
+ must be passed to ifaces_get like functions to prevent memory overwrite.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-22 Jan Friesse <jfriesse@redhat.com>
+
+ Add no_addrs field in srp_addr structure
+ This should allow us future change to dynamic number of rings without
+ breaking wire compatibility.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-03-16 Jan Friesse <jfriesse@redhat.com>
+
+ Reflect config changes for crypto in examples
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Mark few more icmap keys as read only
+ Also most of the key settings are now centralized in one function, so
+ it's easier to audit.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-15 Jan Friesse <jfriesse@redhat.com>
+
+ Make common_lib version independand on totem_pg
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto: Remove sha224 and add md5 hash
+ SHA224 is not supported on RHEL6 and also it's kind of weird. Instead of
+ that, md5 can now be configured.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Update crypto_set API
+ Also few leftovers from cfg is removed and version of totempg is
+ increased to 5 to reflect all changes we made
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-15 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto: allocate padding in crypto_header
+ while it might seem a waste of space by using 2 extra bytes in
+ the crypto_config_header, it actually gives us the option
+ to grow "unknown at this time" features without hopefully
+ breaking onwire compat
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ crypto: add new hashing methods and fix config defaults
+ add support for sha224/256/384/512
+
+ change config defaults to match coroparse and totemconfig
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-03-15 Jan Friesse <jfriesse@redhat.com>
+
+ Document crypto_hash and crypto_cipher options
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto: change network packets and add dynamic crypto header/data
+ The new network packet will look:
+
+ struct crypto_config_header * that provides info on crypto/hashing
+ hash_block[size based on hashing function] (if hash is selected)
+ salt[SALT_SIZE] (if crypto is selected)
+ ...data...
+
+ and we kill the concept of crypto_security_header completely since
+ values are now dynamic for hash_block_size.
+
+ the reason why hash_block needs to be there, is because we do
+ hash salt in case both hashing and crypto are selected.
+
+ the crypto_config_header is totally transparent to totem
+ and to any underlaying crypto functions.
+
+ as we go cleaning, also use HASH_BLOCK_SIZE to generate hash_block.
+ the input buffer and output buffer size are dependent on the algo
+ used to hash.
+
+ we can now determine the real header size and adjust net_mtu properly
+ at startup. This will allow in future to use any algorithm since
+ size is dynamic.
+
+ some part of the code still needs some polishing to make it more
+ readable (specially the mapping of pointers into the packet
+ is still a bit obscure).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totem: don't send garbage onwire if we fail to crypt
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ crypto: add crypto config to network data
+ this add 2 bytes at the end of the each packet to propagate
+ config info.
+
+ in case there is a config mismatch packet must be rejected.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ crypto: drop secauth and make crypto none work again
+ keep totem.secauth config key for compatibility
+
+ if the key is NOT set, crypto will default to aes256/sha1
+ if the key is set to "off", crypto is disabled.
+ this reflects pretty much old behavior
+
+ keywords totem.crypto_cipher and totem.crypto_hash can
+ override secauth individually.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-03-13 Jan Friesse <jfriesse@redhat.com>
+
+ Parse and use hash and crypto from config file
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Rename totemcrypto
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-13 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ crypto: mask the crypto operations from totem packet size management
+ totem doesn't need to understand what crypto does.
+
+ totem needs to be able to tell crypto: "those are data, play with them"
+ and crypto needs to return: "here are your scrambled data and the new size"
+
+ similar to decrypt/verify.
+
+ this way we add enough dynamic within crypto to change header size and all
+ at any given time (for different hash algorithm for example) without
+ affecting on wire compat.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-03-13 Jan Friesse <jfriesse@redhat.com>
+
+ onecrypt: move encryption code to crypto.c
+ This will remove duplicity of code.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cfg: remove crypto_set
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ corosync-cfgtool: Remove set of cryptography
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Remove libtomcrypt
+ Tomcrypt in corosync is for long time not updated. Because we have
+ support for libnss, libtomcrypt can be removed.
+
+ Also few leftovers (AES is 256 bits, not 128, ...) are removed.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-03-12 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ drop evs service
+ there are several reasons for this:
+
+ 1) evs is only partially implemented with no plans to complete it
+
+ typedef enum {
+ EVS_TYPE_UNORDERED, /* not implemented */
+ EVS_TYPE_FIFO, /* same as agreed */
+ EVS_TYPE_AGREED,
+ EVS_TYPE_SAFE /* not implemented */
+ } evs_guarantee_t;
+
+ 2) evs has no users in any upstream distribution and no search
+ engine can find any other upstream using it.
+
+ 3) the only reason (I was told) to carry around evs was that evs
+ receives the full ring_id struct from totem. This is only
+ partially correct because while the structures are prepared
+ to carry around those data, they are never transmitted from
+ corosync engine down the IPC line to the user.
+ CPG ring_id contains the exact same information and it's
+ actually less buggy (due to prototying of the info).
+
+ worst case scenario where a user really absolutely need libevs,
+ it can be easily reimplemented as libcpg wrapper and avoid
+ lots of code duplication.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: drop another leftover from the past
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: drop obsoleted SOCKETDIR option
+ yet another leftover from the past that can go away
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: drop last LCRSO references
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ pload: make it a test service and not a public one
+ pload is a performance benchmark that measures the onwire
+ speed of corosync.
+
+ problem is that once pload has been executed, the cluster
+ is basically dead.
+
+ turn pload into a test tool, by removing corosync-pload tool
+ and user library.
+
+ cleanup pload code to make it more readable and drop lots
+ of unnecessary stuff.
+
+ add test/ploadstart tool that can configure and start pload
+ via cmap calls.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-03-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ totem: drop crypt_accept: concept/option
+ this was another old onwire compat mode that is not useful anylonger.
+
+ we can safely move the new model by default.
+
+ According to Honza (real hardware 1 node testing) there are no
+ performance impact.
+
+ My tests (8 nodes VM cluster), there is up to 10/12% performance
+ improvements up to 1M packet size where old and new models are equal.
+
+ As a side note, nss still shows to be a performance loss on both
+ real and virtual hw (without any kind of nss hw acceleration).
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-03-09 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix typo in stats key name.
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Remove unused function logsys_priority_name_get()
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add pid, hostname and process name to the logfile
+ Note this is only for file targets not stderr or syslog.
+
+ https://bugzilla.redhat.com/show_bug.cgi?id=789925
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-03-09 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ drop last references to compatibility: whitetank
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ utils: cleanup main daemon exit codes
+ some of them are not in use anymore and can be dropped.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ sync: kill evil and syncv1 in one shot
+ this change breaks onwire compatibility.
+
+ cpg is the only user of sync_* interface and it's the only
+ service that will require extra testing.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-03-06 Jan Friesse <jfriesse@redhat.com>
+
+ man: Add cmap pages to index.html
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: Add description of cpg_iteration_* functions
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: Fix cmap_iter_finalize typo
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-03-05 Angus Salkeld <asalkeld@redhat.com>
+
+ Treat ENOMSG as TRY_AGAIN.
+ ENOMSG is returned by the ringbuffer when you attempt to read
+ a message and there is nothing there to read.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add common IPC errors.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-03-05 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: improve display of status data
+ always display membership data from the local node
+
+ display when a node is unknown to the local node instead of an error
+ from IPC.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: move last malloc/alloca buf to static
+ this should guarantee that votequorum won't fail under high memory
+ pressure. Price is 3500 bytes extra preallocated at startup.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix node allocation memory leak
+ stop using malloc for each new node, because we cannot free the memory
+ easily. Move to a static allocated buffer that can contain
+ PROCESSOR_MAX + qdevice cluster_node instead.
+
+ We can never have more than PROCESSOR_MAX nodes anyway and the memory
+ footprint is small enough compared to memory leaks (those can
+ effectively happen only in very dynamic clusters with tons of different
+ nodes joining/leaveing with different nodeids).
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-03-02 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: rename leave_remove to allow_downscale
+ pointed out that leave_remove can be easily confused with the old
+ cman leave_remove behavior. The two are substantially different
+ and we need to avoid confusion both for users and our support team.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix handling of config updates
+ cmap changes are local to the node only and should not be broadcasted
+ as configuration changes.
+
+ if any change has happened to us, we will inform other nodes via
+ send_nodeinfo.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: free our data and lists on exit
+ this is mostly to avoid valgrind errors on exit and make the output
+ more readable.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: disallow special features vs qdevice
+ simply taking the safest path here since integration of qdevice is not
+ fully complete
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix node check based on reconfig parameter
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: make a common function to calculate votes and cluster members
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: incorporate static config into dynamic
+ no functional changes or extra features yet
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: move all configuration in votequorum_readconfig
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: start moving from static to fully dynamic config
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: disallow wait_for_all and qdevice operations
+ The problem here is that user expectations, when using both modes
+ at the same time, have not been set yet. There are 2/3 options
+ that need investigation.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: improve debugging output
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-03-02 Jan Friesse <jfriesse@redhat.com>
+
+ Always set interface_up in totemip_iface_check
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-29 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: fix node->flags type when receiving nodeinfo messages
+ old_flags was set to uint16_t but it needs to be uint32_t.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: fix segfault in wfa status update
+ this is a regression introduced by cb5fd775
+
+ when reading static config us->flags does not exists yet and therefor
+ setting it will cause a segfault.
+
+ Move the settings after cluster_node *us is created, with the long
+ term plan to simply kill the whole _static readconfig bits
+ in favour of dynamic (runtime changeable) bits.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-02-28 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: improve Membership information output
+ align nodeid, votes and name to make it all more readable
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtool: make output more human friendly and retain machine parsable bits
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtools: fix typo in man page
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtools: drop unused option parsing
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtool: fix version display info
+ we don't need that on every run
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-02-27 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: swap node state and node votes output
+ there is no point to show the votes if the node is dead
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: fix votequorum_getinfo man page and align struct name
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorumtool: update man page and help text
+ improve error output since this is more than a debugging tool now
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: major rework to fix qdevice API and integration with core
+ qdevice is a very special node in the cluster and it adds a certain
+ amount of complexity and special cases across the code.
+
+ most of the qdevice data are shared across the cluster (name/votes)
+ but effectively each node has a different view of the qdevice
+ (registered/unregistered/voting/etc.)
+
+ with this change, we align the qdevice view across the node,
+ exchanging more data between nodes and we fix how qdevice behaves
+ and it is configured.
+
+ The only side effect is that the amount of data transmitted on wire
+ is slightly higher.
+
+ The qdevice API is still disabled by default. This means that
+ the amount of real changes in current code are a lot smaller
+ than it appears by this patch.
+
+ TODO: documentation/man pages needs to be updated once
+ this change is in (and behavior finalized).
+
+ User visible changes:
+
+ - configuration (coroparse, exec/votequorum):
+ the quorum device section is now standalone within the quorum.
+
+ quorum {
+ provider: corosync_votequorum
+ device {
+ model: (name)
+ timeout: (millisec)
+ votes:
+ }
+ }
+
+ the keyword "model:" is mandatory to enable qdevice in configuration
+ and should express the name of the script/daemon that will provide
+ the qdevice. Looking into the future, an init script or systemd
+ service will look for that name in /path/to/be/decided/name
+ and start/stop qdevice.
+
+ timeout: defines the maximum interval the qdevice implementation
+ has available between poll (see votequorum_qdevice_poll.3) before
+ the device is considered dead and votes discarded
+
+ votes: is now a configuration parameter and not an API call.
+ quorum devices don't care what they need to vote.
+ votes is autocalculated when a nodelist is available and all
+ nodes in the list vote 1. Otherwise this parameter is mandatory.
+
+ - configuration (exec/votequorum):
+ startup and runtime configuration changes have been improved.
+ errors at startup are considered fatal. errors at runtime
+ have different exit paths.
+
+ startup:
+
+ * quorum.two_node and qdevice are incompatible.
+ * quorum.expected_votes requires quorum.device.votes.
+ * quorum.expected_votes - quorum.device.votes cannot be lower
+ than 2.
+ * qdevice and last_man_standing are mutually exclusive.
+ * qdevice and auto_tie_breaker are mutually exclusive.
+
+ runtime config changes:
+
+ * quorum.two_node and qdevice are incompatible:
+ if quorum device is alive, two_node is disabled.
+ if quorum device is not alive and node count is 2, two_node is
+ enabled, and quorum device cannot be registered
+
+ * if either last_man_standing or auto_tie_breaker were enabled
+ at startup, and at runtime quorum device is configured,
+ quorum device registration will be blocked.
+
+ * if quorum.expected_votes is configured but not quorum.device.votes,
+ quorum device registration will be blocked.
+
+ * if quorum.device.votes is not configured and we cannot
+ automatically calculate it, quorum device registration will be blocked.
+
+ * An error in configuring quorum.expected_votes and quorum.device.votes
+ will block quorum device registration.
+
+ blocking quorum device registation, also means dropping the votes.
+
+ quorum.device.votes (either set or automatically calculated) is now
+ used to determine current expected_votes in the cluster.
+
+ - logging (exec/votequorum):
+
+ all errors from configuration are treated as WARNING/CRITICAL.
+
+ lots of extra DEBUG output is added (see internal changes too).
+
+ - corosync-quorumtool (tools/corosync-quorumtool):
+
+ * added option to forcefully kick out a quorum device from the local
+ node. This is for emergency recovery only and it is only
+ available when qdevice API is built-in.
+
+ * Improved status output, specifically add node state and qdevice
+ information
+
+ [root@fedora-master-node2 coro]# corosync-quorumtool -s
+ Version: 1.99.4.12-9c7d-dirty
+ Quorum type: corosync_votequorum
+ Nodes: 2
+ Ring ID: 132
+ Quorate: Yes
+ Node votes: 1
+ Node state: Member
+ Expected votes: 3
+ Highest expected: 3
+ Total votes: 3
+ Quorum: 2
+ Flags: Quorate Qdevice
+ Nodeid Votes Name
+ 1 1 fedora-master-node1.int.fabbione.net
+ 2 1 fedora-master-node2.int.fabbione.net
+ 0 1 QDEVICE (Voting)
+
+ * allow to print status for any node in the cluster known to
+ local node.
+
+ [root@fedora-master-node1 coro]# corosync-quorumtool -s
+ Version: 1.99.4.12-9c7d-dirty
+ Quorum type: corosync_votequorum
+ Nodes: 2
+ Ring ID: 144
+ Quorate: Yes
+ Node votes: 1
+ Node state: Member
+ Expected votes: 3
+ Highest expected: 3
+ Total votes: 2
+ Quorum: 2
+ Flags: Quorate
+ Nodeid Votes Name
+ 1 1 fedora-master-node1.int.fabbione.net
+ 2 1 fedora-master-node2.int.fabbione.net
+
+ [root@fedora-master-node1 coro]# corosync-quorumtool -s -n 2
+ Version: 1.99.4.12-9c7d-dirty
+ Quorum type: corosync_votequorum
+ Nodes: 2
+ Ring ID: 144
+ Quorate: Yes
+ Node votes: 1
+ Node state: Member
+ Expected votes: 3
+ Highest expected: 3
+ Total votes: 3
+ Quorum: 2
+ Flags: Quorate Qdevice
+ Nodeid Votes Name
+ 1 1 fedora-master-node1.int.fabbione.net
+ 2 1 fedora-master-node2.int.fabbione.net
+ 0 1 QDEVICE (Voting)
+
+ Internal changes:
+
+ - change qdevice timer to not run all time, but only when necessary.
+ - change votequorum_nodeinfo on wire data to use flags instead of uint8_t
+ and add QDEVICE status.
+ - allocate nodeid 0 to qdevice since it's the only real
+ nodeid that be reserved.
+ - change send_nodeinfo to allow to send nodeinfo for any node
+ so that we can share qdevice info across the cluster
+ (and this might be useful in future if we need to sync
+ internal cluster view).
+ - add votequorum api call to update qdevice name
+ - add runtime data if quorum device has been forcefully disabled
+ by config error
+ - add qdevice votes to expected_votes calculation (this
+ is probably the biggest difference vs cman)
+ - change votequorum_read_nodelist_configuration so that
+ we can autocalculate votes for qdevice (we need the nodecount
+ vs votes).
+ - add all checks for startup/runtime config (see above).
+ - do not make qdevice part of the membership_list received from
+ totem. None of our users care about it and it is not a real node.
+ - change onwire message handlers to deal with "data for this node from any node"
+ case and undersand nodeid 0 for qdevice info
+ - always allocate qdevice at startup. this simplifies code a lot.
+ - dispatch qdevice nodeinfo on membership changes.
+ - inform libvotequorum users when a qdevice is registered
+ - improve substantially qdevice api and add a simple
+ barrier based on qdevice name.
+ - add qdevice API barrier at cluster level. This feature allow
+ only one qdevice name to be active in the cluster at any time.
+ - qdevice getinfo can now report status for qdevice on any node.
+ - change slightly the way the qdevice API is built-in/out:
+ only the libvotequorum calls are #ifdef'out now. Doing so in
+ the core is too complex and would make the code unreadable
+ with the risk of missing a bit or two effectively introducing
+ an on-wire incompatibility if we will ever turn the API on.
+ - probably added some bugs on the way...
+
+ TODO: update qdevice_* API once the above is settled and test
+ qdevice integration with other features.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com> (only second part)
+
+2012-02-22 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix fallout from swithing to common shared lib
+ when building corosync on a clean system or for the very first
+ time, corosync_common needs to be visible both via -L for link
+ and for the LD_PATH, otherwise the linker cannot resolve
+ normal library dependencies.
+
+ This issue does NOT affect corosync users, but it's confined
+ to internal corosync only.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-02-21 Jan Friesse <jfriesse@redhat.com>
+
+ Document SAM_RECOVERY_POLICY_CMAP
+ Also all irelevant references for SAM_RECOVERY_POLICY_CONFDB are
+ corrected.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Tweak nodeid warning
+ Nodeid warning now appears only when both totem.nodeid and nodelist
+ nodeid exists. When nodelist nodeid is not defined, totem.nodeid is
+ used.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ spec: Add optional xmlconf
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ iba: Use configured node id
+ Corosync was ignoring nodeid for iba transport and always used
+ autogenerated one.
+
+ Original patch by: Jason Dillaman <jdillama@redhat.com>
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-02-21 Angus Salkeld <asalkeld@redhat.com>
+
+ Convert the common lib into a shared lib.
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-02-16 Jan Friesse <jfriesse@redhat.com>
+
+ Allow autoconfiguration of interface section
+ Thanks to totemip_getifaddrs infrastructure it's now possible to use
+ nodelist informations to autoconfigure interface bindnetaddr. Together
+ with cluster_name, interface section can be completely omitted.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ totemconfig: ensure suffix for ringX_addr
+ Patch makes sure, that ringX_addr key has really _addr suffix.
+ Previously, it was possible to enter ringXanything and it was
+ interpreted as ringX_addr.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmap: Handle NULL in [i]cmap_set_string value
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Create solaris specific getifaddrs
+ This not only makes possible to use generic totemip_iface_check, but
+ also fixes some problems with previous implementation (fixed mask, not
+ very well supported ipv6, ...)
+
+ Tested on OpenIndiana 151a
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add totemip_iface_check based on totemip_getifaddrs
+ Also Linux and BSD/Darwin specific bits are no longer needed, so they
+ are gone.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add generic implementation of getifaddrs
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-14 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix make dist to include xml man pages
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-02-14 Angus Salkeld <asalkeld@redhat.com>
+
+ Change the IPC TIMEOUT to block.
+ This is to make sure that we properly wait for responses
+ from corosync. I have made a fix to libqb to properly
+ handle the case when corosync exits/crashes between
+ a send and receive.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ CPG: fix membership_get()
+ 1) remove BUSY loop from membership get
+ Note only cpg_join and cpg_leave ever set the
+ BUSY error code.
+ 2) set the size correctly
+ 3) copy the name in correctly
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ TEST: remove unused code.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move hdb_error_to_cs to corotypes.h
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ TEST: add logging to testcpg and testevs
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ TEST: Use pacemaker repeat macro
+ This is to simulate the way pacemaker uses the cpg api.
+ With this you can run testcpg directly after corosync
+ starts and it should initialise ok.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-14 Steven Dake <sdake@redhat.com>
+
+ Remove a reference to openais that is present in corosync.conf.5
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Update corosync_overview.8 man page
+ Move forward 5 years on our main man page ;)
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Remove empty testquorum.c file
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Update copyright header dates in exec directory
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Update copyright dates on include/totem files
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Remove jhash.h since it is not used
+ We would use libqb for hashing now if we needed hashing.
+ cpg no longer uses jhash.h.
+
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Updated copyright dates in include directory
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Update copyright dates in tools directory
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Update copyright dates in util directory
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Remove unused or unimplemented CFG apis
+ Remove:
+ cfg_statetrack
+ cfg_statetrackstop
+ cfg_administrativestateste
+ cfg_administrativestateget
+ cfg_serviceload
+ cfg_serviceunload
+
+ Rev SO to 5.0.0
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-02-13 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: cleanup all man pages
+ sort and reference man pages in typical usage order
+
+ update some structures/defines
+
+ clean formatting to be consistent
+
+ don't ship qdevice API man pages for now
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-02-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorum: cleanup all man pages
+ sort and reference man pages in typical usage order
+
+ update some structures/defines
+
+ clean formatting to be consistent
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-02-09 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cpg: drop dead code
+ not used/referenced anywhere
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ coverity: increase aggressiveness of the test and fix build
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: fix variable init
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtool: fix some var init and checks
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: fix possible memory corruption
+ nodeid = 0 is a valide nodeid and node associated with it should
+ not be freed
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: don't leak memory on error
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ testvotequorum: fix test loop to break if votequorum goes away
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtool: fix return code
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ testquorum: check for quorum_dispatch return code
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtools: check for quorum_dispatch return code
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ specfile: ship new man pages
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: add *quorum_track* devel man pages
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: drop dead code
+ spotted while writing man pages. There are no users for this struct
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: add quorum_overview.8 man page
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: hook quorum and votequorum devel man pages with genman script
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: rename all devel man pages to .3.in
+ tidy up man/Makefile.am a bit in the process
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ man: add build infrastructure to generate devel man pages
+ this is useful to include ipc_common errors into all man pages
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-09 Angus Salkeld <asalkeld@redhat.com>
+
+ move cs_strerror() to common_lib
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Treat ENOBUFS as TRY_AGAIN
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ move hdb_error_to_cs to common_lib
+ Note the previous inconsistent implementation.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add a common library that can be shared between libs and corosync
+ We have always had this problem and worked around it by coping code
+ or using inline functions. Both not good IMO.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-08 Steven Dake <sdake@redhat.com>
+
+ Remove cs_config.h from global header install
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove include/engine/quorum and integrate it into exec/engine.h
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove swab.h from global headers
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove list.h from global header install
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove mar_gen.h from global header install since it is not needed
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-02-08 Jan Friesse <jfriesse@redhat.com>
+
+ Add CS_DISPATCH_ONE_NONBLOCKING dispatch type
+ Add missing option for dispatch, which fills gap in combination of
+ block/nonblock and one/all dispatch types. New type doesn't mask
+ CS_ERR_TRY_AGAIN, and it means "no message was processed".
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-08 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ corotype: drop deprecated CPG_ defines
+ the only user of those obsoleted defines is dlm master (already ported)
+ to use CS_ and cmirror (that needs full porting to new corosync either way).
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corotypes: drop deprecated QUORUM_ defines
+ neither corosync or any of the dependencies use it.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corotypes: drop deprecated EVS_ defines
+ none of our current dependencies use it.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-07 Steven Dake <sdake@redhat.com>
+
+ Free state variable allocated in wd_resource_state_is_ok
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove leaked resource error from wd_resource_state_is_ok
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove use after free and free of uninit value in mainconfig error path
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove use after free in corosync_main_config_set in error path
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Remove dead code in sam test agent
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-02-07 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: fix quorum_ringid setting before any delivery occours
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-02-07 Angus Salkeld <asalkeld@redhat.com>
+
+ Make sure ipc functions return CS_ERR_TRY_AGAIN and not CS_ERR_TIMEOUT
+ This is because most applications that use corosync do not test
+ for TIMEOUT but only for TRY_AGAIN.
+
+ Reviewed-and-Tested-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Remove deprecated function qb_util_set_log_function()
+ Use the standard qb_log api.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: add libqb as a "subsys"
+ So we can see libqb internal logs
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-06 Jan Friesse <jfriesse@redhat.com>
+
+ cmap: Check RO flag in adjust int function
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CMAP man pages
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-06 Jiaju Zhang <jjzhang@suse.de>
+
+ CPG: Send CPG_REASON_PROCDOWN when really needed
+ This patch fixes the issue that in some cases where cpg_finalize()
+ was called just after cpg_leave() was called, CPG_REASON_PROCDOWN
+ might also be sent while CPG_REASON_LEAVE had already been sent.
+ This behavior is not aligned with what the man page has described:
+ "CPG_REASON_PROCDOWN - the process left a group without calling
+ cpg_leave()."
+ And it will confuse CPG's clients in that one process left results
+ in two different reasons being sent.
+
+ The root cause of this issue is cpg_leave() will return after
+ adding the LEAVE message to the sending queue, but the cpg's group
+ name has not been cleared yet. Just at that time, cpg_finalize()
+ is being called, then it determines if there is the calling of
+ cpg_leave() happened only by the checking of cpg's group name, so
+ this method is not sufficient.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-03 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorumtool: fix return codes for show_status and monitor
+ correct return codes should be:
+ 1 if node is quorate
+ 0 if node is not quorate
+ -1 if there is any error gather info on the node
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtools: fix nodes display on status
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix expected votes manual override from quorumtools
+ votequorum internal quorum/expected_vote check was slightly too
+ conservative and was not done correctly when leave_remove feature
+ is enabled.
+
+ this fix allows admins to effectively override expected_votes
+ and drive ev_barrier as expected.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-02-03 Jan Friesse <jfriesse@redhat.com>
+
+ Better checks of integer values in coroparse
+ Instead of atoi, strtol is used. This allows detection of typical
+ problems like empty value of key and incorrectly entered numbers.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-02 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: add runtime internal data to icmap runtime.votequorum.*
+ specifically ev_barrier, two_node, lowest_node_id and wait_for_all_status
+ are values that change internally at runtime and keeping track
+ of those can make debugging rather easy, specially when LOG_DEBUG is not
+ set.
+
+ Also track our node id.
+
+ Reviewed-By: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-02-02 Jan Friesse <jfriesse@redhat.com>
+
+ Wait for corosync-notifyd exit in init script
+ Without wait for real exit of corosync-notifyd it can happen, that new
+ corosync-notifyd is killed. To prevent such condition, stop now wait for
+ process to die, before exit of stop function.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Show correct error when open of logfile failed
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Store error str if can't open logfile
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-02 Angus Salkeld <asalkeld@redhat.com>
+
+ IPC: reference count the connection whilst flushing the outq
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-02-01 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix make dist and make rpm
+ do some cleanup around to include all files that need to be shipped
+ and honor conditional builds properly
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-01-31 Angus Salkeld <asalkeld@redhat.com>
+
+ IPC: allow for failures in the connection_created callback
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-01-31 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: add leave_remove option
+ this also cleanup NODESTATE for good. JOINING was never used
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: honor onwire node flags change
+ internal flags were not propagated correctly in the node status
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ quorum: fix load/unload priority for quorum services
+ all main services are loaded at priority 1.
+ vfs_quorum and votequorum did not specify a priority and
+ automatically defaulting to 0, that has a special meaning
+ of being loaded last and unloaded last.
+
+ this is not correct behavior and limits what votequorum
+ can do at shutdown, for example notify other nodes that
+ it is leaving (something that cannot be gathered by
+ totem membership change callback).
+
+ fix vsf_quorum to load at priority 1 as the other
+ default services and bump votequorum to 2 (needs to
+ unload before everything else currently known).
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ service: fix service unload regression introduced by lcrso dropping
+ service exec_exit_fn was not honored because the loop was looking
+ into the wrong icmap key
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: fix possible string overflow (-1) in qdevice_register
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: drop unnecessary flags
+ code inspection shows that those internal flags are never used
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-01-31 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: cleanup the cpg test agent
+ improve the diagnostic log messages
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: make the systemd logic more reliable
+ rely on positive logic as there can be multiple
+ failure reasons.
+
+2012-01-30 Steven Dake <sdake@redhat.com>
+
+ Honor exec_init_fn call
+ exec_init_fn now either returns NULL (success) or a string which indicates
+ the error that occured during service engine initialization. If an error
+ occurs, corosync will exit. This patch adds ykd and makes other suggestions
+ from Fabio Di Nitto.
+
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Return an exit code of 1 if an interface is faulty in corosync-cfgtool
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+2012-01-30 Angus Salkeld <asalkeld@redhat.com>
+
+ cmap: add iterator finalize
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ cmap: add -D option to getopt
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-01-27 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: rename qdisk to qdevice
+ a quorum device is not necessarely a disk and this also aligns
+ various names to be generic
+
+ Reviewed-By: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorum: drop quorum.quorate config option
+ it's unused / unnecessary
+
+ Reviewed-By: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-01-27 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: add test VoteQuorumWaitForAll
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: remove test service config
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ augeas: update the lense (rm amf & add update quorum options)
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: be consistent with the cpg group name
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: make the status command more accurate
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: remove SamTestQuorum as there is not test_quorum anymore
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: ignore blackbox shm
+ (only whilst running as it is still visable)
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: delete resourses recursively
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: init votequorum by default
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CTS: account for change in sam resource path.
+ This was:
+ process_name:pid
+ now:
+ pid
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: handle socket exceptions better
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: fix shell script variable name
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-26 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ update TODO list
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix expected_votes propagation
+ it is not correct to randomly accept expected_votes from any node in
+ the cluster. We can only allow expected_votes from quorate nodes.
+
+ A quorate cluster is "always" right and have the correct expected_votes.
+
+ One of the different bug triggers:
+
+ quorum {
+ expected_votes: 8
+ auto_tie_breaker: 1
+ last_man_standing: 1
+ }
+
+ start all 8 nodes.
+ clean shut down 2 nodes.
+ wait for lms to kick in.
+ kill 3 nodes with highest nodeid
+ (we want to retain a quorate partition of 3 nodes)
+ start one node again -> cluster will be unquorate
+
+ This happens because the node rebooting/rejoining with
+ non current cluster status will propagate an expected_votes of 8,
+ while in reality the cluster is down to expected_votes: 3.
+
+ 4 nodes are still < 5 (quorum for 8 nodes/votes).
+
+ In order to avoid this condition, we need to exchange expected_votes
+ information among nodes but we cannot randomly trust everybody.
+
+ 1) Allow expected_votes to be changed cluster-wide only if the
+ information is coming from a quorate node.
+ 2) Fix node->expected_votes based on quorate status
+ 3) allow a joining node to decrease quorum and expected_votes
+ if the node is not yet quorate, but it's joining a quorate
+ cluster
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix auto_tie_breaker design and simplify code a lot
+ auto_tie_breaker requires to know the lowest node id in the currently
+ quorate partition and not of the whole cluster.
+
+ this allow us to determine the lowest node id as soon as we are quorate
+ and remove the complexity to read it from WFA or nodelist. Add
+ the same time it adds the flexibility for dynamic nodeids in a cluster.
+
+ drop requirement on WFA if nodelist is not specified
+
+ update man page
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: drop NODESTATE_LEAVING
+ this is another leftover from cman compatibility layer
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-01-25 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ update TODO list
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: add documentation and man pages
+ fix a few typos on the way and separate config / library bits
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: change quorum.expected_votes override behavior
+ as agreed on the mailing list, quorum.expected_votes should override
+ automatically calculated expected_votes from nodelist.
+
+ Also simplify the code to handle expected_votes. "silly defaults" is now
+ unnecessary because votequorum does config sanity checks upfront.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: two_node should enable wait_for_all by default
+ This avoids fencing races at startup of a cluster.
+
+ It is still possible to override WFA by explicitly setting
+ wait_for_all: 0
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-01-25 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: make basic tests config-generic
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: fix starting/stopping of test_agents
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: tidy up the shutdown of cpg_test_agent
+ it is not neccessary to close the fd and remove it
+ from the mainloop
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: temp comment out quorum tests
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: fix quourm command
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: fix up the formt strings
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add debug log messages to corosync for join/leave
+ This is needed by cts.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: make sure that debug works to syslog
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-24 Jan Friesse <jfriesse@redhat.com>
+
+ totemiba: Remove unused wthread.h include
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Make xmlconf in SPEC conditional
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2012-01-23 Angus Salkeld <asalkeld@redhat.com>
+
+ Change the last references from objctl to cmapctl
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2012-01-23 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Update TODO list
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ votequorum: add support for nodelist config bits
+ expected votes is now calculated automatically and quorum.expected_votes
+ can be used to override nodelist calculation. The highest of the two
+ value is used for runtime.
+
+ quorum_votes can be specified either in the node list or in quorum.votes.
+ The node list has priority over global.
+
+ propagate votequorum initalization errors (due to config inconsistencies)
+ back to vsf_quorum.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2012-01-23 Angus Salkeld <asalkeld@redhat.com>
+
+ Remove all unneccessary "\n" from log messages
+ These look ugly, are inconsistently done and just have
+ to be removed later in libqb before calling syslog.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Shorten some really long lines in main.c
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmap: add a delete with prefix (needed by cts)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmap: change -t and -T around (capital == with prefix)
+ I want to add a prefic delete option and then these will
+ not be consistent.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmap: tweek the usage text
+ 1) It wasn't obvious to me what -b did
+ 2) -a has been removed
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmap: add a load option for cts "-p"
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: convert the test agents to use qb logging
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: fix the corosync start/stop settings
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: set the syslog restart commands up correctly
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-20 Jan Friesse <jfriesse@redhat.com>
+
+ Add nodelist informations to manual page
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Make local_node ring0 address read-only
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Support for dynamic nodelist udpu member change
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Use nodeid provided in nodelist
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Support udpu members in nodelist
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add local_node_pos icmap key
+ Key contains local node position in nodelist
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Parse nodelist in coroparse
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-19 Jan Friesse <jfriesse@redhat.com>
+
+ mon: Remove leftover print of debug output to err
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Set default multicast port if not specified
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-19 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: drop protocol versioning in favour of extra space on the wire
+ protocol needs to stay compatible across a corosync MAJOR release.
+ Implementing internal protocol version compat is at best suicidal.
+
+ Add extra space to the net struct and we can use flags to determine
+ feature sets.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-01-19 Angus Salkeld <asalkeld@redhat.com>
+
+ autobuild: make sure systemd is enabled on f15+
+ Reriewed-by: Steven Dake <sdake@redhat.com>
+
+ autobuild: ssh into node as root
+ Reviewed-by: Steven Dake <sdake@redhat.com
+
+ Fix spec file when passed "--with-testagents"
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: remove the test service agent
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-18 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: ifdef qdiskd API out
+ as agreed, the API has not been tested yet. Adding later is better than
+ removing it.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: be slightly more efficent and consistent
+ reduce req_exec_quorum_nodeinfo from 40 to 16 bytes (onwire)
+
+ add 4 bytes to req_exec_quorum_reconfigure to be consisent
+ with feature/version checking (onwire data)
+
+ make all nodeid definition "unsigned int" instead of some random mix.
+
+ reduce size of different vars
+
+ remove lots of unnecessary swab due to reducing size of data
+
+ drop join_time from cluster_node, it's never used
+
+ fix printing of nodeids from random mix to uint for consistency
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-01-18 Jan Friesse <jfriesse@redhat.com>
+
+ Update TODO with recent mcast addr changes
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Store auto generated mcast addr and port to icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add cluster_name option
+ Option is used for automatic generating of multicast address. If both
+ cluster_name and mcastaddr options are specified, mcastaddr takes
+ precedence.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-17 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorum: fix votequorum service initialization
+ the problem is that votequorum was listed as part of default
+ services.
+
+ At service_link_and_init, votequorum library and exec were being
+ made available, even when votequorum was not in used at all, creating
+ all kind of problems.
+
+ By changing the service_link_and_init to be clever, we restore the
+ original and wanted behavior to link the service only when required.
+
+ This also fixed N*votequorum API calls segfaults, init segfaults
+ and a few dozen other small issues...
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ quorumtool: fix node display regression in monitoring option
+ make display_nodes code common with show_nodes
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: fix include to match definition name (cosmetic)
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ quorum: integrate votequorum and ykd correctly
+ the problem is mostly in votequorum here, where votequorum_exec is
+ initialized with or without votequorum being configured as quorum
+ provider.
+
+ re-establish init order (regression from dropping lcrso) and make
+ sure we init correctly only the module configured.
+
+ ykd changes are for consistency only at this point in time.
+
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ build: fix distcheck regression introduced from ykd binding
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ votequorum: fix standalone build
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ main: drop unrequired vars
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ quorum: link ykd back into quorum and fix build warning
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ votequorum: check for parameters and return proper error
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ vsf_quorum: fix potential memory leak
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ coroparse: fix include path after drop lcrso merge
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ update .gitignore
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+2012-01-17 Steven Dake <sdake@redhat.com>
+
+ Silent a warning from coverity about handle being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a coverity warning about a variable being uninit when it actually is
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a coverity warning about handle being unset (when it really is)
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Silent a warning from coverity about icmap_track being used without assign
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Add break where one was missing
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+ Remove unchecked coverity error
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+2012-01-16 Steven Dake <sdake@redhat.com>
+
+ Fix missing rebase problem that causes make rpm to fail
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Add missing votequorum.h file from previous commit
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Remove main_get_config_modules since it is no longer needed
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Finish up quorum integration
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Remove some lcr ifdef'ed code in service.c
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Remove services directory from loc command
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Get rid of external config loader in include/engine/config.h
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Remove service.d directory since plugins are gone
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Remove lcr directory, files, and references since it is no longer needed
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Initial removal of plugins
+ Quorum is broken in this patch.
+ service.h needs to be cleaned up significantly
+
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Move cs_error into global header so that third party applications can use it
+ Reviewed-by: Andrew Beekhof <abeekhof@redhat.com>
+
+2012-01-16 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ votequorum: fix name and version
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: drop unused define
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: rearrange code
+ this commit has no functional changes or bugfixes.
+
+ Simply reorganize the code in more logical way and change function
+ names to be more consistent.
+
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum/quorum-tools: drop unnecessary includes
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+ votequorum: network data should be packed
+ Reviewed-by: Christine Caulfield <ccaulfie@redhat.com>
+
+2012-01-13 Jan Friesse <jfriesse@redhat.com>
+
+ Use fast inc for service statistics
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ icmap: Add fast version of inc and dec operation
+ Biggest difference between fast and standard inc/dec operation is in
+ fast that fast doesn't do malloc/memcpy, but also it means that tracking
+ events doesn't have old value set.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-13 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix spec file to reflect documentation changes
+ Reviewed-by: Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: improve index.html a bit
+ add tools/daemon section and developers section
+
+ also add links to other API docs
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: sort interfaces alphabetically
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: cosmetic index.html changes
+ makes it slightly more consistent and readable
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ man: drop confdb from man pages
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ update TODO list
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: extend initialize man page
+ add QUORUM_FREE/QUORUM_SET and fix a typo
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_getquorate)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_context_set)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_context_get)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_dispatch)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_fd_get)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_finalize)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: libquorum API documentation (quorum_initialize)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: update man pages
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: lower quorum change logging
+ vfs_quorum already does logging at INFO level
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ update TODO list
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: drop votequorum_leave
+ this was a compatibility function for cman_tool only.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: add missing new line
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: display flags for all features
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtool: improve monitoring output some more
+ this avoid printing some static data more than once
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: drop HASSTATE/SETSTATE
+ this is a leftover from killing DISALLOWED
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtool: make data display more generic
+ this improves the monitoring option a ton
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtool: drop redundant init calls to votequorum
+ this is taken care of in initall
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorumtools: update copyright header
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmapctl: initialize more variables
+ and kill the last gcc warnings
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cmapctl: initialize bit_value and check if it's set
+ more gcc warnings...
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ mainconfig: check error return codes from logsys_format_set
+ and avoid yet another gcc warning
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ main: drop unrequired call to totem_get_stats
+ and shut up another gcc warning
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ icmap: make sure variable is initialized
+ shut up gcc warning
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-12 Steven Dake <sdake@redhat.com>
+
+ unshare exec/icmap.so
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Change all ais references to corosync
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+2012-01-11 Jan Friesse <jfriesse@redhat.com>
+
+ cmapctl: Print all keys by default
+ Also remove option -a, because there is no need to hide
+ internal_configuration.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Update TODO with notifid changes
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Store rrp faulty status of ring in cmap
+ New key with faulty status of ring is created in cmap as name
+ runtime.totem.pg.mrp.rrp.$ring_number.faulty
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorum: more TODO items
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: update TODO
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: fix votes/quorum recalculation in auto_tie_breaker
+ this is necessary when switching from 2 nodes to 1 one in auto_tie_breaker
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: improve wait_for_all reset handling when merging parititions
+ this change allow a node to rejoin a cluster that has already seen
+ wait_for_all and reset the flag if the partition that the node is joining
+ is quorate.
+
+ Also propagate current wait_for_all_status and quorate info via nodeinfo.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: fix another regressions introduced by 05b4e99a6e (dispatch notifications only once)
+ left_member_entries is never set when totem config change is regular.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: fix regression introduced by 05b4e99a6e (dispatch notifications only once)
+ Effectively there are 2 kind of quorum notifications that cannot be merged into 1.
+
+ config_change: when the quorum membership changes, triggered by totem/membership changes
+ (node join/leave)
+
+ quorum_status_changes: same membership node becomes quorate or not.
+
+ A quorum status change does not necessarely match a membership change, hence it needs
+ to be dispatched separately.
+
+ An example is a cluster that is not quorate, user changes the amount of votes in a node to
+ regain quorum. No membership changes happen at this point, but votequorum will
+ effectively broadcast the votes: XX change and recalculate quorum.
+ In turn we need to notify quorum users.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: switch two_node from flag to int
+ TWO_NODE was the last flag using quorum_flags.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: drop kill_reason leftovers (part of disallowed)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: missed one comment to cleanup ;)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: clean up coding style
+ first pass to bring votequorum at corosync codying style.
+
+ fix whitespaces, add missing {}, fix comments, be consistent with
+ ENTER/LEAVE usage, be consistent with some functions variable names
+ and some more cosmetic changes
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: update copyright/authors
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: dispatch notifications only once
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: add last_man_standing support (default: off)
+ this flag (0|1) can be configured via quorum.last_man_standing and when
+ enabled, it allows expected_votes to be dynamically recalculated.
+
+ Assuming an 8 nodes cluster, every node votes 1 (mandatory requirement for
+ this feature).
+
+ In the first event, 3 nodes are lost.
+
+ The remaining partition of 5 is barely quorate.
+
+ After a configurable timeout (quorum.last_man_standing_window, default 10sec)
+ the quorate partition is allow to recalculate expected_votes based on
+ the remaining nodes.
+
+ This operation will bring expected_votes to 5 and quorum to 3.
+
+ Repeating the above loop, in the next event, 2 more nodes are allowed to
+ die. etc. etc.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: drop concept of DISALLOWED
+ this is a very old leftover from the RHEL5 timeframe, not used in RHEL6.
+
+ Also change votequorum soname since this change implies an ABI change.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: bump soname for libquorum to reflect API change
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: fix quorum_flags values
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: transmit wait_for_all info in node info message
+ this is necessary to reset the wait_for_all data when a node is joining a cluster
+ that has already seen all nodes once.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: add auto_tie_breaker support (default: off)
+ this flag (0|1) can be configured via quorum.auto_tie_breaker and when
+ enabled, support for perfect even split is on.
+
+ In case of a 50% of votes loss in one single transition, the partition
+ with the node that has the lowest node id will remain quorate.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: add wait_for_all support (default: off)
+ this flag (0|1) can be configured via quorum.wait_for_all and changes
+ behavior when granting quorum for the first time.
+
+ Normal behavior (default / 0) grants quorum as soon as enough nodes
+ are available in a cluster.
+
+ Setting this value to 1 will grant quorum only after all cluster
+ memembers are part of the cluster at the same time.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: always dispatch quorum notifications
+ Resolves: rhbz#768144
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum: change API to return quorum type at initialization time
+ corosync internal theory of operation is that without a quorum provider
+ the cluster is always quorate. This is fine for membership free clusters
+ but it does pose a problem for applications that need membership and
+ "real" quorum.
+
+ this change add quorum_type to quorum_initialize call to return QUORUM_FREE
+ or QUORUM_SET. Applications can then make their own decisions to error out
+ or continue operating.
+
+ The only other way to know if a quorum provider is enabled/configured is
+ to poke at confdb/objdb, but adds an unnecessary burden to applications
+ that really don't need to use an entire library for a boolean value.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-09 Angus Salkeld <asalkeld@redhat.com>
+
+ IPC: don't block forever on a recv msg as corosync might be gone.
+ This at least will not make the client hang forever.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-09 Jan Friesse <jfriesse@redhat.com>
+
+ Add rrp faulty event to notifyd
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add usage text to cmapctl
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Ability to display binary data type in cmapctl
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Ability to store binary key
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-09 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix last corosync/engine/coroapi.h
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-08 Steven Dake <sdake@redhat.com>
+
+ Add Requires: libxslt if BUILD_XMLCONF is defined
+ Reviewed-by: Angus Salkled <asalkeld@redhat.com>
+
+ Improve make rpm to work properly
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+ Move coroapi out of external headers
+ Reviewed-by: Angus Salkled <asalkeld@redhat.com>
+
+2012-01-07 Steven Dake <sdake@redhat.com>
+
+ Move logsys.c into corosync binary instead of a shared object
+ Our preferred shared logging system is exported via the libqb library. As
+ a result, the corosync project no longer needs to export logsys.so and the
+ code can be directly included in the binary. The header file can also be
+ removed.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Allow make rpm to complete with recent changes in cmap and xmlproc
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix make dist relating to xmlconf conditional
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+2012-01-06 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix some iterator based mem leaks
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2012-01-06 Steven Dake <sdake@redhat.com>
+
+ Remove libqb issues reference 1 since that isn't really a problem
+
+2012-01-03 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ ipc: make less noise
+ switch from LOG_INFO to LOG_DEBUG for some basic operations
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-20 Jan Friesse <jfriesse@redhat.com>
+
+ Add topic-xmlschema to TODO
+ Also topic-xmlconfig is removed.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Man pages for corosync-xml
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Convert xml config file
+ Included are following parts:
+ - XSLT template with actual conversion
+ - simple wrapper on top of xsltproc called corosync-xmlproc
+ - example XML file
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Remove deprecated options from corosync.conf page
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Remove deprecated options from conf examples
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Align --with-snmp in help output
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-15 Jan Friesse <jfriesse@redhat.com>
+
+ Updated TODO to reflect cmap inclusion
+
+ Remove objdb and confdb
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move wd service to use icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move mon service to use icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move SAM to use CMAP service
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move quorumtool to use cmap service
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move notifyd to use cmap service
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add cmapctl tool
+ corosync-cmapctl is direct replacement for corosync-objctl
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move cfg service to use icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move votequorum to use icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move testquorum to icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Move corosync core to use icmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add user library to use cmap service
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add cmap service
+ Cmap service is application developer interface to icmap and it is
+ direct replacement for confdb.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add icmap
+ Icmap is replacement for objdb, based on libqb map (trie).
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-15 Angus Salkeld <asalkeld@redhat.com>
+
+ TODO: remove "message/queue size" todo's
+
+ Check for the correct message size in totempg_groups_joined_reserve()
+ Currently:
+ - send_reserve() adds to the reserve
+ - msg_count_send_ok() tests ((avail - totempg_reserved) > msg_count)
+
+ So essentially we are checking to see if 2 * msg_count can fit in
+ the q.
+
+ So instead I am using byte_count_send_ok (size) to see if the
+ message will fit then calling send_reserve()
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Fix cpgbench (large message sizes)
+ To allow async cpg messages of 1M we need to:
+ 1) increase the totem queue size 4 times
+ 2) align the critical level to one large message free
+
+ There are a number of reasons for doing this:
+
+ We can't let cpg_mcast_joined() fail because the user will not see it
+ and will assume is has succeded.
+
+ The reason we are getting good performance is by providing a negative
+ feedback loop from the totem q to the IPC/poll system. This relies
+ on 4 q states low/med/high/crit. With messages of size 1M you
+ now have a q of size one and now go from level low to crit instantly
+ then back to low as messages are put on and taken off. I don't think
+ this is the best behaviour. By having a q size of 4 allows the system
+ to utilize the q better and give us time to respond to changes in
+ the q level.
+
+ To effectively achieve flow control with a q of size 1 would require
+ all the clients to request the space on the q like is done in
+ totempg_groups_joined_reserve() but probably in shared memory
+ This would take quite a bit of re-work.
+
+ LOG: get the logging to work from loaded quorum modules
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Tweek the increment in cpgbench so the message size gets to 1M
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-14 Angus Salkeld <asalkeld@redhat.com>
+
+ Be more flexible (correct) with flowcontrol.
+ Many functions do not require flowcontrol and are two-way
+ so they can get failures from corosync.
+ Only cpg_mcast_joined() _really_ needs the current level
+ of flowcontrol.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-13 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ quorum-tools: add quorum monitoring option
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum-tool: reduce amount of init/finalize
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum-tools: change internal get_quorum_type
+ don't leak memory, better error reporting and improve
+ status output when there is no quorum configured
+
+ also fix some coding style based on review input
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum-tool: add return codes to show status
+ -1 indicates an error communicating with corosync/quorum/votequorum service
+ 0 node is not quorate
+ 1 node is quorate
+
+ also add more error reporting and a couple of missing calls to finalize
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum-tool: update copyright date
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ quorum-tools: fix options/help text
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-13 Angus Salkeld <asalkeld@redhat.com>
+
+ LOG: Fix a crash in the shutdown.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-12-06 Steven Dake <sdake@redhat.com>
+
+ Change mailing list in configure.ac to discuss@lists.corosync.org
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Add silent rules to corosync make to more easily find warnings
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-12-01 Jan Friesse <jfriesse@redhat.com>
+
+ hdb* functions already returns -error value
+ So it's wrong to define hdb_error_to_cs and pass -error value, because
+ this creates --error = error = CS_OK.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-11-30 Yunkai Zhang <qiushu.zyk@taobao.com>
+
+ Correct nodeid in memb_state_commit_token_send function
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-11-29 Steven Dake <sdake@redhat.com>
+
+ From: Yunkai Zhang: Today, I have observed one of the reason that corosync running into FAILED TO RECEIVE state.
+ There was five nodes(A,B,C,D,E) in my testing, and I limited the UDP
+ transmission rate of C nodes by iptables command:
+ iptables -A INPUT -i eth0 -p udp -m limit --limit 10000/s
+ --limit-burst 1 -j ACCEPT
+ iptables -A INPUT -i eth0 -p udp -j DROP
+
+ After one hour later, C node had been missing some MCAST messages,
+ it's state described as following:
+ ==state of C node==
+ my_aru:0x805
+ my_high_seq_received:0xC2C
+ my_aru_count:7
+
+ =>receved MCAST message with seq:806 from B nodes
+ =>enter *message_handler_mcast*
+ =>add this message to regular_sort_queue
+ ...
+ =>enter *update_aru* function
+ => range = (my_high_seq_received - my_aru)
+ = (0xC2C - 0x805)
+ = 1063
+ => if range>1024, do nothing and and return directly.
+ ==END==
+
+ According this logic, after (my_high_req_received-my_aru)>1024, my_aru
+ will not be updated though corosync can receive MCAST messages
+ retransmitted by other nodes.
+
+ But at that timte, my_aru_count was only 7. So the corosync at C node
+ would keep in this status until my_aru_count increased to
+ fail_to_recv_const(the default value is 2500). This was a long time
+ for corosync, but we wasted it.
+
+ To solve this issue, maybe we can enlarge the range condition in
+ update_aru function? Or we just ingnore the checking of range value,
+ it seems no harmfull, because we have been using fail_to_recv_const to
+ control the things.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-11-28 Yunkai Zhang <qiushu.zyk@taobao.com>
+
+ Correct nodeid of token when we retransmit it
+ Although incorrect nodeid will not affect program's logic, but it will
+ make us confused when we add some logs to record the transmission path of
+ token in debug mode.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-11-26 Yunkai Zhang <qiushu.zyk@taobao.com>
+
+ Fixed bug when corosync receive JoinMSG in OPERATIONAL state
+ Accordig the totem protocal, nodes should enter GATHER state when it
+ receive JoinMSG in OPERATIONAL state. If we discard it in OPERATIONAL
+ state, the nodes sending this JoinMSG could not receive the response
+ untill other nodes reach token lost timeout.
+
+ This bug will cause nodes having entered GATHER state spend more time to
+ rejoin the ring, and then it will make nodes reach token expired timeout
+ more easily.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-11-26 Steven Dake <sdake@redhat.com>
+
+ Remove unchecked return error in test code
+
+ Remove unused variable from latest cpg work that merged all config changes Signed-off-by: Steven Dake <sdake@redhat.com>
+
+ Remove unchecked return problem in test code
+
+ Remove unchecked return warning
+
+ Remove use of NULL in test agent
+
+ Remove unchecked return error
+
+ Correct typing in memory_map function in lib/cpg.c
+
+2011-11-14 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix last warnings so we can build with --enable-fatal-warnings
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-11-10 Angus Salkeld <asalkeld@redhat.com>
+
+ TOTEM: better clean up on exit
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ OBJDB: free up resources on exit
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: cleanup logging resources at exit
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Clean up the poll loop resourses on exit
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add calls to missing object_find_destroy() to fix mem leaks
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Free mem allocated by getaddrinfo
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-10-31 Yunkai Zhang <qiushu.zyk@taobao.com>
+
+ Send one confchg event per CPG group to CPG client
+ We found that sheepdog will receive more than one confchg msg when
+ network partition occur. For example, suppose the cluster has 4
+ nodes: N1, N2, N3, N4, and they form a single-ring initially. After a
+ while, network partition occur, the single-ring divide into two
+ sub-ring: ring(N1, N2, N3) and ring(N4). The sheepdog in the ring(N4)
+ will receive the following confchg messages in turn:
+ Memb: N2,N3,N4 Left:N1 Joined:null
+ memb: N3,N4 Left:N2 Joined:null
+ memb: N4 Left:N3 Joined:null
+
+ This patch will fixed this bug, and the client will only receive one
+ confchg event in this case:
+ memb: N4 Left:N1,N2,N3 Joined:null
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-10-28 Anton Jouline <anton.jouline@cbsinteractive.com>
+
+ Adding support for dynamic membership with UDPU transport
+ Add a new object called totem.interface.dynamic to allow creation/deletion
+ of new child objects using the corosync-objctl utility:
+
+ to add new member:
+ linux# corosync-objctl -c totem.interface.dynamic.10-211-55-12
+
+ to delete an existing member:
+ linux# corosync-objctl -d totem.interface.dynamic.10-211-55-12
+
+ Corosync will dynamically add these members to the configuration and start
+ communicating with those nodes.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-10-25 Jan Friesse <jfriesse@redhat.com>
+
+ Remove unused buf and len variables in log_printf
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-10-24 Jan Friesse <jfriesse@redhat.com>
+
+ api: Change some of totempg definitons
+ Recent changes in patch "Get rid of hdb usage in totempg.h interface"
+ caused incompatibility between corosync API and totempg.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ totemmrp: Allow compilation without warnings
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Allow compilation of totempg without warnings
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ logsys.h: Properly define LEAVE macro
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-10-22 Angus Salkeld <asalkeld@redhat.com>
+
+ Set the size of the blackbox to the size on flatiron
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: remove dead code in sam_test_agent
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ don't log an error if exiting with 0
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: update the log defines
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-10-21 Steven Dake <sdake@redhat.com>
+
+ add wait-for-license to cov-analyze
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ res could return an undefined value if there was no error in totempg_groups_initialize
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Remove default from cpg_model_initialize - atm there is only one model
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Remove dead code in evs service
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Remove dead code in votequorum
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-10-21 Angus Salkeld <asalkeld@redhat.com>
+
+ TEST: make cpgbench go to 1M
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Remove references to README.devmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-10-21 Steven Dake <sdake@redhat.com>
+
+ Remove dead code in cfg.c
+
+2011-10-21 Angus Salkeld <asalkeld@redhat.com>
+
+ Remove old README.devmap
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ MAN: remove unused man pages
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: use libqb facility conversion functions
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: get logging to file working correctly
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ LOG: Fix debugging
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-10-20 Steven Dake <sdake@redhat.com>
+
+ Updated TODO with feedback from community defining our Needle 2.0/2.1 goals
+ Revieweed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Add --concurrency to coverity make target
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-10-10 Masatake YAMATO <yamato@redhat.com>
+
+ Remove cloned lines in main of main.c
+
+2011-09-22 Steven Dake <sdake@redhat.com>
+
+ Deliver all messages from my_high_seq_recieved to the last gap
+ This patch passes two test cases:
+
+ -------
+ Test #1
+ -------
+ Two node cluster - run cpgbench on each node
+
+ modify totemsrp with following defines:
+ Two test cases:
+
+ -------
+ Test #2
+ -------
+ 5 node cluster
+
+ start 5 nodes randomly at about same time, start 5 nodes randomly at about
+ same time, wait 10 seconds and attempt to send a message. If message blocks
+ on "TRY_AGAIN" likely a message loss has occured. Wait a few minutes without
+ cyclng the nodes and see if the TRY_AGAIN state becomes unblocked.
+
+ If it doesn't the test case has failed
+
+ Reviewed-by: Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-09-08 Jan Friesse <jfriesse@redhat.com>
+
+ totemconfig: change minimum RRP threshold
+ RRP threshold can be lower value then 5.
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2011-09-05 Steven Dake <sdake@redhat.com>
+
+ Allow conditional rpmbuilds of NSS feature
+ NSS is currently non-conditional. Allow nss to be build conditonally.
+
+ Reviewed-by: Angus Salkeld <asalked@redhat.com>
+
+2011-09-02 Steven Dake <sdake@redhat.com>
+
+ Ignore memb_join messages during flush operations
+ a memb_join operation that occurs during flushing can result in an
+ entry into the GATHER state from the RECOVERY state. This results in the
+ regular sort queue being used instead of the recovery sort queue, resulting
+ in segfault.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-09-01 Jan Friesse <jfriesse@redhat.com>
+
+ rrp: Higher threshold in passive mode for mcast
+ There were too much false positives with passive mode rrp when high
+ number of messages were received.
+
+ Patch adds new configurable variable rrp_problem_count_mcast_threshold
+ which is by default 10 times rrp_problem_count_threshold and this is
+ used as threshold for multicast packets in passive mode. Variable is
+ unused in active mode.
+
+ Reviewed by: Steven Dake <sdake@redhat.com>
+
+ rrp: Handle endless loop if all ifaces are faulty
+ If all interfaces were faulty, passive_mcast_flush_send and related
+ functions ended in endless loop. This is now handled and if there is no
+ live interface, message is dropped.
+
+ Reviewed by: Steven Dake <sdake@redhat.com>
+
+2011-08-24 Steven Dake <sdake@redhat.com>
+
+ Get rid of hdb usage in totempg.h interface
+ hdb has some expense and is not necessary in the totempg.so runtime. This
+ patch removes the dependence on hdb and instead uses a direct pointer.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Remove hdb.h header includes from unnecessary files
+ The files in this patch do not use the hdb.h header.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-08-23 Steven Dake <sdake@redhat.com>
+
+ Use qb_hdb instead of mutex based hdb code
+ Rid ourselves of the mutex usage still in the code base
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Add totempg_threaded_mode_enable() api
+ This API allows totem to operate as a multithreaded library. Performance is
+ better without threads but some library users may only have multithreaded
+ systems. In the corosync case where we have removed threads, this reduces
+ cpu utilization by ~10% by removing about 50% of the mutex lock and unlock calls
+ that occur during typical operation. Since the latest corosync is nearly
+ thread free, there is no need for mutex operations.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Move cs_queue.h from include directory to exec directory
+ This file is only used by totemsrp.c. Move out of general include
+ directory.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ use va version of external log function
+ This removes a sprintf operation in the totem and ipc logging operations
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-08-18 Tim Beale <tim.beale@alliedtelesis.co.nz>
+
+ A CPG client can sometimes lockup if the local node is in the downlist
+ In a 10-node cluster where all nodes are booting up and starting corosync
+ at the same time, sometimes during this process corosync detects a node as
+ leaving and rejoining the cluster.
+
+ Occasionally the downlist that gets picked contains the local node. When the
+ local node sends leave events for the downlist (including itself), it sets
+ its cpd state to CPD_STATE_UNJOINED and clears the cpd->group_name. This
+ means it no longer sends CPG events to the CPG client.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-08-17 Tim Beale <tim.beale@alliedtelesis.co.nz>
+
+ Display ring-ID consistently in debug
+ Ring ID was being displayed both as hex and decimal in places. Update so
+ it's displayed consistently (I chose hex) to make debugging easier.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Add code comment mapping for message handler defines
+ As a corosync-newbie it can be hard to bridge the gap between where a
+ particular message is sent and where the receive handler processes it,
+ and vice versa.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-08-15 Steven Dake <sdake@redhat.com>
+
+ Remove -lcoroipcc from tools/Makefile.am notifyd
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ properly define rec_token_cq_send_event_fn
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Define totemiba_log_printf properly
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Fix problem in totemiba where incorrect define is used (and also not defined)
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-08-09 Jan Friesse <jfriesse@redhat.com>
+
+ Allow compile master on RHEL 6
+ corosync_timer_handle_t is know conditionally defined to prevent double
+ definition causing compile fault on RHEL 6 systems.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-08-09 Angus Salkeld <asalkeld@redhat.com>
+
+ Make realtime scheduling optional not the default.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Update TODOs
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: logging & trace
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: Add libqb dependency in the rpm & pc file
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Fix some compiler warnings
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Use PATH_MAX for file path size
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: Improve IPC dispatch and async handling
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CPG: downgrade some log messages
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: make test agent shutdown more gracefully
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: add an audit to check for leaking shared memory
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: get GenStopAllBeekhof working a bit better
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: log bind() errors better
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: log cfg results
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: rename flatiron to needle
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: add exit handler to test_agents
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: add "Too many open files" to the BadNews pattern
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: impove debug during msgSend test
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: add logging to test agent
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: increse wait for node to reboot
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: support new pacemaker-cts
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ AUGEAS: fix "tags" log field
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ TEST: fix the print out when cpg_finalize() fails
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: use the new cs_strerror() to print out the error message.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: fix iov_len in pcmk_test
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: fix valgring warnings in mon/wd
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: change pause_timestamp to uint64_t
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: rip out objdb & serialize locks
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: only init IPC on service engines that need it.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: remove the lib init/exit from the test service agent
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: use the main loop to shutdown
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: remove tsafe.c
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: remove worker thread - keep to one thread.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: make timer api a wrapper around qb_loop timers.
+ - change timeout value to nano seconds
+ - fix timer handles (don't alloc on stack)
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: change ipc -> qb_ipc
+ IPC: return 0/-ENOBUFS from message handler
+ IPC: use the new rate_limit API to improve perf.
+ CPG: add send_async API & hook up flow control
+ IPC: Fix flow control getting stuck.
+ IPC: Port the remaining libs to use libqb IPC
+ IPC: remove libqb flowcontrol API
+ TEST: put cpg_dispatch() in it's own thread
+ IPC: cleanup ipc_glue.c name everything cs_ipcs_*()
+ IPC: add back statistics
+ IPC: remove coroipcc_ symbols from lib*.versions
+ IPC: init each se's IPC as it is loaded.
+ IPC: use the new connection_closed() event to free the context.
+ IPC: re-add zero copy functionality back
+ IPC: remove cpg_mcast_joined_async() and make it the default
+ -> now cpg_mcast_joined() == cpg_mcast_joined_async()
+ libqb: expose a libqb error converter
+ libqb: add missing error conversions
+ libqb: remove repeat try loop in lib/cpg.c
+ CPG: fix zero copy mcast
+ CPG: use newer return codes
+ Add ENOTCONN to qb_to_cs_error()
+ libqb: fix error conversion from errno to cs_error_t in confdb
+ libqb: change errno_to_cs to qb_to_cs_error
+ libqb: add a cs_strerror() to get a more meaningful message
+ libqb: fix some confusing error conversions.
+ libqb: set the timeout on recv's to -1 (wait forever)
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libqb: convert coropoll calls to qb_loop calls.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Add systemd unit files for corosync and corosync-notifyd
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-08-07 Florian Haas <florian.haas@linbit.com>
+
+ corosync.conf.example: add note about host addresses in bindnetaddr
+ https://lists.linux-foundation.org/pipermail/openais/2011-July/016563.html
+
+ Jan Friesse pointed out that bindnetaddr should be set to a host
+ address (as opposed to a network address) on hosts where multiple
+ NICs live on the same subnet. Add a comment to that effect to
+ the example configuration file.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corosync.conf.example: include comments
+ It's nice to say people should read the man page. It's also naive to
+ assume that they always do. Include comments in the example config
+ file itself.
+
+ Reviewed-by: Dan Frincu <dan.frincu@1and1.ro>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corosync.conf.example: change mcastaddr
+ Change suggested mcastaddr to one in the 239.255.0.0/16
+ pseudo-subnet. Multicast addresses outside 239.x.x.x may be IANA
+ registered and can clash with other services present on the
+ network. Suggest an address defined as part of the multicast IPv4
+ Local Scope in RFC 2365.
+
+ Reviewed-by: Dan Frincu <dan.frincu@1and1.ro>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corosync.conf.example: change bindnetaddr
+ Change the example configuration file so "bindnetaddr" has a value
+ that more obviously looks like a network address. So as not to have
+ people think they need to set an existing IP address here (and hence,
+ have non-identical corosync.conf files between nodes).
+
+ Reviewed-by: Dan Frincu <dan.frincu@1and1.ro>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-26 Jan Friesse <jfriesse@redhat.com>
+
+ main: let poll really stop before totempg_finalize
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Revert "totemsrp: Remove recv_flush code"
+ This reverts commit 1a7b7a39f445be63c697170c1680eeca9834de39.
+
+ Reversion is needed to remove overflow of receive buffers and dropping
+ messages.
+
+2011-07-24 MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp>
+
+ totemsrp: fix buffer overflows for large clusters (> 100 nodes)
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-21 Jan Friesse <jfriesse@redhat.com>
+
+ specfile: Install corosync-signals.conf for dbus
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ specfile: use _datadir as var expansion not exec
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ specfile: Correct URL and source0
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-19 Tim Beale <tim.beale@alliedtelesis.co.nz>
+
+ Add some more stats for debugging
+ + overload - number of times client is told to try again
+ + invalid_request - message contained invalid paramter, e.g. invalid size
+ + msg_queue_avail - messages currently available at the Totem layer
+ + msg-queue_reserved - messages currently reserved at the Totem layer
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-18 Jan Friesse <jfriesse@redhat.com>
+
+ rrp: Handle rollower in passive rrp properly
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ rrp: handle rollover in active rrp properly
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ totemconfig: Change default FAIL_TO_RECV_CONST
+ Previous default (50) was too low for most modern switch hardware. This
+ may trigger abort because the aru doesn't increase for 50 token
+ rotations combined with a defect in how failed to recv conditions are
+ handled. By increasing this tunable, the condition should no longer
+ trigger the errant code.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-15 Steven Dake <sdake@redhat.com>
+
+ Correct missing poll funtions from service handler struct needed for confdb APIs
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ Fix problem where corosync will segfault if there are gaps in recovery queue
+ Fixes a problem where there are gaps in the recovery queue. Example my_aru = 5,
+ but there are messages at 7,8. 8 = my_high_seq_received which results
+ in data slots taken up in new message queue. What should really happen
+ is these last messages should be delivered after a transitional
+ configuration to maintain SAFE agreement. We don't have support for
+ SAFE atm, so it is probably safe just to throw these messages away. Without
+ this change, the new message queue on a new configuraton change is out of sync.
+
+ Tested-by: Tim Beale <tlbeale@gmail.com>
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-07-08 Jan Friesse <jfriesse@redhat.com>
+
+ totemiba: free send_buf on ibv_reg_mr failure
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-06 Florian Haas <florian.haas@linbit.com>
+
+ build: disable RDMA support in RPMs by default
+ Rather than curiously disable RDMA support by default in configure and
+ enable it by default in RPM builds, streamline the default
+ configuration to always turn RDMA support off. It can be enabled in
+ RPM builds with "--with rdma".
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: set RDMA related _LIBS and _CFLAGS only if building with RDMA support
+ Having to force {ibverbs,rdmacm}_{LIBS,CFLAGS} looks positively odd;
+ so this may warrant further review. However, they are definitely not
+ needed if building without RDMA support.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: make RDMA support an RPM build conditional
+ Enable RDMA in RPM builds by default to maintain the previous behavior
+ (which always included --enable-rdma in the %configure invocation).
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: force LC_ALL=C correctly for dates
+ Failure to force "C" dates will have RPM et al. complain about invalid
+ dates and timestamps.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-06 Tim Beale <tim.beale@alliedtelesis.co.nz>
+
+ Fix compile/runtime issues for _POSIX_THREAD_PROCESS_SHARED < 1
+ For the case where _POSIX_THREAD_PROCESS_SHARED < 1, the code doesn't compile
+ for corosync v1.3.1. And when it does compile, it crashes on our system - our
+ version of uClibc seems to always expect a 4th arg. The man pages suggests
+ the 4th arg is optional, but does say: 'For greater portability it is best to
+ always call semctl() with four arguments', which is what this patch does.
+ Also removed semop as it's an unused variable.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ getpwnam_r()/getgrnam_r() returns ERANGE for some systems
+ On our system the expected buffer length is 256. This means calls to
+ getpwnam_r()/getgrnam_r() return ERANGE error and corosync fails to startup.
+ These 2 functions return ERANGE when insufficient buffer space is supplied.
+ Judging by the man page for getpwnam_r, the correct way to determine the
+ buffersize on any given system is to use sysconf().
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-07-05 Jiaju Zhang <jjzhang.linux@gmail.com>
+
+ RRP: redundant ring automatic recovery
+ This patch automatically recovers redundant ring failures.
+
+ Please note that this patch introduced rrp_autorecovery_check_timeout
+ in totem config hence breaks internal ABI. The internal ABI users
+ of totem.h need to rebuild their binaries.
+
+ Tested-by: Jan Friesse <jfriesse@redhat.com>
+ Tested-by: Florian Haas <florian.haas@linbit.com>
+ Tested-by: Jiaju Zhang <jjzhang@suse.de>
+
+2011-07-04 Tim Serong <tserong@novell.com>
+
+ Correct mailing list address in corosync_overview manpage
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-06-29 Masatake YAMATO <yamato@redhat.com>
+
+ fix typos in cpg_mcast_joined.3 and cpg_zcb_mcast_joined.3
+
+2011-06-29 Steven Dake <sdake@redhat.com>
+
+ Add coverity target to corosync makefile.am
+ Allow a make coverity target for those developers with coverity tools
+ available to them.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-06-29 Jan Friesse <jfriesse@redhat.com>
+
+ coroipcc: Test _SC_PAGESIZE result
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Remove spinlocks
+ Spinlocks are now removed, because even spinlock can improve
+ speed is some special cases, in most cases it makes corosync CPU usage
+ much more intensive and less responsive then if only mutexes are used.
+
+ What we were doing is:
+ pthread_mutex_lock
+ pthread_spin_lock
+ pthread_spin_unlock
+ pthread_mutex_unlock
+
+ what is not safe.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ votequorum: free newly allocated node if nodeid==0
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-06-28 Jerome Flesch <jerome.flesch@netasq.com>
+
+ Fix usage of strerror_r()/perror()
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-06-23 Steven Dake <sdake@redhat.com>
+
+ sched_params log message incorrect
+ The sched_params parameter was set before being printed.
+
+ Reviewed-by: <sdake@redhat.com>
+
+2011-06-22 Jan Friesse <jfriesse@redhat.com>
+
+ configure.ac: Align --enable-* options description
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ configure.ac: change edefault to default
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ CTS: Test for confdb dispatch deadlock
+ Test is disabled by default because it depends on SMP and about 2GB RAM.
+ It's also testing race, so test is unreliable.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ confdb: Resolve dispatch deadlock
+ Following situation could happen:
+ - one thread is waiting for finish write operation (line 853), objdb is
+ locked
+ - flush (done in objdb_notify_dispatch) is called in main thread, but
+ this call will never appear because main thread is waiting for objdb
+ lock.
+
+ In this situation deadlock appears.
+
+ Commit solves this by:
+ - setting pipe to non-blocking mode
+ - pipe is used only as trigger for coropoll
+ - dispatch messages are stored in list
+ - main thread is processing messages from list
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ objdb: save copy of handles in object_find_create
+ Following situation could happen:
+ - process 1 thru confdb creates find handle
+ - calls find iteration once
+ - different process 2 deletes object pointed by process 1 iterator
+ - process 1 calls iteration again ->
+ object_find_instance->find_child_list is invalid pointer
+
+ -> segfault
+
+ Now object_find_create creates array of matching object handlers and
+ object_find_next uses that array together with check for name. This
+ prevents situation where between steps 2 and 3 new object is created
+ with different name but sadly with same handle.
+
+ Also good to note that this patch is more or less quick hack rather
+ then proper solution. Real proper solution is to not use pointers
+ and rather use handles everywhere. This is big TODO.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-06-17 Jiaju Zhang <jjzhang.linux@gmail.com>
+
+ RRP: Fix ring initialization issue for UDPU mode
+ Redundant ring has some problem in the UDP unicast mode. The problem
+ is the second ring has not been successfully initialized, that is, the
+ second time iface_changes happens, the member list for that interface
+ has not been added, which results in that ring cannot transmit normal
+ message. So the second ring cannot take over the work if the first
+ ring is down. This patch fixes this issue.
+
+ comments from review:
+ More work is needed probably in totemnet where totemnet maintains the
+ the of node list and an iterator for them, and totemudpu_member_add adds
+ state information to a context for the iteration.
+
+ In any regard, that is somewhat difficult to test, so I'll merge this
+ patch for now - keep in mind interface changes on the bindnetaddr will
+ cause problems with udpu after this patch has been commmitted.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-06-10 Jan Friesse <jfriesse@redhat.com>
+
+ coroipcc: check recvmsg result in socket_recv
+ According specification recvmsg can return 0, which means that
+ connection is closed. We had this check, but limited only for systems
+ other then Linux. recvmsg can return 0 even on Linux, so check is now
+ applied on all systems.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ confdb: Properly check result of object_find_create
+ in confdb_object_iter result of object_find_create is now properly
+ checked. object_find_create can return -1 if object doesn't exists.
+ Without this check, incorrect handle (memory garbage) was directly
+ passed to object_find_next.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ crypto: rng_make_prng prevent buf overflow
+ with bits set to 1023, buf of 256 bytes was filled by rng_get_bytes
+ up to 257 bytes. Buf is now 258 bytes so it's no longer problem.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-06-06 Jan Friesse <jfriesse@redhat.com>
+
+ mainconfig: Check retval of logsys_format_set
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-06-03 Jan Friesse <jfriesse@redhat.com>
+
+ testcpgzc: fgets buffer to really allocated size
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cpg: do_proc_join change list_slice to list_add
+ In this concrete case result is equivalent but makes coverity happy.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ totemudp: memset of proper size
+ In totemudp_mcast_thread_state_constructor memset to
+ sizeof(struct totemudp_mcast_thread_state) instead of size of
+ pointer.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ coroipcs: init buf in coroipcs_handler_dispatch
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ coroparse: don't leak dirent
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ logsys: _logsys_wthread_create never returns != 0
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ notifyd: Check retval of corosync_cfg_initialize
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ totemconfig: discard check of objdb_get_string ret
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ coroipcc: proper path size in coroipcc_zcb_alloc
+ memory_map function internally limits maximum path size to
+ PATH_MAX but coroipcc_zcb_alloc passed smaller buffer.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ libquorum: memset/memcpy proper size of callbacks
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-05-30 Jan Friesse <jfriesse@redhat.com>
+
+ iazc: Reduce number of mem alloc and memcpy
+ X86 processors are able to handle unaligned memory access. Improve
+ performance by using that feature on i386 and x86_64 compatible
+ processors, and use old aligning code on different processors.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-05-27 Jerome Flesch <jerome.flesch@netasq.com>
+
+ logsys: When corosync is compiled with --enable-small-memory-footprint, also reduce the size of the logsys SHM
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ coroipcc_dispatch_get(): Fix --enable-small-memory-footprint support
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ coroipcs_handler_dispatch(): Fix conn_info->service security value: -1 is not a good security value since it's equal to SOCKET_SERVICE_INIT
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ coroipcc: Fix unhandled BSD EOF in coroipcc_dispatch_get()
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Corosync: Fix build when done with --enable-fatal-warnings
+ Reviewed-by: Jan Friesse<jfriesse@redhat.com>
+
+2011-05-08 Russell Bryant <russell@russellbryant.net>
+
+ logsys.c: Use snprintf() instead of sprintf().
+ Change a couple of string functions to use the the output length
+ limiting counterpart.
+
+2011-05-13 Jan Friesse <jfriesse@redhat.com>
+
+ corosync-objctl: Option to display binary data
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-05-05 Angus Salkeld <asalkeld@redhat.com>
+
+ cpg: fix sync master selection when one node paused.
+ If one node is paused it can miss a config change and
+ thus report a larger old_members than expected.
+
+ The solution is to use the left_nodes field.
+
+ Master selection used to be "choose node with":
+ 1) largest previous membership
+ 2) (then as a tie-breaker) node with smallest nodeid
+
+ New selection:
+ 1) largest (previous #nodes - #nodes know to have left)
+ 2) (then as a tie-breaker) node with smallest nodeid
+
+ CTS: fix some tests that didn't handle been called more than one
+
+ CTS: sort the configuration - prevent duplicates in the config file
+
+ CTS: fix syntax error in log message
+
+ CTS: bump up log messages of failed RPC
+
+ CTS: don't force all-once (breaks random tests)
+
+ autobuild: improve messages
+
+ CTS: add -l to keygen (normal keygen struggles to run on VMs)
+
+ CTS: send with correct number of iovecs
+ Else payload won't be sent
+
+ CTS: timer should not be on the stack
+
+2011-05-05 Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Enhance mcast failure detection
+ memb_state_gather_enter increase stats.continuous_gather only if
+ previous state was gather also. This should happen only if multicast is
+ not working properly (local firewall in most cases) and not if many
+ nodes joins at one time.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-04-15 Jan Friesse <jfriesse@redhat.com>
+
+ coroipcs: Deny connect to service without initfn
+ If library connect to service with no init function, coroipcs will try
+ to dereference NULL pointer. Now we correctly return error code
+ CS_ERR_NOT_EXIST.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-04-15 Tim Serong <tserong@novell.com>
+
+ Add ipc_refcnt to message_handler_req_{exec, lib}_cfg_ringreenable()
+ Without refcounting the conn pointer here, corosync will segfault
+ if one kills a running instance of "corosync-cfgtool -r" (rhbz#695191)
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-04-15 Steven Dake <sdake@redhat.com>
+
+ Align ipc on 8 byte boundaries
+ Align all ipc messages on 8 byte boundaries. This alignment will remove bus
+ errors on systems that can't access non-byte aligned data and should improve
+ performance.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Fix problem where unaligned totemip address access would result in bus error on non-unaligned-safe architectures.
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-04-15 Greg Walton <corosync@gwalton.net>
+
+ Clean up ENDIAN ifdef tests
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-04-11 Tim Serong <tserong@novell.com>
+
+ Fix tyop in RRP faulty error messages
+ Reviewed-by: Russell Bryant <russell@russellbryant.net>
+
+2011-04-13 Angus Salkeld <asalkeld@redhat.com>
+
+ IPC: place calls to stats functions outside of mutexes
+ This is to prevent nasty deadlocks between IPC and objdb.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-04-12 Zane Bitter <zane.bitter@gmail.com>
+
+ Provide better checking of the message type
+ A negative value for the message type (on systems where char is signed)
+ would cause a crash. This is highly probable if the cluster is, for example,
+ misconfigured to have encryption enabled on some nodes but not others.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-04-08 Zane Bitter <zane.bitter@gmail.com>
+
+ Fix uninitialised memory errors found by valgrind
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-29 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix shutdown when a confdb client is still connected
+ If you are connected to corosync and registered for
+ object notifications then corosync is asked to shutdown
+ the IPC server will get stuck. This is because the pipe
+ is closed and the refcount is increased. This leaves ipcs
+ with a connection that it can't destroy.
+
+ Solution:
+ 1) if a write to the pipe fails (pipe closed) decrement the refcounter.
+ 2) fix the object_track_stop() - it was not working as the functions
+ did not match up. (this caused the late callbacks).
+ 3) in ipcs call exit_fn() then stats_destroy_connection() so that
+ the service engine can have time to call object_track_stop()
+ before the object gets destroyed.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ STATS: add the service name to the connection name.
+ This helps to quickly identify what service the application
+ is connected to.
+
+ The object will now look like:
+ runtime.connections.corosync-objctl:CONFDB:19654:13.service_id=11
+ runtime.connections.corosync-objctl:CONFDB:19654:13.client_pid=19654
+ etc...
+
+ This also makes it clearer to receivers of the dbus/snmp events
+ what is going on.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ NOTIFYD: prevent duplicate quorate events.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ NOTIFYD: fix retrieving the application's parent name.
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-24 Jan Friesse <jfriesse@redhat.com>
+
+ cfgtool: print list of IP with space between items
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cpgtool: print list of IP with space between items
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ cfg_get_node_addrs: Return correct addresses
+ Zero element array behavior is very different from normal array or
+ pointer. This behavior is root of problem in not returning correctly
+ filled array of addresses. This appeared only in rrp mode, where more
+ then one address is returned.
+
+ All memcpy's are now correctly converted to copy pointer to char.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-24 Steven Dake <sdake@redhat.com>
+
+ totemsrp: free messages originated in recovery rather then rely on messages_free
+ Relying on messages_free may seem like it should work, but it leads to a
+ situation where every node has released the messages, yet some nodes think
+ messages are missing. The output then looks like "Retransmit: #" in
+ repitition. This patch frees those messages immediately during the transition
+ to the OPERATIONAL state and sets the internal variables totemsrp depends
+ upon to the proper values.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Only restore old ring id information one time
+ The current code stores the current ring information every time a commit
+ token is generated. This causes the old ring id used for comparison purposes
+ to increase if a token is lost in commit or recovery, resulting in failure of
+ totem. This patch changes the behavior to only store the old ring id one
+ time when the commit token is received, and then further commit token ring
+ id saves are not done until OPERATIONAL is reached.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+ totemsrp: Remove recv_flush code
+ The recv_flush code is no longer necessary because of the miss_count_count
+ addition. It can in some cases lead to register corruption because of
+ interactions with -fstack-protector, the recursive nature of how this code
+ works, and interactions with the optimizer in some versions of gcc.
+
+ Reviewed-by: Jan Friesse <jfriesse@redhat.com>
+
+2011-03-23 Angus Salkeld <asalkeld@redhat.com>
+
+ confdb: send notifications from the main thread not IPC thread
+ corosync-notifyd has exposed an issue with confdb notifications.
+
+ The normal state of affairs is:
+ IPC thread > lock > objdb > lock
+
+ objdb notification whilst really useful turn things around:
+ <middle of big call chain>
+ objdb > lock > confdb > ipc > lock
+
+ This reverse ordering of locks causes a horrible dead lock.
+
+ I see this patch as a work around until corosync-2.0
+ when most of the threads and locking disappear.
+
+ This patch adds a pipe to confdb service. When we get a
+ objdb notification a struct gets written to the pipe.
+ The poll loop then runs the dispatch in the main thread.
+ In the dispatch we call the real ipc_dispatch_send().
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-21 Steven Dake <sdake@redhat.com>
+
+ Resolve abort during simulatenous stopping of atleast 4 nodes
+ consider 5 nodes.
+
+ node 3,4 stopped (by random stopping) node 1,2,5 form new configuration
+ and during recovery node 1 and node 2 are stopped (via service service
+ corosync stop). This causes 5 never to finish recovery within the timeout
+ period, triggering a token loss in recovery. Bug #623176 resolved an assert
+ which happens because the full ring id was being restored. The resolution
+ to Bug #623176 was to not restore the full ring id, and instead operate
+ (according to specifications) the new ring id. Unfortunately this exposes
+ a problem whereby the restarting of nodes 1-4 generate the same ring id.
+ This ring id gets to the recovery failed node 5 which is now in gather,
+ and triggers a condition not accounted for in the original totem specification.
+
+ It appears later work from Dr. Agarwal's PHD dissertation considers this
+ scenario. That solution entails rejecting the regular token in the above
+ condition. Since the ring id is also used to make decisions for commit token
+ acceptance, we must also take care to reject the regular token in all cases
+ after transitioning from OPERATIONAL.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-21 Angus Salkeld <asalkeld@redhat.com>
+
+ notifyd: dispatch only one message at a time.
+ This is avoid getting stuck in the dispatch processing
+ messages when the user is trying to shutdown the service.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-15 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix some "set but not used" warnings [-Wunused-but-set-variable]
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Remove the ttl option from udpu and rely on the kernel ttl setting.
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix the ttl defaults and range
+ 1) both IPv4 and IPv6 mcast should default to ttl=1
+ 2) the range should be 0..255
+ 0 is valid meaning localhost only (cluster of one)
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2011-03-15 Russell Bryant <russell@russellbryant.net>
+
+ Add Doxyfile to .gitignore
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-03-12 Angus Salkeld <asalkeld@redhat.com>
+
+ docs: auto-generate the version
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-12 Russell Bryant <russell@russellbryant.net>
+
+ Convert existing documentation to doxygen format.
+ This patch modifies most of the existing comments in header files to be
+ in a format that doxygen can interpret. This provides another
+ significant improvement to the web/pdf/etc generated documentation
+ without having to add new content.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-03-12 Zane Bitter <zane.bitter@gmail.com>
+
+ Allocate packet buffers in the transport drivers
+ This change paves the way for eliminating a copy within the Infiniband
+ driver in the future by transferring responsibility for allocating and
+ freeing message buffers to the transport driver layer.
+
+ Tested under valgrind on a single-node cluster.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-10 Zane Bitter <zane.bitter@gmail.com>
+
+ Fix minor errors in man page documentation for corosync.conf
+ * Correct 'See Also' reference to corosync.conf(5) in corosync(8) man page
+ * Update path to default config (now /etc/corosync/corosync.conf)
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-08 Steven Dake <sdake@redhat.com>
+
+ Fix abort when token is lost in RECOVERY state
+ A commit token should be rejected when a token is lost in the recovery
+ state. This occurs naturally because the ring id increases by 4 for
+ every new ring. Prior to this patch, if the token was lost, the old
+ ring id information was restored, causing a commit token to be accepted
+ when it should be rejected. This erronously accepted commit token would
+ lead to an assertion which is fixed by this patch.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-03-07 Russell Bryant <russell@russellbryant.net>
+
+ Add content for the doxygen main page.
+ This creates some content on the main page of the documentation
+ generated by doxygen. The main page includes the license and a link
+ to the project web site.
+
+ eviewed-by: Steven Dake <sdake@redhat.com>
+
+ Resolve a couple of doxygen warnings.
+ This resolves a couple of doxygen warnings. First, the group needed a
+ name. Second, all of the functions in the file were added to the group
+ but doxygen complained about the lack of an end to the grouping.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Update doxygen configuration file.
+ The included doxygen configuration file was a bit stale. It included
+ some options that were obsolete and caused doxygen to generate some
+ warnings when running it. Most of the changes here were simply done by
+ running "doxygen -u" to automatically update the file. It added its
+ documentation for the options and removed the obsolete options.
+
+ This also includes one configuration change, which is to set EXTRACT_ALL
+ to yes. This instructs doxygen to generate documentation pages for all
+ files, public functions, and public data structures even if they are not
+ currently documented using doxygen syntax. Doxygen is capable of
+ generating some useful documentation on its own, such as dependency
+ graphs.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Minor build system updates for doxygen.
+ The configure script has been updated to check for the doxygen and dot
+ applications (from doxygen and graphviz). The results from these checks
+ are now used in the Makefile to ensure that the tools are installed when
+ you run "make doxygen". If they are not, it will generate a helpful
+ error message.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ Ensure that strings are null terminated after strncpy().
+ From the strcpy(3) man page, the following warning is given:
+ The strncpy() function is similar, except that at most n bytes of src
+ are copied. Warning: If there is no null byte among the first n bytes
+ of src, the string placed in dest will not be null-terminated.
+
+ The current corosync code base does not take this warning into account
+ when using strncpy, potentially resulting in non-null terminated strings.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-03-05 Russell Bryant <russell@russellbryant.net>
+
+ Add -l option to corosync-keygen.
+ This option (-l or --less-secure) causes corosync-keygen to read from
+ /dev/urandom instead of /dev/random to ensure that no input is required
+ from the user. It may be useful when this command is used from a
+ script.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-24 Steven Dake <sdake@redhat.com>
+
+ Don't assert when ring id file is less then 8 bytes
+ If the ring id file for the processor is less then 8 bytes, totemsrp would
+ assert. Our speculation is that this condition happens during a fencing
+ operation or local filesystem corruption.
+
+ With this patch, Corosync will create fresh ring id file data when the
+ incorrect number of bytes are read from the ring id.
+
+ Amend to use sizeof the strerror string length and PATH_MAX for the path length.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ snmp: Allow buildling of corosync on already existing older install of corosync
+ When building corosync against older libraries already installed on the system,
+ the corosync-notifyd application uses the wrong Makefile.am commands. This
+ results in the SNMPLIBS (which includes -L/usr/lib64) coming before the proper
+ LDADD flags. The result is an inability to compile on an already existing
+ installation.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-02-24 Jan Friesse <jfriesse@redhat.com>
+
+ objdb: destroy all handles in _clear_object
+ Patch replaces free for object_instance with handle_destroy to remove
+ leaks in handles (and also memory leak).
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-23 Jan Friesse <jfriesse@redhat.com>
+
+ Iterate all items in object_reload_notification
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corosync-fplay: use uint32_t and remove bit-shift
+ The flight recorder records all data in 32 bit words. Use uint32_t type
+ rather then unsigned int. Also remove bit-shift with multiply by sizeof
+ uint32_t.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ corosync-fplay: Use size_t length mod in printf
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-22 Jan Friesse <jfriesse@redhat.com>
+
+ corosync-fplay: handle too large rec_size
+ Corrupted files may contain items with rec_size larger then g_record
+ buffer and/or flt_data_size.
+
+ Also g_record array size is now defined as constant.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ logsys: Properly lock flt data before dump
+ Data needs to be locked, otherwise resulting fdata file may be
+ incorrect.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ logsys: Don't leak fd on successful fdata dump
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-21 Russell Bryant <russell@russellbryant.net>
+
+ Add calls to pthread_attr_destroy().
+ This patch adds a couple of missing calls to pthread_attr_destroy().
+
+ There were a couple of instances where pthread_attr_init() was being
+ used without a cooresponding call to pthread_attr_destroy(). This also
+ localizes the pthread_attr_t to the function where it is needed instead
+ of having it persist (the man page specifically states that destroying
+ the attributes structure has no effect on threads created using the
+ attributes).
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-14 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: wait (consistently) for 15 minutes for events
+
+2011-02-13 Angus Salkeld <asalkeld@redhat.com>
+
+ autobuild: clean the build dir first.
+ This deletes files like .version that cause problems.
+
+2011-02-11 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: temp remove troublesome tests.
+ Right I know - not so good to comment out tests.
+ BUT they are passing but there is some weirdness
+ in ssh reconnecting to these nodes that causes CTS false
+ negatives.
+ So the nodes are watchdogged (as expected) but when they come
+ back up cts gets stuck in a loop re-trying to ssh into
+ them. It odd as a manual ssh works fine.
+
+ Basically I think it's more important the we get reliable
+ testing than have these test in there.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-07 Angus Salkeld <asalkeld@redhat.com>
+
+ Make node state a string (not an integer)
+ Ryan noticed this inconsistency, all other status's
+ are string so this should be too.
+
+ Reviewed-by: Seven Dake <sdake@redhat.com>
+ Reviewed-by: Ryan O'Hara <rohara@redhat.com>
+
+ CONFDB: fix parent_get response id
+ Reviewed-by: Seven Dake <sdake@redhat.com>
+
+2011-02-04 Angus Salkeld <asalkeld@redhat.com>
+
+ MIB: expand the descriptions of the notifications
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-02-04 Lon Hohberger <lhh@redhat.com>
+
+ Match up MIB to notifyd & add SNMP quorum events
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Make SNMP MIB match what is being sent over DBUS
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-02-04 Angus Salkeld <asalkeld@redhat.com>
+
+ Add dbus and snmp notifier
+ This is to send dbus events on major cluster events:
+ - membership changes
+ - application connect/dissconnet from corosync
+ - quorum changes
+
+ dbus events can then be converted into snmp traps by foghorn or
+ corosync-notifyd can be run to directly send snmp traps.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+ Reviewed-by: Russell Bryant <russell@russellbryant.net>
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ CONFDB: add confdb_object_name_get()
+ This is useful when tracking object changes.
+
+ Reviewed-by: Seven Dake <sdake@redhat.com>
+
+ STATS: fix key name length on "join_count"
+ Reviewed-by: Seven Dake <sdake@redhat.com>
+
+ STATS: increase the space for application names
+ Reviewed-by: Seven Dake <sdake@redhat.com>
+
+2011-01-31 Jan Friesse <jfriesse@redhat.com>
+
+ Handle "nocluster" kernel parameter in init script
+ Init script checks kernel parameters and refuses to start corosync if
+ nocluster parameter exist on boot time. The init script will
+ continue to work as expected from console/tty after boot.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-01-12 Jan Friesse <jfriesse@redhat.com>
+
+ Add objdb firewall_enabled_or_nic_failure
+ New objdb var runtime.totem.pg.mrp.srp.firewall_enabled_or_nic_failure
+ is set to 1 if continuous_gather is larger then MAX_NO_CONT_GATHER.
+ Under normal conditions, value of variable is 0.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-01-11 Angus Salkeld <asalkeld@redhat.com>
+
+ Add missing entries into .gitignore
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ remove unused function declaration
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ fix timersub warning on freebsd
+ Make them all protected by #ifndef timersub
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2011-01-11 Steven Dake <sdake@redhat.com>
+
+ Handle delayed multicast packets that occur with switches
+ Some switches delay multicast packets vs the unicast token. This patch works
+ around that problem by providing a new tuneable called miss_count_const. This
+ tuneable works by counting the number of times a message is found missing
+ and once reaching the const value, marks it as missing in the retransmit list.
+
+ This improves performance and doesn't display warning messages about missed
+ multicast messages when operating in these switching environments.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2011-01-03 Angus Salkeld <asalkeld@redhat.com>
+
+ CPG: make sure coroipcc_service_disconnect() is always called.
+ This prevents a shared mem leak if corosync dies while clients
+ are connected.
+
+ Calling cpg_finalize() did not release the shared mem as
+ coroipcc_msg_send_reply_receive() returned an error and
+ thus coroipcc_service_disconnect() did not get called.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ IPC: send failure message to client if memory maps fail
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2010-12-03 Jan Friesse <jfriesse@redhat.com>
+
+ Display warning when not possible to form cluster
+ This may typically happen if local firewall is enabled. Patch adds new
+ item to statistics called continuous_gather where is number of
+ continuous entered gather state. If this number is bigger then
+ MAX_NO_CONT_GATHER, warning message is displayed. This is also used on
+ exiting, so stop of corosync is now possible even with enabled firewall.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2010-12-01 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix make srpm from release tarball
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ build: fix rpm build to include corosync-blackbox
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2010-12-01 Steven Dake <sdake@redhat.com>
+
+ Revert "Always autogen the tree when building an RPM"
+ This reverts commit d145838a21fb636461a2bceeada34db439f4a9ec.
+
+ Always autogen the tree when building an RPM
+ Since the source tarball never includes the autogen'ed tree in the new source
+ repo methodology, always autogen the tree.
+
+ Set the max buffer size for sockets
+ Set the recv buffer to a large size and the send buffer to a large size to
+ allow the kernel to store more messages before dropping messages.
+
+ Amended to change optlen type to socklen_t
+
+ Reviewed-by: Fabio M. Di Nitto <fdinitto@redhat.com>
+
+2010-11-28 Steven Dake <sdake@redhat.com>
+
+ The flushing code was introducing data corruption because of recursion errors that occur as a result of the design of udpu. Totem no longer requires the flushing technique because we don't mark a packet as missing until it has not been seen by a certain number of token rotations per a previous patch. This mechanism was introduced to work around a problem in switches where multicast messages may be delayed by long periods compared to the unicast token.
+ This patch removes the flushing logic from udpu since it is no longer necessary.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2010-11-24 Angus Salkeld <asalkeld@redhat.com>
+
+ Add totem/interface/ttl config option.
+ This adds a per-interface config option to
+ adjust the TTL.
+
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2010-11-19 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix makefile to ship corosync.conf.example.udpu
+ Reviewed-by Angus Salkeld <asalkeld@redhat.com>
+
+2010-11-18 Steven Dake <sdake@redhat.com>
+
+ Merge branch 'topic-udpu'
+ Conflicts:
+ Makefile.am
+
+ Remove dead soresueaddr code
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+ Add the UDPU transport
+ The UDPU transport is useful for those deployments which can't use multicast.
+ UDPU works by using UDP unicast, which is fully supported by every switch
+ manufacturer by default and doesn't rely on a functional IGMP implementation.
+
+ An example of the UDPU transport is contained in the corosync.conf.example.udpu
+ file which shows a 16 node cluster. This file should be copied to each node
+ in the cluster and IP addresses changed as appropriate.
+
+ Amended to remove dead udpu REUSEADDR socket option.
+
+2010-11-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ build: fix spec file and srpm/rpm generation
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+ add release script and git based versioning
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2010-11-10 Steven Dake <sdake@redhat.com>
+
+ Merge branch 'master', remote branch 'origin/master'
+
+ Add license information to LICENSE file about build process files
+ A few files licensed under GPLv3+ produce text output but are not used as
+ part of the runtime or libraries provided by Corosync. Make that notification
+ in the LICENSE file.
+
+ Reviewed-by: Fabio Di Nitto <fdinitto@redhat.com>
+
+2010-10-22 Angus Salkeld <asalkeld@redhat.com>
+
+ Add -i <num-iterations> to cpgverify
+ Reviewed-by: Steven Dake <sdake@redhat.com>
+
+2010-10-22 Steven Dake <sdake@redhat.com>
+
+ New topic descriptions based upon work community wants to do
+ This file describes the topics of interest for development, their start and
+ finish date, their main developer, and a description of the topic.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2010-10-21 Angus Salkeld <asalkeld@redhat.com>
+
+ Add .gitignore files.
+ Otherwise "git status" is a pain.
+
+ Reviewed-by: Steven Dake <sdake@edhat.com>
+
+2010-10-21 Steven Dake <sdake@redhat.com>
+
+ Add -n option to corosync-objctl to create a new object/key combo
+ Find an existing parent object and add the last object/key name of the command
+ to the object database. This allows the runtime addition of ip addresses to
+ the list of IPs corosync knows about for the purpose of the UDPU transport mode.
+
+ Reviewed-by: Angus Salkeld <asalkeld@redhat.com>
+
+2010-10-12 Jan Friesse <jfriesse@redhat.com>
+
+ Remove delay in library on corosync shutdown
+ Patch removes 2 seconds delay in library on normal corosync shutdown.
+ Delay is still present on abnormal shutdown.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3059 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-29 Angus Salkeld <asalkeld@redhat.com>
+
+ autobuild: fix the continous build
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3058 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-28 Angus Salkeld <asalkeld@redhat.com>
+
+ Check for a properly configured multicast address.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3057 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-27 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: add sam/wd integration tests.
+ - fix send_dynamic() exception
+ - fix basic sam integration test
+ - fixup calls to sam tests
+ - fix startup when using testquorum (currently only handles votequorum)
+ - improve SAM test case with better checking.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3056 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ AUG: add support for resources section & quorum/quorate
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3055 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ WD/SAM integration.
+ - timestamps -> uint64_t and in nanosecs
+ - use clock_gettime
+ - common object naming
+ - common state names
+ - timeouts in milliseconds
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3054 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add monitoring and watchdog services.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3053 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a Finite State Machine.(fsm.h)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3052 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a Finite State Machine.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3051 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-27 Jan Friesse <jfriesse@redhat.com>
+
+ SAM Confdb integration
+ Patch add support for Confdb integration with SAM. It's now possible to
+ use SAM_RECOVERY_POLICY_CONFDB as flag to previous policies.
+
+ Also new function sam_mark_failed is added for ability to use RECOVERY
+ policy together with confdb and get expected results (specially with
+ integration with corosync watchdog)
+
+ Patch also makes SAM thread safe.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3050 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-25 Angus Salkeld <asalkeld@redhat.com>
+
+ configure: cleanup formatting.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3049 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ objdb: fix some ugly indentation.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3048 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ objdb: delete trackers when an object is deleted
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3047 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ objdb: object_created_notification() fix the order of the parent and object handles.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3046 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ objdb: fix some strange types (uint8_t* -> void*).
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3045 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ add float and double support to corosync-objctl
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3044 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CPG: remove irratating log "downlist received left_list:"
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3043 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-14 Steven Dake <sdake@redhat.com>
+
+ Patch from Kacper Kowalik to support honoring user defined LDFLAGS.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3042 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Patch from Kacper Kowalik to add support for --enable-user-flags configure option.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3041 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-09-03 Steven Dake <sdake@redhat.com>
+
+ change shutdown priority to 80 in generic.in.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3039 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Patch from Keisuke Mori to add proper dependeny on syslog to corosync init script.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3038 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-08-31 Steven Dake <sdake@redhat.com>
+
+ Fix few xopen tsafe issues.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3037 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Bump version to 1.2.8.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3034 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Build properly with different versions of libc by including all posix APIs in header definitions.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3030 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-08-25 Angus Salkeld <asalkeld@redhat.com>
+
+ IPC: return CS_ERR_NO_RESOURCES to library when low on fds.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3029 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ POLL: gracefully handle running out of file descriptors.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3028 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-08-24 Steven Dake <sdake@redhat.com>
+
+ Remove checking of sub parameters in service.d files.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3024 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-08-17 Steven Dake <sdake@redhat.com>
+
+ Properly detect shutdown of corosync process
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3022 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-08-03 Steven Dake <sdake@redhat.com>
+
+ Remove cancel token retransmit timeout.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3012 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-08-02 Jan Friesse <jfriesse@redhat.com>
+
+ Check that Corosync was not runned by cman
+ Patch fixes init script so it's tested, if corosync was runned
+ by cman or not. If so, it refuses to stop Corosync.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3011 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Allow running only one instance of Corosync
+ Patch makes Corosync more compliant with common practices
+ for writing daemon. It creates pid file (usually
+ /var/run/corosync.pid) and flocks it. So only one instance
+ of Corosync can be executed now.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3010 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-27 Steven Dake <sdake@redhat.com>
+
+ Change trunk version to 1.2.7.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3007 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove consensus check for two node cluster cases which can have smaller consensus values. Document in man page the behavior of consensus.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3005 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-21 Steven Dake <sdake@redhat.com>
+
+ Fix merge error with revision 3001.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3002 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix problem where flow control could lock up ipc under very heavy load in very rare circumstances.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3001 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-19 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix logging_daemon config parser code.
+ Resolves: rhbz#615203
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2997 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-17 Angus Salkeld <asalkeld@redhat.com>
+
+ SYNC: always call sync_aborted() in sync_confchg_fn().
+ 1) sync_callbacks.sync_abort can be null.
+ 2) sync_processing is set to 0 after syncv1 is done.
+ Then syncv2 processing is down. If we get a config change
+ after syncv1 is down, but before syncv2 is done then it won't
+ get aborted.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2995 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-16 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: add a test case for Andrew's bug
+ Bug:
+ sometimes shutdown can take a long time if all nodes
+ are shutdown together.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2994 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ SYNCV2: add debug when messages are discarded
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2993 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ SYNC: add some ENTER() trace points.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2992 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ SYNCV2: reset the my_memb_determine_ring_id in sync_v2_memb_list_abort()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2991 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ SYNC: remove unused primary_designated from sync_primary_callback_fn()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2990 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-14 Steven Dake <sdake@redhat.com>
+
+ Remove reset of token timeout on retransmitted token reception. The timer should only be reset when a real token is received or membership protocol could run into problems with certain timing parameters.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2988 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-07 Steven Dake <sdake@redhat.com>
+
+ Speed up IPC connection process.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2986 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-07-03 Steven Dake <sdake@redhat.com>
+
+ Fix fail list fault that occurs in very rare circumstances.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2984 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-30 Steven Dake <sdake@redhat.com>
+
+ Bump trunk revision to 1.2.6.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2980 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Have makefile create /var/log/cluster rather then corosync.spec file.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2979 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-30 Andrew Beekhof <abeekhof@redhat.com>
+
+ Safely redirect stderr/in/out to /dev/null to prevent fork() from crashing
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2976 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-29 Steven Dake <sdake@redhat.com>
+
+ Patch to fix stack protector sig abort that occurs when ipc buffer is too short.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2974 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-29 Angus Salkeld <asalkeld@redhat.com>
+
+ ipc: Fix error handling of mmap util functions.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2972 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-29 Steven Dake <sdake@redhat.com>
+
+ Have corosync spec file own /var/log/cluster/corosync.log have example use /var/log/cluster/cluster.log as default log file
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2970 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix problem where flight data leaks files in /dev/shm when corosync is restarted continuously via init scripts.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2964 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-28 Jan Friesse <jfriesse@redhat.com>
+
+ Fix OBJDB locking
+ Patch fixes following situation:
+
+ 1. objdb receives reload notification and ends in function
+ object_reload_config. This will call objdb_wrlock. I will call this
+ thread #1
+
+ 2. Another thread will decide to update corosync statistics and calls
+ object_key_increment. This calls objdb_rdlock. This thread is #2. But
+ because condition (lock_thread != pthread_self()) is satisfied, it will
+ also calls pthread_rwlock_rdlock. This will blocks, because thread #1
+ holds the lock.
+
+ 3. object_reload_config will call reload functions (as real example
+ xml2objdb). xml2objdb needs to calls object_create. This calls
+ objdb_rdlock, but will hang on pthread_mutex_lock(&meta_lock), because
+ this lock is held by thread #2.
+
+ -> deadlock
+
+ It is handled by using recursive mutex.
+
+ Also every function is now really locked.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2963 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-23 Jan Friesse <jfriesse@redhat.com>
+
+ Remove pathconf which may fall
+ Corosync has problem with readdir_r if pathconf function fails.
+
+ Main problem is hidden in calling pathconf (internally calls statfs)
+ which may fail. After this fail, newly allocated memory for readdir_r
+ was smaller than expected and memory was overwritten by readdir_r.
+
+ Patch removes calling of pathconf and rather use NAME_MAX constant which
+ is always large enough for all file systems.
+
+ Also return value of malloc SHOULD be checked.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2962 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-21 Angus Salkeld <asalkeld@redhat.com>
+
+ Add make/spec file changes for corosync & blackbox man pages.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2961 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a simple man page for corosync
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2960 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a man page for corosync-blackbox
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2959 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-21 Steven Dake <sdake@redhat.com>
+
+ Change version to 1.2.5 in trunk.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2956 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-19 Steven Dake <sdake@redhat.com>
+
+ Stop the totem stats updater timer during shutdown to prevent references to invalid memory.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2953 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Unlock global serializer lock during shutdown.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2949 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-18 Andrew Beekhof <abeekhof@redhat.com>
+
+ Prevent segfault in fork()
+ Not closing stdin/stderr/stdout leads to a segfault in fresetlockfiles()
+ See https://lists.linux-foundation.org/pipermail/openais/2010-June/014854.html for further info.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2948 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-15 Steven Dake <sdake@redhat.com>
+
+ Patch from Honza: Send CPG_REASON_PROCDOWN on process left
+ Our manual pages are clear:
+
+ CPG_REASON_PROCDOWN - the process left a group without calling
+ cpg_leave().
+
+ Currently, we are sending CPG_REASON_LEAVE in such situation.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2946 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-15 Christine Caulfield <ccaulfie@redhat.com>
+
+ object_key_iter() calls object_key_iter_typed() and then always tries to dereference the string it returns, even if the call fails. The attached patch fixes this.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2944 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-10 Steven Dake <sdake@redhat.com>
+
+ changes to corosync.spec.in template:
+ Move configure to %build section
+ don't set corosync's init levels during an upgrade of the corosync package
+
+ Patch from Vadym Chepkov
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2943 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-09 Steven Dake <sdake@redhat.com>
+
+ update version to 1.2.4.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2939 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Update logsys to use proper ring buffer on file backed map
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2922 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-07 Angus Salkeld <asalkeld@redhat.com>
+
+ Disable test while I fix it.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2921 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-04 Steven Dake <sdake@redhat.com>
+
+ sem_wait can be interrupted by signal. Handle interruption properly.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2920 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-03 Steven Dake <sdake@redhat.com>
+
+ Fix fail to receive logic which occurs very rarely on high loss networks with software based multicast.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2919 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-02 Angus Salkeld <asalkeld@redhat.com>
+
+ temporarily remove a cts test case.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2918 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-06-01 Steven Dake <sdake@redhat.com>
+
+ Totem spec is clear:
+ reject retransmitted tokens
+ if token.aru = aru in token on last rotation ... do some logic
+
+ Here is how the current code works:
+
+ last_aru = instance->my_last_aru;
+ instance->my_last_aru = token->aru;
+ reject retransmitted tokens
+ if token.aru = aru in token on last rotation ... do some logic
+
+ The issue is last_aru will be set to token->aru when a token retransmission
+ occurs before a new token arrives.
+
+ This results in the "do some logic" part happening more often then it should.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2917 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix problem where callbacks are not delivered to evs service.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2916 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-28 Steven Dake <sdake@redhat.com>
+
+ The static function 'decode_mode()' is used by the static function 'dump_subsys_config()' which is is turn used by the static function 'dump_full_config()' which is never used.
+ Are these functions used by someone using some magic? I did not find
+ any reference and even the flag LOGSYS_DEBUG, which prevents them from
+ compiling, does not exist at some other point.
+
+ If these functions are really not used, please remove them (because at
+ least one of them has a buffer overflow). Patch against 1.2.3
+ is attached.
+
+ If there is a need for these functions, I'll send a patch to fix
+ the 'decode_mode()' function.
+
+ Kind regards
+
+ Andreas Florath
+
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2915 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-28 Angus Salkeld <asalkeld@redhat.com>
+
+ Add a man page for corosync-quorumtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2914 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a man page for corosync-pload
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2913 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add man page for corosync-fplay.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2912 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add man page for corosync-cpgtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2911 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add man page for corosync-cfgtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2910 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Really corosync-keygen.8
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2909 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a man page for corosync-keygen and update corosync_overview
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2908 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-27 Jan Friesse <jfriesse@redhat.com>
+
+ coroipcc - don't loop forever on EINTR
+ This patch unify behaviour of SYS V semaphores and POSIX semaphores.
+ POSIX semaphores never return CS_ERR_TRY_AGAIN on EINTR and keeps
+ waiting. This was fixed for SYS V semaphores in rev. 2303.
+
+ Another change is to remove very small probability of hung forever in
+ coroipcc_dispatch_put.
+
+ Last change is removal of duplicate code by adding ipc_sem_wait function.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2907 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-26 Steven Dake <sdake@redhat.com>
+
+ Fix problem where memcpy operation occurs incorrectly to copy schedule parameter data resulting in priority inversion deadlocks on single cpu systems.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2906 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-21 Angus Salkeld <asalkeld@redhat.com>
+
+ makefile: add -lquorum -lcoroipcc to sam test programs
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2905 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Autobuild: add -v option to mock
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2904 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-19 Steven Dake <sdake@redhat.com>
+
+ Bump revision to 1.2.3.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2901 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix leak in error path in nss encryption.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2857 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ This patch updates the wording for the bindnetaddr option in corosync.conf to explicitly state that you need to use the network address, as opposed to "should always end in zero", which is only correct for class C networks.
+ Regards,
+
+ Tim
+
+
+ --
+ Tim Serong <tserong@novell.com>
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2856 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Make cpg_membership_get() functional.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2855 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-19 Angus Salkeld <asalkeld@redhat.com>
+
+ cov 10412: fix mem leak in encrypt_and_sign_nss()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2854 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ add __attribute__((noreturn)) to functions that always exit.
+ we had some __attribute__((__noreturn__))
+ and some __attribute__((noreturn))
+
+ I made them all: __attribute__((noreturn))
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2853 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-18 Steven Dake <sdake@redhat.com>
+
+ Fix free of ring status information when memory allocation fails during allocation of the ring status information.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2852 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix signed comparison with unsigned value in mainconfig.c
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2851 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-18 Angus Salkeld <asalkeld@redhat.com>
+
+ cov 10388: fix check for no mcast address
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2850 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov (many): make sure all _set() functions return a signed int
+ in the body it can return -1, and callers check for -1.
+ but the return type is unsigned int?
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2849 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10391: allow assert to check for a negative number
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2848 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10404: don't assign loc pointer when not used.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2847 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-18 Steven Dake <sdake@redhat.com>
+
+ Fix problem where logsys messages are not flushed at exit before worker thread is created.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2846 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-18 Angus Salkeld <asalkeld@redhat.com>
+
+ cov 10405: remove unused pointer from totemsrp.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2845 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-17 Angus Salkeld <asalkeld@redhat.com>
+
+ cov 10373: check poll return value
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2844 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix compile error in services/cfg.c
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2843 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-16 Angus Salkeld <asalkeld@redhat.com>
+
+ cov 10392: remove pointless assert
+ backlog is unsigned
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2842 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10413: crypto init a variable.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2841 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov (10387, 10397): cleanup memory mapping functions
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2840 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10374: check sam_hc_send() before counter++
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2839 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10399: set the msg_flags to 0 in coroipcs.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2838 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10390: remove pointless assert.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2837 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10389: remove unneccessary check.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2836 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10371: check return of lcr_ifact_reference
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2835 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10401: error_string never set
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2834 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10411: fix leak in totemudp.c
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2833 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10400: unit'ed variable.
+ not important, easy to fix.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2832 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-14 Steven Dake <sdake@redhat.com>
+
+ Merge patch from Sato Yuki which fixes corosync-cfgtool -r
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2831 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-14 Angus Salkeld <asalkeld@redhat.com>
+
+ cov 10396: prevent a leak under error conditions (lib/sam.c)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2830 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10378: fix syntax error.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2829 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10385: assigning signed int to unsigned variable
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2828 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10384: better error handling from accept()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2827 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10383: impove the error handling after socket()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2826 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10382: improve error handling around open()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2825 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10381: check result of open()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2824 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ cov 10379 &10380: check result of open before calling ftruncate.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2823 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-13 Jan Friesse <jfriesse@redhat.com>
+
+ SAM integration of quorum
+ Patch adds integration of SAM and quorum, so it's now possible to use
+ SAM_RECOVERY_POLICY_QUORUM_QUIT or SAM_RECOVERY_POLICY_QUORUM_RESTART
+ recovery policy. With these policies, sam_start will block until
+ corosync is quorate. If quorum is lost during health checking, recovery
+ action is taken.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2822 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Allow call sam_warn_signal_set after sam_register
+ Patch fixes situation, when user want to change warn signal after
+ call of sam_register function. This was not possible, because parent
+ process never got new value from child.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2821 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-13 Steven Dake <sdake@redhat.com>
+
+ Bump version to 1.2.2.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2818 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys rework to deal with memory corruption around debug:on configurations.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2816 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-13 Angus Salkeld <asalkeld@redhat.com>
+
+ autobuild: clean up the example config before installing
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2815 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-12 Angus Salkeld <asalkeld@redhat.com>
+
+ cpg: fix unitialized variable
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2814 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: fix test_agent start/stop errors
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2813 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: fix test service configuration
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2812 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ configure: minor change to get tab completion to work
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2811 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-05 Angus Salkeld <asalkeld@redhat.com>
+
+ autobuild: hard code mock path to /usr/bin/mock
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2808 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ set execute bit on autobuild.sh
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2807 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ spec: fix some errors from rpmbuild & rpmlint
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2806 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ testcpg: fix a format string compile warning.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2805 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ log: remove "Member left/join" log messages
+ No longer needed by CTS and likely to be very noisy
+ with large node numbers.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2804 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-04 Angus Salkeld <asalkeld@redhat.com>
+
+ cpg: fix sync'ing the downlist.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2801 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ check and discard unknown messages
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2800 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ diags: add a mechanism to trigger the writing the flight data
+ trigger the dumping of flight data using:
+ corosync-objctl -w runtime.blackbox.dump_flight_data=anything
+ trigger the dumping of state using:
+ corosync-objctl -w runtime.blackbox.dump_state=anything
+
+ then read the flight data as usual:
+ corosync-fplay
+
+ This patch includes a wrapper script called:
+ corosync-blackbox
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2799 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix "mock --with testagents"
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2798 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-03 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: reproduce David's bug
+ This patch creates a test case the runs the following steps:
+ 1: start all nodes
+ 2: isolate node n1
+ 3: Kill corosync on n1
+ 4: unisolate node n1
+ 5: start corosync on n1
+ 6: start cpg on all nodes
+ 7: isolate node n1
+ 8: Kill corosync on n1
+ 9: unisolate node n1
+ 10: start corosync on n1
+ 11: Waiting for config change on n2
+
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2797 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-05-02 Angus Salkeld <asalkeld@redhat.com>
+
+ Add autobuild.sh : for buildbot to run CTS
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2796 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-30 Steven Dake <sdake@redhat.com>
+
+ The retransmit token storage area is an improper type of an array of pointers rather then a pointer to a buffer.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2795 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ When a message is retransmitted, a memmove operation is done to remove the newly retransmitted entry from the list. It is possible this memmove operation can buffer overflow because it has an invalid length calculation fixed by this revision.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2794 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Allow maximum entries in the retransmit queue when recovery takes place.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2793 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Save the ring id and restore it properly when the recovery operation fails as a result of a new gather or token loss.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2792 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-29 Christine Caulfield <ccaulfie@redhat.com>
+
+ Fix name of fail_recv_const in corosync.conf man page
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2791 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-28 Jan Friesse <jfriesse@redhat.com>
+
+ Fix parallel build of libs in lib directory
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2790 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-26 Jan Friesse <jfriesse@redhat.com>
+
+ Handle POLLNVAL in coroipcc
+ Old code in coroipcc doesn't handle POLLNVAL. It can happen, that some
+ applications (for example fenced) will stuck forever.
+
+ Also poll result is now handled more correctly.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2789 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-23 Jan Friesse <jfriesse@redhat.com>
+
+ Handle some valgrind errors
+ - Memset for res_setup variable in coroipcs:req_setup_send
+ - Two memset in logsys for buffers
+ - Problem in corosync_totem_stats_updater where avg_token_holdtime has
+ size of avg_backlog_calc
+ - corosync_totem_stats_init where avg_backlog_calc is 32 bits (not 64)
+ - objdb problem if new_valie_len != object->value_len. In such case
+ newly allocated memory is not initialized and in some situations,
+ value_len is not updated.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2787 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-23 Angus Salkeld <asalkeld@redhat.com>
+
+ select a new sync member if the node with the lowest nodeid has left.
+ Problem:
+
+ Under certain circumstances cpg does not send group leave messages.
+
+ With a big token timeout (tested with token == 5min).
+ 1 start all nodes
+ 2 start ./test/testcpg on all nodes
+ 2 go to the node with the lowest nodeid
+ 3 ifconfig <int> down && killall -9 corosync && /etc/init.d/corosync restart && ./testcpg
+ 4 the other nodes will not get the cpg leave event
+ 5 testcpg reports an extra cpg group (basically one was not removed)
+
+ Solution:
+ If a member gets removed using the new trans_list and
+ that member is the node used for syncing (lowest nodeid)
+ then the next lowest node needs to be chosen for syncing.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2785 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: increase the token timeout on some tests
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2784 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add CpgCfgChgOnNodeRestart
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2783 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-20 Jan Friesse <jfriesse@redhat.com>
+
+ CPG model_initialize and ringid + members callback
+ Patch adds new function to initialize cpg, cpg_model_initialize. Model
+ is set of callbacks. With this function, future addions of models
+ should be possible without changing the ABI.
+
+ Patch also contains callback in CPG_MODEL_V1 for notification about
+ Totem membership changes.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2770 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Support for store user data in SAM
+ Ability to in-memory storing of user data which survives between
+ instances of process.
+
+ Also ability needed ability for bi-directional communication between
+ child and parent is added.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2769 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix confdb linking (add -ldl)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2768 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-20 Christine Caulfield <ccaulfie@redhat.com>
+
+ Fix a crash in YKD
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2767 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-16 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: update the CTS README
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2766 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: make record events blocking
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2765 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add context get/set tests.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2764 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: fix the test_agent start/stop/status mechanism.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2763 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-15 Angus Salkeld <asalkeld@redhat.com>
+
+ test for augtool before using it in "make check"
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2762 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-14 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: add quorum notifications to test agents.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2761 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add simul start/stop to GenTestClasses
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2760 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: make the extra config tests named
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2759 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add --rrp-bindaddr to enable rrp tests.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2758 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-12 Angus Salkeld <asalkeld@redhat.com>
+
+ When sync is aborted clear the "my_ring_id" variable.
+ This patch fixes crashes found by repeated pacemaker CTS SimluStart
+ tests. When you bring up the nodes together it can cause a lot of
+ configuration changes and sync gets started and aborted
+ lots of times.
+
+ When abort is called the ring_id is not changed which means that any
+ sync packet that arrive from that point on will be accepted as valid.
+ I have seen old barrier messages causing the processing index to increment
+ later causing an array out of bounds.
+
+ This patch memsets the ring_id to 0, thus causing the ring_id in the packet and
+ my_ring_id not to match.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2757 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-07 Angus Salkeld <asalkeld@redhat.com>
+
+ add comment to the man page explaining the use of port and port -1.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2756 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-02 Steven Dake <sdake@redhat.com>
+
+ Allow modifying POLLIN/POLLOUT state in another thread while the main thread is blocked in poll system call.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2755 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove problem where NULL dispatch handler functions would result in lockup of the dispatch if they were sent by a service engine.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2754 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-04-01 Jan Friesse <jfriesse@redhat.com>
+
+ Support for user configurable warning signal
+ Allow developer configure a signal to be send as a warning signal
+ before real SIGKILL.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2753 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Support for specific libraries version
+ Patch adds support for changing version number of library simply by edit
+ lib$(LIB).verso file.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2752 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-30 Angus Salkeld <asalkeld@redhat.com>
+
+ Add missing cts files.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2751 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-30 Steven Dake <sdake@redhat.com>
+
+ Fix barrier operation with syncv2 and compat:none or openais service engines.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2750 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-30 Angus Salkeld <asalkeld@redhat.com>
+
+ augeas: add uidgid and quorum options to lense
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2749 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-30 Jérôme Flesch <jerome.flesch@netasq.com>
+
+ Coroipcc: Make sure that coroipcc_service_connect() always return a valid cs_error_t
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2748 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-30 Angus Salkeld <asalkeld@redhat.com>
+
+ CTS: add votequorum test agent
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2747 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ objdb: fix key change notifications
+ 1) don't send notifications if the key is the same.
+ 2) Add key value change notifications to key_inc & key_dec
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2746 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add some more confdb tests
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2745 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add sam tests
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2744 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add cpg_zcb tests
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2743 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add a test for sync events
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2742 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ fix make distcheck (add corosync.aug to EXTRA_DIST
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2741 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-26 Jérôme Flesch <jerome.flesch@netasq.com>
+
+ Totemudp: Add debug logs when a call to sendmsg() fails
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2740 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-25 Angus Salkeld <asalkeld@redhat.com>
+
+ Make corosync exit with 0 normally and +1.. on error.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2739 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-24 Angus Salkeld <asalkeld@redhat.com>
+
+ fix 'make distcheck'
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2738 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: get some more code to execute.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2737 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: Add a condb test agent and python tests.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2736 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: Add a confdb test agent and python tests.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2735 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: fix issues with new pacemaker cts
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2734 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: restruct tests so we can run them with multiple configs
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2733 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add quorum option to augeas lense
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2732 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix unloading of evs (service id == 0)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2731 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: add service load/unload test
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2730 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix code coverage with lcrso's
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2729 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: Add tests with more totem options.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2728 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add crypto options to augeas lense & add make check
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2727 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: Add msg sha1 checking of the message body (like cpgverify)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2726 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-23 Steven Dake <sdake@redhat.com>
+
+ Bump version to 1.2.1.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2723 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Tone down noisy logging from ipcs system.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2721 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-22 Steven Dake <sdake@redhat.com>
+
+ Fix lockup that occurs rarely with pthread_join() is called in atexit() handler.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2719 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-20 Steven Dake <sdake@redhat.com>
+
+ Fix problem where retransmissions don't occur resulting in failure to receive condition.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2685 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-16 Christine Caulfield <ccaulfie@redhat.com>
+
+ Fix a couple of small bugs that happen when the configuration is reloaded.
+ 1. the reload callback was not sent to the library,
+ 2. totem exponentially added new callbacks because the old ones were not
+ removed properly.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2684 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a reload callback to libconfdb.
+ This also increments the libconfdb version to 4.1.0
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2683 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-11 Angus Salkeld <asalkeld@redhat.com>
+
+ Remove warnings.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2682 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ add optional --with testagents to the spec file
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2681 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: fix buffer overrun in test agent.
+ Also to make debugging easier:
+ 1) don't stop abrt
+ 2) fix debug message
+ 3) catch a failed mesage to the TA and fail the test.
+
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2680 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ CTS: fix deletion of the tmp root for augeas
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2679 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-09 Angus Salkeld <asalkeld@redhat.com>
+
+ add a list of member nodes into the objdb runtime tree.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2678 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ tsafe: change fork() override to pthread_atfork() callbacks.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2677 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-04 Jan Friesse <jfriesse@redhat.com>
+
+ Support for lib_cpg_finalize
+ Add support for MESSAGE_REQ_CPG_FINALIZE message. This will allow us
+ remove cpg_pd from list of active connections, and remove problem, when
+ cpg_finalize + cpg_initialize + cpg_join can result in CPG_ERR_EXIST
+ error.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2676 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ 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.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2675 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-03 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix some "make lint" problems
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2674 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-03 Steven Dake <sdake@redhat.com>
+
+ Specify the ringnumber parameter must start at 0 in the corosync.conf man page.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2673 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix error handling to avoid segfaults/leaks on error in coroipcc_service_connect.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2672 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Turn executable bit on for py/sh scripts in cts.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2671 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-03-03 Angus Salkeld <asalkeld@redhat.com>
+
+ Add tsafe.h to noinst_HEADERS to fix "make distcheck"
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2670 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add tsafe (thread safe) file to catch unsafe function calls.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2669 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a test harness to corosync that uses CTS from pacemaker.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2668 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-26 Christine Caulfield <ccaulfie@redhat.com>
+
+ Reduce the number of times the quorum message is displayed.
+ Patch from David Teigland
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2667 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-25 Angus Salkeld <asalkeld@redhat.com>
+
+ convert giduid calls to reentrant versions.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2666 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ convert strerror() into strerror_r()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2665 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ convert readdir into readdir_r
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2664 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ convert strtok to strtok_r
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2663 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-18 Angus Salkeld <asalkeld@redhat.com>
+
+ Add a debug message on node join/leave.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2662 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Correct testcpg's groupname.length
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2661 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-18 Steven Dake <sdake@redhat.com>
+
+ Patch to set unset value in token hold cancel structure as to not crash wireshark.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2660 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-17 Angus Salkeld <asalkeld@redhat.com>
+
+ add a note about rotating logfile created with to_logfile
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2659 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add augeas lense for corosync.conf
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2658 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-16 Jan Friesse <jfriesse@redhat.com>
+
+ Fix corosync shutdown process
+ This patch change corosync shutdown process, so now:
+ - exit function of service engine is called
+ - all IPC connections are closed and removed from poll
+ - service engine is unlocked
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2657 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-15 Steven Dake <sdake@redhat.com>
+
+ Use nodeid instead of localhost ip for the case when binding to a loalhost interface.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2656 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-12 Christine Caulfield <ccaulfie@redhat.com>
+
+ Remove a double list_del() when a tracking CFG client shuts down without calling cfg_track_stop. This caused corosync to crash.
+ The extra list_empty() check is redundant too because it also happens in remove_ci_from_shutdown()
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2655 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-04 Steven Dake <sdake@redhat.com>
+
+ Merge of Dejan's on=yes patch for the config parser options to ease migration.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2654 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-04 Angus Salkeld <asalkeld@redhat.com>
+
+ pass transitional members into the sync_init() callbacks.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2653 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ move sync_v2_init() into main_service_ready
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2652 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-02-02 Angus Salkeld <asalkeld@redhat.com>
+
+ totemsrp: fix transitional configuration changes with long token timeouts
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2651 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-31 Steven Dake <sdake@redhat.com>
+
+ Fix coroipcs message corruption that occurs when a message fills the remainder of the dispatch buffer with a full message.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2650 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-22 Jan Friesse <jfriesse@redhat.com>
+
+ Add schedwrk_create_nolock function
+ This patch adds schedwrk_create_nolock, which will not call
+ serialize_lock before execution of callback.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2649 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-21 Jan Friesse <jfriesse@redhat.com>
+
+ Pass correct poll handle to poll_stop on exit
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2648 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ poll_dispatch_delete - ability to return 0
+ Patch fixes poll_dispatch_delete, so it is able to return 0
+ (success), when requested FD was found.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2647 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-20 Jan Friesse <jfriesse@redhat.com>
+
+ Fix setting invalid mode in log destination
+ This fixes problem in revision 2642, when only last
+ line of log destination setting is really applied.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2646 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-14 Jan Friesse <jfriesse@redhat.com>
+
+ Fix malloc deadlock in signal handler
+ This patch solves situations, where malloc is called
+ inside signal handler. It creates thread, which waits
+ for semaphore unlock and then starts shutdown sequence.
+
+ RHBZ#547511
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2644 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix freeze of IPC library connection on sem_wait
+ This patch solves library waiting on sem_wait. It doesn't
+ solve all other problems, which can make corosync not
+ to exit (malloc race, global lock deadlock, ...)
+
+ RHBZ#547511
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2643 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-13 Jan Friesse <jfriesse@redhat.com>
+
+ Fix coroparse to allow white chars before comment
+ - allows white characters before #
+ - new function to parse log destinations (remove code duplicity)
+ - clarify man page
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2642 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2010-01-11 Jan Friesse <jfriesse@redhat.com>
+
+ Generate nodeid value when unset on BSD
+ Generated nodeid is generated in same way as
+ on Linux is.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2641 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-15 Steven Dake <sdake@redhat.com>
+
+ Remove invalid assertion in totemsrp.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2640 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-15 Andrew Beekhof <abeekhof@redhat.com>
+
+ Correctly determine current state in init script
+ If two stop actions are ever performed simultaneously, then neither will terminate.
+ With the default implementaiton of __pids_pidof, the status() function from
+ /etc/init.d/functions incorrectly thinks the other stop action is a real
+ corosync process.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2639 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-08 Angus Salkeld <asalkeld@redhat.com>
+
+ Allow empty (default) consensus timeout.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2638 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-08 Steven Dake <sdake@redhat.com>
+
+ Bump verion to 1.2.0.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2581 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove string overwrite if many recovery messages are originated.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2580 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove compiler warning in vsf_quorum.c.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2579 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove compiler warning in totemsrp.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2578 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Update to AUTHORS file.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2577 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-08 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Update spec file to deal with new libsam
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2576 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Generate .pc file for new libsam
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2575 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-07 Steven Dake <sdake@redhat.com>
+
+ SAM man pages.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2574 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Set boolean indicating the retrans flag was set to 1 to 0 when setting retrans flag in token to zero.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2573 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Make assertions for range checking of message delivery check with the define instead of magic numbers that are not valid if the define changes.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2572 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-07 Jan Friesse <jfriesse@redhat.com>
+
+ Remove potentially thread unsafe call of strftime
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2571 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ SAM implementation merge
+ The SAM library provide a tool to check the health
+ of an application. The main purpose of SAM is to restart
+ a local process when it fails to respond to a healthcheck
+ request in a configured time interval.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2570 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-07 Steven Dake <sdake@redhat.com>
+
+ Prevent lockup in recovery state in totem after 206 messages are originated.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2569 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix recovery messages to be proper length to remove segfault that occurs during recovery.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2568 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-06 Steven Dake <sdake@redhat.com>
+
+ Force consensus timer to be at minimum 1.2 * token to prevent one group of nodes from executing a token timeout in the COMMIT state while another node executes a consensus timeout, showing to applications as a temporary network partition.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2567 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-04 Christine Caulfield <ccaulfie@redhat.com>
+
+ Make man page match reality of totem configuration values.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2566 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ This puts multiple nodeids on each [QUORUM] Members line instead of putting each nodeid on a separate line. With more than a few nodes the excessive lines become a real nuisance, and anyone up around 32 nodes may literally be scrolling through hundreds of those lines.
+ from David teigland
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2565 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-03 Angus Salkeld <asalkeld@redhat.com>
+
+ stats: don't calloc the totemsrp stats struct.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2564 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Correct some ugly indentation.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2563 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ objdb: fix memory leaks when objects are destroyed.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2562 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-02 Angus Salkeld <asalkeld@redhat.com>
+
+ make sure key_names past from confdb are null terminated.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2561 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-02 Jan Friesse <jfriesse@redhat.com>
+
+ bsd: Fix mlockall on FreeBSD version >= 8.0
+ FreeBSD version 8.0 and greater supports mlockall
+ syscall correctly. So configure.ac is changed to detect
+ FreeBSD version and main.c is changed to support it.
+
+ Resolves: rhbz#513687
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2560 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-02 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ spec file cleanup
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2559 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-12-01 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix threads vs fork init order
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2558 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-30 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix stop regression
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2557 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Expose service.d config directory
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2556 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-30 Steven Dake <sdake@redhat.com>
+
+ Start pause timer at initialization so first gather doesn't result in pause timeout operations.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2555 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-30 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Clean up init scripts and make a single generic one
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2554 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-29 Angus Salkeld <asalkeld@redhat.com>
+
+ Rename totem_new_msg_signal() to something more generic.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2553 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ coroipcs: Add a queue_size stats counter to each ipc connection.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2552 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ coroipcs: add logging for flow control state changes.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2551 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-27 Steven Dake <sdake@redhat.com>
+
+ Patch to use proper IFA on Linux platforms to match interface addresses when netmask is not 255.255.255.0.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2550 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-23 Angus Salkeld <asalkeld@redhat.com>
+
+ COVERITY 4: remove dead code in XYZ_dispatch().
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2549 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ COVERITY 17: fix exit handling in show_votes().
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2548 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ COVERITY 12: prevent overrun of logsys output buffers.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2547 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-22 Angus Salkeld <asalkeld@redhat.com>
+
+ COVERITY 13: prevent buffer overrun in quorum-tool.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2546 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ COVERITY 11: remove dead code from cpg_iteration_next().
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2545 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ COVERITY 14: free zcb_mapped if memory_map() fails.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2544 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ COVERITY 18: prevent deref after free.
+ Event deref_after_free: Dereferencing freed pointer "pi".
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2543 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-11-05 Andrew Beekhof <abeekhof@redhat.com>
+
+ Fix compilation on RHEL-4: If _GNU_SOURCE isn't defined, then neither is pthread_spinlock_t and compilation fails
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2542 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-28 Andrew Beekhof <abeekhof@redhat.com>
+
+ Prevent daemon from suppressing corefile generation
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2541 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-23 Steven Dake <sdake@redhat.com>
+
+ Bump version to 1.1.2.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2537 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Revert commit 2523 which results in segfaults under some workloads.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2536 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-21 Steven Dake <sdake@redhat.com>
+
+ Bump revision to 1.1.1.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2533 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-20 Steven Dake <sdake@redhat.com>
+
+ Resolve shutdown problems for pacemaker use case.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2531 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-18 Angus Salkeld <asalkeld@redhat.com>
+
+ Add a log_printf function to coroipcs so we can pass the log level
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2530 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-15 Angus Salkeld <asalkeld@redhat.com>
+
+ Avoid array out of bound error.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2529 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-14 Steven Dake <sdake@redhat.com>
+
+ Patch from jflesch to fix segfault when using sysv semaphores that the thread state is checked prior to the semaphore operation, not after it has completed.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2524 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ totem process group optimization to not copy data into staging buffer if it is to be immediately ordered by totemsrp. Instead pass that data as an iovector element.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2523 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-14 Angus Salkeld <asalkeld@redhat.com>
+
+ stats: prevent a div by zero if totem_count is zero.
+ patch by Chrissie
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2522 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-13 Angus Salkeld <asalkeld@redhat.com>
+
+ Fix the OSX build (broken by stats patches)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2521 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-13 Andrew Beekhof <abeekhof@redhat.com>
+
+ Add SIGTERM support and have the init script wait for corosync to actually terminate. Bud rh#525552
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2520 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-12 Angus Salkeld <asalkeld@redhat.com>
+
+ Add some missing calls to increment the relevant stats.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2519 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ allow coroipcs to work without calling stats initialization.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2518 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add totem stats to objdb.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2517 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove silly warning in corosync-objdb
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2516 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add per service-function statistics.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2515 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add connection related statistics to the object db.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2514 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Test the key value size for typed keys.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2513 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ teach object_key_increment() key types.
+ This is so we can increment all integer types correctly.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2512 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-10 Angus Salkeld <asalkeld@redhat.com>
+
+ Add value types to objdb keys.
+ This allows you to create a key with a know type.
+ And then get the type with the key value.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2511 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-10-06 Christine Caulfield <ccaulfie@redhat.com>
+
+ This patche fixes a couple of small problems with votequorum:
+ - if a single node is booted with votequorum loaded then
+ corosync-quorumtool shows zero nodes and no votes.
+ - votequorum doesn't always tell the main quorum module when a new node
+ has joined the cluster (principally itself. this bug is actually tied
+ into the above)
+
+ I've also added quorum to the default list of services. As quorum has
+ been decoupled from sync it will not interfere with normal operations as
+ it used to do and it makes more sense to have it there than not.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2510 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-25 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Update spec file to enable IBA support and sync with 1.1.0 release
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2507 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-25 Steven Dake <sdake@redhat.com>
+
+ Change version to 1.1.0 in trunk.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2504 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Totem IBA implementation.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2481 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ make main_service_ready function static.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2480 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove unused variable in stress_cpgfdget.c.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2479 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove pointless warning.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2478 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-25 Angus Salkeld <asalkeld@redhat.com>
+
+ turn off _POSIX_THREAD_PROCESS_SHARED for uclibc
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2477 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-22 Steven Dake <sdake@redhat.com>
+
+ Correct pload printing operation.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2473 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-21 Steven Dake <sdake@redhat.com>
+
+ Fix merge error in previous commit.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2472 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Patch from Jerome to fix segfault in dispatch functions.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2468 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix abort with multiple cpg clients under heavy load.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2467 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-20 Steven Dake <sdake@redhat.com>
+
+ Remove warning in logsys compile related to const correctness.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2463 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove warning in coroipcc.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2462 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix sigpipe handling to ignore sigpipes on systems which support them.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2419 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Make delete operation work properly in coropoll.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2418 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-16 Andrew Beekhof <abeekhof@redhat.com>
+
+ Darwin libraries need -install_name otherwise they're not usable without DYLD_LIBRARY_PATH (which is highly unrecommended)
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2417 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-14 Steven Dake <sdake@redhat.com>
+
+ Fix error with revision 2415.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2416 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix dispatch returning TRY_AGAIN when using DISPATCH_ALL parameter because of regression caused by revision 2046:lib/coroipcc.c.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2415 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-10 Angus Salkeld <asalkeld@redhat.com>
+
+ log the built-in features at startup
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2411 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-09 Angus Salkeld <asalkeld@redhat.com>
+
+ add small-memory-footprint option to configure
+ This adds the following option to configure:
+ --enable-small-memory-footprint
+
+ When enabled the following defines are set
+ to reduce the overall memory footprint.
+
+ MESSAGE_SIZE_MAX=1024*64
+ MESSAGE_QUEUE_MAX=512
+ PROCESSOR_COUNT_MAX=16
+ IPC_REQUEST_SIZE=1024*64
+ IPC_RESPONSE_SIZE=1024*64
+ IPC_DISPATCH_SIZE=1024*64
+
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2410 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ don't return the ip address when the mask is not found
+ Currently totemip_copy (boundto,&ipaddr) is called even when the
+ required mask is not found.
+
+ This patch changes the behavior to only copy the ipaddr when the
+ mask is found.
+
+ The current behavior makes debugging an incorrect config really
+ confusing.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2409 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Only insert the filename into the log, not the path.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2408 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-08 Christine Caulfield <ccaulfie@redhat.com>
+
+ Really add corosync-quorumtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2407 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add corosync-quorumtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2406 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-07 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix missing symbol error when loading plugins without executive
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2405 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-07 Angus Salkeld <asalkeld@redhat.com>
+
+ Remove a double unlock in logsys.
+ In logsys there are a number of XYZ_unlocked() functions that are called
+ like this:
+
+ pthread_mutex_lock (&logsys_config_mutex);
+
+ XYZ_unlocked();
+
+ pthread_mutex_unlock (&logsys_config_mutex);
+
+ The XYZ_unlocked() functions should not do any (un)locking.
+ But _logsys_config_subsys_get_unlocked() unlocks if it finds the subsys.
+ This means that there is 1 lock and 2 unlocks.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2404 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-07 Christine Caulfield <ccaulfie@redhat.com>
+
+ Return CS_ERR_NOT_EXIST if a client tries to contact a plugin that isn't loaded.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2403 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-09-07 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix corosync-tools linking
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2402 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-31 Jan Friesse <jfriesse@redhat.com>
+
+ Real add of corosync-cpgtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2401 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Initial version of corosync-cpgtool
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2400 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Implementation of cpg_iteration functions
+ This functions allows iterate available cpg groups
+ and their members. API is modelled like ckpt iteration
+ functions.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2399 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-28 Steven Dake <sdake@redhat.com>
+
+ Fix off by one calculation error resulting in assertion.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2398 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-28 Christine Caulfield <ccaulfie@redhat.com>
+
+ Send CURRENT callbacks to the dispatch FD rather than the callback one.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2397 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix nodelist passed to the quorum subsystem.
+ When a node left, the old nodelist was sent, sigh
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2396 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-28 Steven Dake <sdake@redhat.com>
+
+ Fix incorrect assertion with frame sizes of 9000.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2395 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-24 Steven Dake <sdake@redhat.com>
+
+ Allow finalize routines to occur inside dispatch routines.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2394 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-20 Jan Friesse <jfriesse@redhat.com>
+
+ Handle NULL callbacks in cpg, evs and confdb lib
+ Attached patches handle NULL callbacks in *_initialize
+ and *_dispatch. Handling is same as in quorum service. Now, when
+ callback is NULL -> no memcpy -> instance callbacks will have all
+ items set to NULL and in *_dispatch function is not called.
+
+ It changes cfg so now we are using continue instead of exit.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2392 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-19 Jan Friesse <jfriesse@redhat.com>
+
+ Fix found_service_ver handling
+ Sometimes, when object_key_get doesn't return found_service_ver it
+ doesn't change old value and this value is then used in atoi what
+ will can cause fall of corosync. Patch fixes this case by setting
+ found_service_ver to NULL before call of object_key_get.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2391 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix systems without _POSIX_THREAD_PROCESS_SHARED
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2390 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-17 Steven Dake <sdake@redhat.com>
+
+ Add test program that finds limits of cpg message size.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2389 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Proper limits checking for message sizes to allow ~1mb max message sizes for corosync.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2388 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Request user enter characters into terminal if entropy pool is empty for keygen rather then exiting without creating an auth key.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2387 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-17 Jérôme Flesch <jerome.flesch@netasq.com>
+
+ Fix value returned by lib/coroipcc_dispatch_get() in case recv() fails
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2386 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-12 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Delay forking and closing of fds as much as possible to allow startup wrappers (such as cman_tool) to collect as much errors as possible in case of startup failure
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2385 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-10 Jan Friesse <jfriesse@redhat.com>
+
+ Swap item in cpg_joinlist
+ This patch add swab of header->size so big endian architectures
+ works with LE list and vica versa.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2384 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ corosync: move logsys thread config with all the others
+ logsys thread priority was configured after forking the
+ wthread process and spread the scheduler priority config
+ across a large chunk of code in main.c
+
+ Now that logsys scheduler priority can be invoked at any time,
+ move the code together with corosync_setscheduler code.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2383 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: fix segfault in logsys_thread_priority_set
+ logsys_thread_priority_set expects that wthread is already running
+ but doesn't perform any check if it is.
+
+ if logsys_thread_priority_set is invoked before forking the thread,
+ a segfault is guaranteed.
+
+ this changes to logsys_thread_priority_set ensure that a request
+ for a new scheduler priority is queued if the wthread is not
+ created yet and the new scheduler parameters are applied as early
+ as possible after the thread is created.
+
+ At the same time:
+
+ - add a few comments on clean up that needs to be done
+ - remove a redundant check for policy != SCHED_OTHER as that's
+ corosync need specific. logsys should simply accept the request
+ and apply it.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2382 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-04 Jan Friesse <jfriesse@redhat.com>
+
+ Support for -v (version) feature
+ This can be usefull for easier way to get informations
+ of the corosync version from users. Version and SVN
+ revision (get by svninfo -c) are displayed.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2381 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-04 Christine Caulfield <ccaulfie@redhat.com>
+
+ This patch makes a copy of the notifications list before calling the reload_notifications callbacks. This allows callback functions to manipulate the notifications list without causing corruption or strange loops.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2380 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-04 Steven Dake <sdake@redhat.com>
+
+ Use unnamed shared posix semaphores on platforms which support them.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2379 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Man page cleanups from Steven Whitehouse for cpg service.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2378 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Always keep autogenerated node ids in totem as LE even on BE arches. Have testcpg print out autogenerated nodeid properly on BE arch.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2377 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-08-03 Jan Friesse <jfriesse@redhat.com>
+
+ Support for systems where clock_gettime is not available
+ On some systems clock_gettime is not available so we are
+ testing availability and value of _POSIX_MONOTONIC_CLOCK.
+
+ On system without support of clock_gettime, we are using
+ old behaviour with function gettimeofday.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2376 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-28 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix spec file and update macro usage
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2374 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-27 Jan Friesse <jfriesse@redhat.com>
+
+ Support for monotime timer
+ This patch should solve problems with corosync and ntp, by using
+ clock_gettime where it make sense.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2373 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-27 Steven Dake <sdake@redhat.com>
+
+ Add notification when totem has completed initialization.
+ This triggers the initialization of the service engines which may need totem
+ for initialization.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2372 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add a target token set completed callback in totemrrp and below layers. Handle management of callback in totemsrp.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2371 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-23 Jan Friesse <jfriesse@redhat.com>
+
+ Handle NULL ver string in service
+ In case user not enter ver: in service section, whole
+ corosync falled with segfaul, because atoi was called
+ on NULL.
+
+ Now, in case of NULL, we rather not use atoi, and
+ return 0 directly.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2370 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-23 Steven Dake <sdake@redhat.com>
+
+ Optimization of totemsrp and below by removing hdb usage. cpgbench shows results of 4% to 20% increase in tps and mbs depending on hardware.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2369 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-22 Jan Friesse <jfriesse@redhat.com>
+
+ Support for service.d
+ This patch is very similar to uidgid.d patch, but support for loading
+ services (so read service section).
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2368 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-21 Steven Dake <sdake@redhat.com>
+
+ Initial infrastructure changes to support iba. Split totemnet into totemiba and totemudp and have totemnet call the appropriate transport calls.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2367 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Darwin is missing the sched_setscheduler system call. Patch detects it and resolves the build failure.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2366 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-20 Jan Friesse <jfriesse@redhat.com>
+
+ Cpg synchronization patch for conf change messages
+ The root of the theoretical problem is that cpg_join or cpg_leave
+ messages are being sent via the C apis between synchronization. With
+ the current cpg, synchronization happens in confchg_fn, and then later
+ in cpg_sync_process. cpg_sync_process is called much later after
+ confchg_fn and introduces a small probability of a window of time for
+ queued in totem (but not yet ordered by totem) for those cpg_join and
+ cpg_leave operations to interact with the synchronization process which
+ should happen in one atomic operation but currently is two distinct
+ operations.
+
+ This patch deletes confchg_fn and make sends joinlist/downlist
+ in cpg_sync_process.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2365 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Allow only one connection per (node, pid, grp)
+ This patch allows only one connection per (node, pid, grp_name) tuple.
+ This means, you cannot make more connection from one process to same
+ group_name. This is (I hope) how cpg should behave. In case, you will
+ try to do that, CPG_ERR_EXISTS error is returned.
+
+ Of course, there is no problem with creating:
+ - more connection with same (pid, grp) if nodeid is different
+ - more connection with same (node, grp) if pid is different (for example
+ after fork, or two distinct processes)
+ - more connection with same (node, pid) if grp is different (connect
+ one process to more cpgs).
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2364 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-16 Jan Friesse <jfriesse@redhat.com>
+
+ Add lcoroipcc as build requirement for stress_cpgcontext
+ This is needed for build without errors on system, where
+ lcoroipcc is not installed on system yet.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2363 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-14 Andrew Beekhof <abeekhof@redhat.com>
+
+ Use the preferred prefix for the Pacemaker service
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2362 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-13 Steven Dake <sdake@redhat.com>
+
+ Add NAME entries to manpages.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2360 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-10 Steven Dake <sdake@redhat.com>
+
+ add stress_cpgcontext.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2359 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add stress_cpgfdget test case.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2358 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add stress test case for cpg and coroipcc zero copy buffer alloc and free operations.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2357 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix segfault when using zcb api of coroipcc under certain loads.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2356 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Bump version in trunk
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2355 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-08 Steven Dake <sdake@redhat.com>
+
+ Add poll destroy to coroipcs.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2348 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add more tested platforms to list.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2347 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Updated INSTALL file.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2346 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-02 Jérôme Flesch <jerome.flesch@netasq.com>
+
+ BSD support: Fix EOF handling in coroipcs.c:req_setup_recv() and coroipcs:coroipcs_handler_dispatch()
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2345 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-01 Steven Dake <sdake@redhat.com>
+
+ Add ring id field to evs.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2341 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Set version field in totem header in case it isn't set by default.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2340 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Pass handle is evs callback functions.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2339 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Send ERR_SECURITY when invalid security context is provided via ipc clients.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2338 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Set ERR_SECURITY to 100 to give plenty of room for other people's error codes.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2337 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix build on bsd systems.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2336 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Align syncv2 on 8 byte boundaries.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2335 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Make compatibility mode none work properly.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2334 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Code cleanup for evs service from Wojtek.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2333 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-01 Jan Friesse <jfriesse@redhat.com>
+
+ Don't deliver cpg messages from unknown nodes
+ This patch fixes situation, when in the middle of
+ sync some node will send regular message before
+ another node will receive confch message, and regular
+ message is delivered to application. From application
+ point of view, this node is unknown -> don't expect
+ any messages.
+
+ Now, no such messages are delivered to application.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2332 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-07-01 Steven Dake <sdake@redhat.com>
+
+ Add context get set man pages for evs.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2331 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add new man pages to Makfile.am
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2330 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add context get and set operations to evs handles and man pages.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2329 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add context get/set to See Also section of cpg man pages.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2328 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add see also reference to context get/set operation.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2327 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add votequorum_context_get/set man pages.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2325 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add man pages for confdb_context_get/set operations.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2324 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-30 Jim Meyering <jim@meyering.net>
+
+ remove unnecessary #include
+ * exec/evil.c: Don't include <signal.h>.
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2323 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ remove trailing blanks
+ * corosync.spec.in:
+ * exec/evil.c:
+ * exec/main.c:
+ * exec/mainconfig.c:
+ * exec/syncv2.c:
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2322 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-30 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Reset version to 0.99 in configure.ac to unbreak rpm/srpm.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2321 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-30 Steven Dake <sdake@redhat.com>
+
+ Reset 0.98 in configure.ac to trunk so toplevel makefile works properly
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2319 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Export poll handle via coroapi.h.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2318 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix segfault during dispatch within confdb library.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2317 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-28 Steven Dake <sdake@redhat.com>
+
+ Static-ize some main.c variables.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2316 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Simplify notifications from totem at the notice level.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2315 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove hard coded sync values and use defines from coroapi.h.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2314 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Slay the debug messages coming out at notice level in totem.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2313 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove totemsrp warning.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2312 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Allow syncv2 to determine membership list when run in compatibility mode.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2311 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Follow synchronization model of event service so corosync without openais service engines can communicate with the openais whitetank event service in compatibility mode.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2310 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Send fake barriers for the event service when operating in compatibility mode whitetank.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2309 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-27 Angus Salkeld <asalkeld@redhat.com>
+
+ add "-p" option to corosync-objctl
+ This just adds a "-p" option to corosync-objctl.
+
+ So you can do the following (like sysctl).
+
+ corosync-objctl -p /path/to/object.conf
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2308 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-27 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix rpm version generation and adapt release manager Makefile.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2307 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-27 Steven Dake <sdake@redhat.com>
+
+ Remove some debug printfs that snuck in.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2306 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Change sync_init api call to pass information relevant for making synchronization decisions.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2305 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-26 Steven Dake <sdake@redhat.com>
+
+ Add ability to detect process pause and not implode the membership algorithm when this occurs.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2304 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Previously if a process was interrupted by a signal it could become unkillable because the operation was retried on signal interrupts.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2303 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add syncv2.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2302 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add AMF_V2_SERVICE defintion
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2301 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix build error in evil.c
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2300 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix no boottime support warning.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2299 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add compatability option in config file. Defaults to whitetank. Add sync_mode to coroapi to indicate to corosync the service engine's desired compatibility mode.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2298 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ definition error in corodefs.h
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2297 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ sync-v1 onwire compat layer for raw corosync to communicate with whitetank.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2296 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-25 Steven Dake <sdake@redhat.com>
+
+ Define CMAN and CRM service ids.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2295 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Convert got joinlist message notice to debug level.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2294 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-25 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add support for make srpm and make rpm targets
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2293 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix make dist target
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2292 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-25 Jan Friesse <jfriesse@redhat.com>
+
+ Add database lock init to hdb_* functions
+ Without this, lock can be called to unitialized and locking unitialized
+ lock isn't good idea.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2291 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add locking of database in hdb_handle_refcount_get
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2290 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-24 Steven Dake <sdake@redhat.com>
+
+ Remove totempg debug message.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2289 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add assembly to free list when it is removed from a configuration change as indicated by being in the left list.
+ This has side effect of clearing the assembly buffer the next time it is
+ referenced from the free list. This fixes a defect that stops forward
+ processing of the message streams because sync fails to finish when receiving
+ a sync message from a restarted processor because it throws away the message.
+
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2288 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-24 Ryan O'Hara <rohara@redhat.com>
+
+ Add hdb_handle_refcount_get call.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2287 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-23 Steven Dake <sdake@redhat.com>
+
+ Tidy's up startup printfs.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2286 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Change startup notice to Corosync Cluster Engine. Change 2008 to 2009 in copyright.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2285 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove "AIS" string from exit notice.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2284 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-22 Steven Dake <sdake@redhat.com>
+
+ Remove warning by casting properly in totemnet.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2283 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Rename request_shutdown to shutdown_request in coroapi.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2282 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add dump_state to coroapi.h. Need to remove logging output from signal handlers.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2281 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Sanitize -p option to not set scheduling parameters in all software.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2280 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-21 Jim Meyering <jim@meyering.net>
+
+ totemsrp: remove unnecessary cast to avoid "make syntax-check" failure
+ * exec/totemsrp.c (message_handler_memb_join): Remove unnecessary
+ cast of alloca return value.
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2279 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-21 Steven Dake <sdake@redhat.com>
+
+ Use HAVE_ALLOCA_H define before including alloca.h
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2278 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add tests for posix scheduling apis to configure.ac and use them to determine if we should set scheduling priorities or not.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2277 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Work around dlopen'ed objects not executing constructors on solaris platform.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2276 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove hdb constructor usage.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2275 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-20 Steven Dake <sdake@redhat.com>
+
+ Remove timersub redefine.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2274 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Set nosigpipe socket option on platforms that send sigpipes in coroipcc.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2273 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove use without init warning which is harmless.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2272 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove shadow warnings.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2271 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-19 Steven Dake <sdake@redhat.com>
+
+ Add (void *) casts for iovector assignments to remove compile warnings.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2270 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix unused variable on linux because of portage work.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2268 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Patch from Wojtek to fix Solaris segfault with compiler optimization.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2267 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-19 Jim Meyering <jim@meyering.net>
+
+ maint: remove trailing blanks
+ By running this command from a git-cloned directory:
+ git grep -z -l -E '[[:blank:]]+$' | xargs -0 perl -pi -e 's/[ \t]+$//'
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2266 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-19 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix handling of sysconfdir
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2265 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Install basic operational directories
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2264 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove tags from example configuration
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2263 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-19 Steven Dake <sdake@redhat.com>
+
+ Warn user of missing dirs and exit gracefully.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2262 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Remove requirement of having uid and gid of "ais" on the system and allow nonroot users to access ipc if their uid/gid is in the /etc/corosync/uidgid.d directory.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2261 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Sanitize output of autogen.sh.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2260 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-18 Steven Dake <sdake@redhat.com>
+
+ Ensure Linux, BSD, Solaris, Darwin function with security authentication in IPC system.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2259 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-18 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix rec_ident encoding for IPC
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2258 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ use $(INSTALL) instead of install for portability to other OS'es
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2257 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ flight recorder: enable temporary 0 buffer size protection
+ The flight recoder doesn't handle a 0 byte allocation properly
+ and it would fail miserably by allocating a single PAGE_SIZE
+ to handle the logging. That means an enormous performance hit
+ because of the constant wrapping around the buffer.
+
+ If any requested buffer is < 64000 bytes, then force to at least
+ 64000.
+
+ In future we will be able to handle small buffers properly, but
+ for now enable a simple workaround to protect us and the user.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2256 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ flight recorder: switch from int to bytes for requested allocation
+ The flight recoder buffer size as specified in LOGSYS_DECLARE_SYSTEM
+ or _logsys_rec_init was expressed in number of ints. A developer asking
+ to allocate 512K would get a 2M allocation on a machine with sizeof(int) = 4.
+
+ This is confusing and the patch addresses it:
+
+ - rename rec_size to fltsize for external API (no type change),
+ because rec_size is used many times internally for other reasons
+ and it can be confusing.
+
+ - rename size to fltsize in _logsys_rec_init.
+
+ - document what we allocate and why.
+
+ - swap comments around to match the code.
+
+ - introduce a simple macro to perform rounding (stolen from linux-2.6.git).
+
+ - start shaping fdata header to better handle dynamic values:
+ * write the flt_data_size as first unsigned int the header.
+ * change corosync-fplay to read the value and alloc the right amount
+ of memory instead of hardcoding it again.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2255 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-18 Steven Dake <sdake@redhat.com>
+
+ Add Jerome to AUTHORS file
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2254 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ add madvise nosync calls for bsd platform.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2253 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-18 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ logsys: remove leftover files from running tests
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2252 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ flight recorder: don't hardcode max arguments everywhere
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2251 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: port to new packed rec_ident version
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2250 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: add macros to pack/unpack rec_ident
+ rec_ident should contain 3 info: log level, subsystem id and
+ message type.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2249 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: allow to use header files for #define's
+ most of the values in logsys.h are very useful for non logsys library
+ API users.
+
+ Allow to import them without sucking the whole lib.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2248 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: update man page to reflect new changes
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2247 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: merge tags into rec_ident
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2246 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ logsys: drop LOGSYS_LEVEL_SECURITY
+ LOGSYS_LEVEL_SECURITY is specific to corosync/openais and it
+ is used only in the totem configuration.
+
+ Drop the special case from logsys that's meant to be a generic
+ logging library and specify the correct equivalent for totem config.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2245 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-17 Jim Meyering <jim@meyering.net>
+
+ build: silence automake portability warnings
+ * configure.ac: Enable automake's -Wno-portability option.
+ We depend on GNU make.
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2244 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ autogen.sh: simply to a one-liner: autoreconf -i
+ * autogen.sh: Don't use "which" or uname, or...
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2243 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-16 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Add missing prototype and fix white spaces
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2242 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-15 Steven Dake <sdake@redhat.com>
+
+ Fix build error from recent solaris porting.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2241 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-14 Steven Dake <sdake@redhat.com>
+
+ Use PF_UNIX on Solaris platforms instead of PF_LOCAL.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2240 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Use rsync -a instead of cp -a to install on Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2239 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Port of coroipc system to Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2238 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Patch from Jerome Flesch to correctly reference count on bsd and solaris platforms in the IPC system to avoid cpu spinning.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2237 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add iface checking for Solaris platform.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2236 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-12 Jan Friesse <jfriesse@redhat.com>
+
+ Make /etc/corosync/corosync.conf default configuration file
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2235 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Handle LCR problem with unloading "unneeded" components
+ In LCR, global variable g_component_handle is used to keep handle of loaded
+ component. If this variable has magic value (0xFFFFFFFF) it means,
+ "we loaded library, but that library doesn't have any component_register
+ call -> don't try to destroy interfaces list).
+
+ If this variable has other value, it means "we loaded library, it registers,
+ but it exports some interface, what we currently don't need, so we can delete
+ that handle from libraries/interfaces list" and variable is set to magic value,
+ or "we loaded library, it registers and exports what we need -> great return some
+ nice value", but nobody resets variable to it's magic value.
+
+ Sadly, if you have loaded some component (needed), then try to load component,
+ which don't have component_register function, previously loaded component handle
+ is destroyed.
+
+ This problem happened to clm and quorum services, and cause, that loaded
+ clm handle was destroyed, so EVT (which need clm) just falls.
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2234 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-11 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Fix library linking fallout.. again
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2233 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-10 Steven Dake <sdake@redhat.com>
+
+ Modify totemnet to work properly on Solaris by setting variables in sendmsg data structure.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2232 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-10 Fabio M. Di Nitto <fdinitto@redhat.com>
+
+ Shared libs should not call exit but return error
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2231 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-10 Steven Dake <sdake@redhat.com>
+
+ Remove unused variable on platforms other then Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2230 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix compile on BSD platforms.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2229 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Fix semun definitions for various platforms.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2228 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-10 Christine Caulfield <ccaulfie@redhat.com>
+
+ Fix corosync-cfgtool -a so that it actaully produces some output!
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2227 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-09 Steven Dake <sdake@redhat.com>
+
+ Use PF_LOCAL to match BSD semantics of api calls.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2226 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Resolve bug where config changes are delivered in the wrong order on nodes that join and then open a cpg.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2225 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-09 Andrew Beekhof <abeekhof@redhat.com>
+
+ Decouple the decouples shutdown/startup order of lcrso's from the internal objdb order.
+ This is needed as the objdb order will change as modules are loaded/unloaded and is
+ also set up to unload non-default services last (which is the opposite of what
+ something like Pacemaker needs).
+
+ In the worst case, the current behavior leads to cluster services (dlm, ocfs2, etc)
+ failing during shutdown. This patch also ensures that if, for example, cpg is unloaded
+ then anything that depends on it is unloaded first.
+
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2224 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-07 Steven Dake <sdake@redhat.com>
+
+ Remove quorum.c from lcrso build list since its linked into main binary.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2223 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add support for buildling on Solaris platforms.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2222 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Call initializer directly for broken platforms which don't honor ctors in the shared object on dlopen. This could probably be more tidy to detect those OS platforms which don't do this instead of hardcoding to a specific platform we intend to port to.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2221 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Include limits.h in coroparse.c to properly define PATH_MAX.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2220 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Change NAME_MAX to FILENAME_MAX to compile properly on Posix OS.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2219 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Define MSG_NOSIGNAL if it is undefined by the base OS such as Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2218 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Conditionally compile on Solaris platforms msg_* flags in sendmsg header.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2217 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Include string.h in sq.h for memset() calls.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2216 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Make readdir operation portable by removing BSDism from coroparse.c.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2215 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Add strsep_cs to replace strsep. -This line, and those below, will be ignored--
+ M exec/mainconfig.c
+
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2214 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ First run at adding support for corosync totemip determination.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2213 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Make coroipcs compile on Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2212 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Rename queue datastructure to cs_queue data structure because some fail operating system struct queue in the globally scoped headers.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2211 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Port of totemip to Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2210 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Port of logsys to Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2209 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ coroipcc port to Solaris.
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2208 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-04 Christine Caulfield <ccaulfie@redhat.com>
+
+ Don't let corosync-keygen fail if /etc/ais already exists
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2207 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-03 Andrew Beekhof <abeekhof@redhat.com>
+
+ Fix compilation on OSX/Darwin
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2206 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+ Forward port the clear_node_high_bit from whitetank
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2205 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-02 Jim Meyering <jim@meyering.net>
+
+ totempg.c: don't truncate group list
+ * exec/totempg.c (totempg_groups_join): Fix typo s/=/+/ that
+ would mistakenly truncate totempg group list.
+
+ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2204 fd59a12c-fef9-0310-b244-a6a79926bd2f
+
+2009-06-0