Skip to content
Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.6 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains MAJOR bugfix of totem protocol which caused loss or corruption of messages delivered during recovery phase. It is also important to pair this release with Kronosnet v1.23 (announcement https://lists.clusterlabs.org/pipermail/users/2021-November/029810.html) and Libqb 2.0.4 (announcement https://lists.clusterlabs.org/pipermail/users/2021-November/029811.html).

All our development team would like to thank the Proxmox VE maintainer, Fabian Gruenbichler, for the extremely detailed bug reports, reproducers and collecting all the data from the affected Proxmox VE users, and his dedication over the past month to debug, test and work with us.

Another important feature is addition of cancel_hold_on_retransmit option, which allows corosync to work in environments, where some packets are delayed more than other (caused by various Antivirus / IPS / IDS software).

Complete changelog for 3.1.6:

Christine Caulfield (1):
      cpghum: Allow to continue if corosync is restarted

Jan Friesse (4):
      totem: Add cancel_hold_on_retransmit config option
      logsys: Unlock config mutex on error
      totemsrp: Switch totempg buffers at the right time
      build: Add explicit dependency for used libraries

miharahiro (1):
      man: Fix consensus timeout

This upgrade is required.

Thanks/congratulations to all people that contributed to achieve this great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.5 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains important bugfixes of cfgtool and support for cgroup v2. Please see corosync.conf(5) man page for more information about cgroup v2, because cgroup v2 is very different from cgroup v1 and systems with CONFIG_RT_GROUP_SCHED kernel option enabled may experience problems with systemd logging or inability to enable cpu controller.

Complete changelog for 3.1.5:

Christine Caulfield (1):
      knet: Fix node status display

Jan Friesse (9):
      main: Add support for cgroup v2 and auto mode
      totemconfig: Do not process totem.nodeid
      cfgtool: Check existence of at least one of nodeid
      totemconfig: Put autogenerated nodeid back to cmap
      cfgtool: Set nodeid indexes after sort
      cfgtool: Fix brief mode display of localhost
      cfgtool: Use CS_PRI_NODE_ID for formatting nodeid
      totemconfig: Ensure all knet hosts has a nodeid
      totemconfig: Knet nodeid must be < 65536

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.4 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains important bugfix in cmap stats map where iterate operation may result in corosync crash.

Complete changelog for 3.1.4:

Christine Caulfield (1):
      stats: fix crash when iterating over deleted keys

Jan Friesse (1):
      man: Add note about single node configuration

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.3 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains mostly smaller bugfixes and one smaller feature. It's now possible to run corosync -v to get list of supported crypto and compression models which can be used in corosync.conf.

Complete changelog for 3.1.3:

Ferenc Wágner (1):
      man: corosync-cfgtool.8: use proper single quotes

Jan Friesse (8):
      config: Properly check crypto and compress models
      totemconfig: Ensure strncpy is always terminated
      main: Mark crypto_model key read only
      main: Add support for cgroup v2
      cfg: corosync_cfg_trackstop blocks forever
      man: Add info about cgroup v2 behavior
      Revert "man: Add info about cgroup v2 behavior"
      Revert "main: Add support for cgroup v2"

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.2 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains only one (but very important) bug fix, which fixes problem with initialization of knet compression. Bug is present since Corosync 3.1.0 (3.0.X are not affected) and cause overwriting of memory when knet compression is enabled (knet_compression_model is set to value other than none) what (usually) makes corosync crash on start.

Complete changelog for 3.1.2:

Fabio M. Di Nitto (1):
      knet: pass correct handle to knet_handle_compress

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this
great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync 3.1.1 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at http://build.clusterlabs.org/corosync/releases/.

This release contains important bug fixes and also a few new features:

  • Added a new API to get extended node/link information which is now used by corosync-cfgtool (especially when the new -n parameter is used). See corosync-cfgtool(8) for more information.

  • The API for cfg tracking was fixed so it now working again. This API was removed during the Corosync 2 development cycle and it means that shutdown tracking (using cfg_try_shutdown()) had stopped working.
    Now it is back, so an application may register to receive a callback when corosync is stopped cleanly (using corosync-cfgtool -H) and can also prohibit corosync from stopping.
    There is a new --force option (which is now the default in the systemd unit file/init script) which will always cause Corosync to shut down.
    This feature is going to be used by an as-yet unreleased Pacemaker version (currently in the master branch) to veto corosync shutdown.

Complete changelog for 3.1.1:

Christine Caulfield (4):
      cfg: New API to get extended node/link infomation
      cfg: Reinstate cfg tracking
      test: Add testcfg to exercise some cfg functions
      main: Close race condition when moving to statedir

Dan Streetman (2):
      main: Check memlock rlimit
      totemknet: retry knet_handle_new if it fails

Fabio M. Di Nitto (5):
      pkgconfig: export LOGDIR in corosync.pc
      configure: detect and init pkg-config with macro
      configure: drop dead code
      configure: move exec_prefix sanitize
      configure: drop unnecessary check and define

Ferenc Wágner (1):
      The ring id file needn't be executable

Jan Friesse (4):
      spec: Add isa version of corosync-devel provides
      totemknet: Check both cipher and hash for crypto
      cfg: Improve nodestatusget versioning
      init: Use corosync-cfgtool for shutdown

Johannes Krupp (1):
      totemconfig: fix integer underflow and logic bug

liangxin1300 (1):
      totemconfig: change udp netmtu value as a constant

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.0 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains important bug fixes and also few big new features (that's the reason for bumping minor version number):

  • Support for changing crypto configuration during runtime. This includes turning cryptography on or off, changing crypto_cipher and crypto_hash and also changing of crypto key. To use this feature simply change corosync.conf (or authkey) and call corosync-cfgtool -R.
    To make this feature work compilation with knet version at least 1.18 is required (it is still possible to compile corosync with previous knet versions but crypto reconfiguration will be disabled).
    Please note that it is not supported to make crypto reconfiguration during upgrade of cluster! Cluster will split into partition with nodes running old corosync and partition with nodes running new corosync if cryptographic configuration is changed!

  • Configuration system is rewritten and reload became atomic operation. Previously it was possible to change configuration file such way that corosync would refuse to start with such configuration, but it was partly loaded during reconfiguration (usually with warnings but bad things happened anyway) creating inconsistencies.
    Now, bad config file which would be refused during startup is refused also on reload and configuration stays intact.

  • Quorum service got improved API with ability to register new totem members change callback. Main motivator for this change is DLM, but other API users may find it helpful too - see quorum_model_initialize (3) and tests/testquorummodel.c example. Change is fully backwards compatible and there is no change in the previous quorum_initialize (3).

  • Default token timeout was changed from 1 seconds to 3 seconds. 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
    ...
    

Complete changelog for 3.1.0:

Aleksei Burlakov (1): 
      totemsrp: More informative messages 
 
Christine Caulfield (8): 
      config: Reorganise the config system 
      cfg: Improve error return to cfgtool -R 
      config: don't reload vquorum if reload fails 
      config: Don't free pointers used by transports 
      config: Fix crash when a reload fails twice 
      test: Fix cpgtest 
      config: Allow reconfiguration of crypto options 
      man: reload during rolling upgrade 
 
Ferenc Wágner (2): 
      man: fix typo: avaialable 
      man: votequorum.5: use proper single quotes 
 
Jan Friesse (9): 
      spec: Require at least knet 1.18 for crypto reload 
      build: Update git-version-gen 
      build: Use git-version-gen during specfile build 
      configure: Use default systemd path with prefix 
      common_lib: Remove trailing spaces in cs_strerror 
      totemsrp: Move token received callback 
      quorum: Add support for nodelist callback 
      tests: Use CS_DISPATCH_BLOCKING instead of cycle 
      config: Increase default token timeout to 3000 ms 
 
liangxin1300 (15): 
      cfgtool: output error messages to stderr 
      cfgtool: enhancement -a option 
      tools: use util_strtonum for options checking 
      cmapctl: return EXIT_FAILURE on failure 
      man: update output of -s and -b for cfgtool 
      cfgtool: Return error when -i doesn't match 
      quorumtool: Help shouldn't require running service 
      quorumtool: strict check for -o option 
      cmapctl: check NULL for key type and value for -p 
      cmapctl: return error on no result of print prefix 
      totemconfig: validate totem.transport value 
      cfg: enhance message_handler_req_lib_cfg_killnode 
      totemconfig: add interface number to the error str 
      totemconfig: improve linknumber checking 
      totemconfig: remove redundant nodeid error log

Upgrade is highly recommended.

Note for corosync contributors (and distro maintainers). There is no plan to keep 3.0.X branch supported (as was the case with 2.x) so there is not going to be any camelback-3.0 (or camelback-3.1) branches - only camelback (which will be used for 3.1.1, ...).

Thanks/congratulations to all people that contributed to achieve this
great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.0.4 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains important bug fixes and few improvements. Most notable ones:

  • corosoync-cfgtool links status output is enhanced to be more readable

  • Runtime change of two_node mode also changes wait_for_all when it is not set explicitelly

  • Internal wait_for_all_status flag is set only on startup and not during runtime reload. This fixes possible inconsistency between quorum and votequorum quorate information.

  • schedmiss events are now also stored in the cmap stats map. This keys are mostly intended for automated tools (like Insights).

Complete changelog for 3.0.4:

Christine Caulfield (2):
      stats: Add stats for scheduler misses
      icmap: icmap_init_r() leaks if trie_create() fails

Ferenc Wágner (1):
      man: move cmap_keys man page from section 8 to 7

Hideo Yamauchi (3):
      cpg: Change downlist log level
      totemknet: Change the initial value of the status
      cfgtool: Fix error code as described in MP

Jan Friesse (32):
      totemconfig: Free leaks found by coverity
      votequorum: Ignore the icmap_get_* return value
      logconfig: Remove double free of value
      totemconfig: Reuse already fetched pointer
      cmap: Assert copied string length
      stats: Assert value_len when value is needed
      totemknet: Don't mix corosync and knet error codes
      sync: Assert sync_callbacks.name length
      totemconfig: Initialize warnings variable
      totemknet: Check result of fcntl O_NONBLOCK call
      totemknet: Assert strcpy length
      votequorum: Assert copied strings length
      cpghum: Remove unused time variables and functions
      cfgtool: Remove unused callbacks
      cmapctl: Free bin_value on error
      notifyd: Check cmap_track_add result
      quorumtool: Assert copied string length
      stats: Check return code of stats_map_get
      votequorum: Reflect runtime change of 2Node to WFA
      stats: Use nanoseconds from epoch for schedmiss
      cfgtool: Improve link status display
      totemip: Add support for sin6_scope_id
      totemip: Remove unused totemip_copy_endian_convert
      totemip: Really remove totemip_copy_endian_convert
      main: Add schedmiss timestamp into message
      man: Enhance link_mode priority description
      cfgtool: Simplify output a bit for link status
      votequorum: Change check of expected_votes
      quorumtool: exit on invalid expected votes
      votequorum: set wfa status only on startup
      Revert "totemip: Add support for sin6_scope_id"
      Revert "totemip: compare sin6_scope_id and interface_num"

liangxin1300 (1):
      totemip: compare sin6_scope_id and interface_num

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this
great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.0.3 available immediately from GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

This release contains important bug fixes. Most notable ones:

  • As previously announced (https://lists.clusterlabs.org/pipermail/developers/2019-June/002198.html) this version contains change in cpg service - only 1 CPG join list confchg event with all joined members is sent by node/group. We haven't received any negative feedback about this change, so that's why it is included.

  • Node and ring IDs should be logged consistently

  • Fixed serious bug which may result in corrupted packet during recovery phase

Complete changelog for 3.0.3:

Christine Caulfield (1):
      icmap: fix the icmap_get_*_r functions

Fabian Grünbichler (2):
      cpg: notify_lib_joinlist: drop conn parameter
      cpg: send single confchg event per group on joinlist

Fabio M. Di Nitto (2):
      build: add option for enabling sanitizer builds
      pkgconfig: Add libqb dependency

Jan Friesse (17):
      cpg: Add more comments to notify_lib_joinlist
      cpg: Move filling of member_list to subfunction
      totemsrp: Fix warnings produced by gcc 9.1
      totemconfig: Fix compiler warning
      totemknet: Disable forwarding on shutdown
      vqsim: Fix gitignore
      logging: Add CS_PRI_NODE_ID and CS_PRI_RING_ID
      cfgtool: Remove unused code
      notifyd: Fix warning produced by 32-bit compiler
      init: Use cpgtool instead of cfgtool
      totem: Increase ring_id seq after load
      notifyd: Don't dereference NULL key_name
      man: Fix link_mode priority description
      totemknet: Add locking for log call
      totempg: Check sanity (length) of received message
      totemsrp: Reduce MTU to left room second mcast
      Initialize stack allocated memory

Thomas Lamprecht (3):
      totem: fix check if all nodes have name attrs in multi-link setups
      totem: fix check if all nodes have same number of links
      man: Fix corosync.conf knet pong count default

dkutergin (1):
      corosync-notifyd: Add option to disable DNS lookup

Upgrade is highly recommended.

Thanks/congratulations to all people that contributed to achieve this
great milestone.

Compare
Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
Needle 2.4.5 available immediately from our website at
http://build.clusterlabs.org/corosync/releases/ or GitHub release section at https://github.com/corosync/corosync/releases.

This release contains important bug fixes and some of new features. Most notable ones:

  • Backport support for blocking blocking of incoming packets from IPs which are not in corosync.conf nodelist when UDPU is used. See block_unlisted_ips configuration option described in corosync.conf(5) man page.

  • Qnetd now supports updated NSS database format

  • Partly fixed problem with ifdown (only for UDPU). Please keep in mind ifdown method of testing network split is still not supported nor recommended.

Complete changelog for 2.4.5:

Bin Liu (2):
      qdevice: optarg should be str in init_from_cmap
      totemudpu: Add local loop support

Chris Lamb (1):
      man: Make the manpages reproducible

Ferenc Wágner (5):
      Fix typo: sucesfully -> successfully
      Fix typo: defualt -> default
      NSS_NoDB_Init: the parameter is reserved, must be NULL
      tools: don't distribute what we can easily make
      man: fix cmap key name runtime.config.totem.token

Hideo Yamauchi (1):
      corosync-notifyd: Delete registered tracking key

Jan Friesse (43):
      cpg: Inform clients about left nodes during pause
      totemudpu: Pass correct paramto totemip_nosigpipe
      util: Fix strncpy in setcs_name_t function
      cmap: Fix strncpy warning in cmap_iter_next
      ipc_glue: Fix strncpy in pid_to_name function
      totemconfig: Enlarge error_string_response
      totemsrp: Add assert into memb_lowest_in_config
      corosync-notifyd: Rename global local_nodeid
      build: Support for git archive stored tags
      git-version-gen: Fail on UNKNOWN version
      notifyd: Propagate error to exit code
      totemcrypto: Fix importing of the private key
      configure: move to AC_COMPILE_IFELSE
      init: Fix corosync init script to work with containers
      init: Fix qdevice init scripts to work with containers
      qdevice tests: Fix process-list test to work on FreeBSD
      qdevice tests: process-list add stdlib include
      qdevice tests: enlarge process-list timeouts
      qdevice unix-socket: Fix snprintf warning
      qdevice tests: Notify process-list after trap was created
      qdevice-cmap: Fix compiler warning on Sparc/ARM
      qdevice gitignore: Add testsuite results
      qdevice certutil: Add support for new NSS database format
      qdevice-net-certutil: Implement scp wrapper
      qdevice man: Document NSS database conversion
      qnetd-certutil: Add -G option
      qdevice config: Remove unneeded qb includes
      spec: Add explicit gcc build requirement
      qdevice tests: Enlarge timeout for process-list test
      qdevice: Propagate error to exit code
      certutils: Fix warnings found by coverity
      qnetd: Check existence of NSS DB dir before fork
      cpg: Add CPG_REASON_UNDEFINED
      totemip: Add totemip_sa_print function
      udpu: Drop packets from unlisted IPs
      man: Enhance corosync.conf mp a bit
      man: Enahnce block_unlisted_ips description
      configure: Fix GDB_CFLAGS typo
      man: Fix corosync-qdevice default connect_timeout
      qdevice: Fix qdevice_heuristics_destroy error
      init: Use cpgtool instead of cfgtool
      totemip: Use res in totemip_sa_equal
      notifyd: Don't dereference NULL key_name

Török Edwin (1):
      SECURITY: be consistent on the hash algorithm used

dkutergin (1):
      corosync-notifyd: Add option to disable DNS lookup

yuan ren (1):
      totemsrp: Word spelling mistake

Upgrade is (as usually) highly recommended.

Thanks/congratulations to all people that contributed to achieve this
great milestone.