Skip to content

Releases: corosync/corosync

v3.1.10

15 Nov 15:11

Choose a tag to compare

It's November 15th, which means we're celebrating the Day of Corosync!
There's no better way to honor this important day than with a fresh
new Corosync release.

I am pleased to announce that the latest maintenance release,
Corosync 3.1.10, is available immediately from the GitHub release
section at https://github.com/corosync/corosync/releases.

This release contains important bug fixes and improvements.
The most notable changes (in commit date order) are:

  • Fixed CVE-2025-30472. It is worth noting Thomas Lamprecht's comment on
    this CVE:

    "Corosync either runs encrypted or in a trusted network, anything else,
    i.e. where this is actually a problem, is just gross negligence and
    leaks the whole cluster traffic already anyway."

    This should be set in stone, and every admin must keep this in mind
    when deploying a Corosync cluster.

  • The configuration parser received a bunch of fixes, making it much more
    reliable and stable. Thanks to GitHub user vikk777 for the very
    detailed reports and for testing the final patches.

  • It is now possible to read the auto-configured mcast port from cmap using
    the key runtime.config.totem.interface.<interface_number>.mcastport.
    Thank you, Xin Liang, for this nice addition.

  • The state directory can now be configured using the STATE_DIRECTORY
    environment variable, which makes Image Mode support possible.
    Please note that the example spec file no longer ships /var/lib/corosync
    for systemd-enabled builds. The service file creates it automatically,
    but if you are using other methods to run corosync, you may need to
    create the directory beforehand. Non-systemd builds are unaffected.

  • There were a bunch of changes to support OpenIndiana. This is a nice
    addition, as it also made the code a bit more portable.

  • A new option (totem.ip_dscp) is available to configure DSCP for traffic
    prioritization. Thanks to David Hanisch for this great improvement.

  • Kronosnet has deprecated the SCTP transport in its stable branch and
    completely removed SCTP support in its main branch. Corosync will now display
    a warning if SCTP is used with the Kronosnet stable branch, or disallow the
    use of SCTP entirely if the Kronosnet main branch is used.

Complete changelog for 3.1.10:

Christine Caulfield (4):
      totemknet: Handle new knet2 datafd API
      SCTP in knet is deprecated
      Handle knet's removal of SCTP gracefully
      Unit tests for fd_get() calls

David Hanisch (1):
      allow to use dscp for traffic prioritization

Jan Friesse (57):
      spec: Use GitHub source URL
      totemsrp: Check size of orf_token msg
      coroparse: Check emptiness of key name
      coroparse: Mark path in parse_section as const
      coroparse: Remove unused code
      coroparse: Handle end of special sections
      coroparse: Store subsections of logger_subsys
      coroparse: Store subsections of logging_daemon
      coroparse: Don't allow sections within uidgid
      coroparse: Don't allow sections within member
      coroparse: Store key with prefix for nodelist.node
      coroparse: Fix memory leaks
      coroparse: Initialize logger_subsys_items_head
      coroparse: Remove kv_items from list
      coroparse: Implement handler for str_to_ull error
      man: Enhance description of mcastport
      exec: Add support for env STATE_DIRECTORY
      init: Use LogsDirectory in systemd unit file
      cpg: Fix signedness of munmap result
      logsys: Fix signedness of get_unblocked
      totempg: Fix signedness for result of mcast_msg
      cpg: Don't call cpg_deliver_fn if unset
      keygen: Enhance read random loop
      coverity: Suppress weak_crypto errors
      totemconfig: Suppress coverity no_effect error
      totemconfig: Suppress coverity unused_value errors
      totempg: Suppress coverity sleep error
      cpg: Add comment about potential resource leak
      coroparse: Suppress coverity toctou error
      logsys: Remove config mutex
      vsf_quorum: Include alloca header file
      cmap: Retype iovec iov_base
      pload: Retype iovec iov_base
      main: Retype iovec iov_base
      totempg: Retype iovec iov_base
      totemknet: Include ethernet.h only for nozzle
      totemknet: Handle trncated packets and msg_flags
      totemknet: Fix msg_msg_hdr typo
      cfg: Fix cfg_get_node_addrs incorrect retype
      testsam: Try to turn off coredump
      testsam: Make test work with votequorum
      testsam: Refactor test
      testsam: Add sam_finalize deadlock test
      sam: Refactor locking
      cmapctl: Check return code of cmap_set_uint32
      sam: Do not lock sam_register
      totemknet: Remove usage of struct ether_header
      configure: Remove unsupported -Wunsigned-char
      clang: Add missing void to function declarations
      totemknet: Rework truncated packet detection
      totemknet: Remove MSGHDR conditionals
      totemudpu: Rework truncated packet detection
      totemudpu: Fix weird indentation
      totemudpu: Remove MSGHDR conditionals
      totemudp: Rework truncated packet detection
      totemudp: Remove MSGHDR conditionals
      configure.ac: Remove MSGHDR fields detection

Kefu Chai (1):
      rust: fix fd_get() pointer dereference

vikk777 (1):
      Fix stack buffer overflow in remove_whitespace()

xin liang (3):
      totemconfig: Store mcastport in icmap
      config: Cleanup dropped options
      man: Clarify processor scaling

Upgrade is highly recommended.

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

v3.1.9

15 Nov 12:42

Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.9 is available immediately from the GitHub release section at https://github.com/corosync/corosync/releases.

This release contains mostly smaller bugfixes and improvements.

Worth noting is fix of timestamp type (uin64) so token warning and statistics are now correct if
node uptime is larger than 49.71 days. Also stats.srp.orf_token_tx now counts all transmitted tokens,
not only initial one. Please let us know if your deployment was dependent on old behavior so we might
consider adding new statistics variable with number of initiated tokens.

Complete changelog for 3.1.9:

Alexander Aring (1):
      main: support lock pid file arg

Christine Caulfield (7):
      Fix up the library .versions files
      Report crypto errors back to cfg reload
      rust: Improve Rust bindings
      rust: tests return errors and don't hang
      rust: fix clippy warning in rust 1.81
      totemsrp: Fix orf_token stats
      rust: Update to latest standards

Ferenc Wágner (1):
      Move corosync-notifyd policy file into $(datadir)/dbus-1/system.d

Jan Friesse (11):
      License: Fix year (mainly to fix rust building)
      configure: Fix building of rust for release
      totem: Fix reference links
      man: Improve quorum provider formatting
      man: fix a typo in cpg_model_initialize
      cfg: Free new_config interfaces on failure
      icmap: Free memory if qb_map_notify_add fails
      coroparse: Free kv_item key and value on failure
      stats: Store token rx and tx timestamps as 64-bit
      totem: Use proper timestamp type for token warning
      totem: Use uint64_t type and QB_TIME_NS_IN_MSEC

xin liang (1):
      man: corosync.conf: Multi improvements

Upgrade is highly recommended.

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

v3.1.8

15 Nov 16:57

Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.8 is available immediately from the 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 improvements of Rust bindings.

Complete changelog for 3.1.8:

Christine Caulfield (10):
      bindings: Add Rust bindings
      rust: Make it work on FreeBSD
      Rust: 'fix' clippys for Rust 1.67
      knet: use knet TRACE logging level if available
      Rust: Remove obsolete bindgen flag
      parser: Allow a non-breaking space as 'whitespace'
      rust: Remove some pointless casts
      config: Fail to start if ping timers are invalid
      man: Update the corosync_overview manpage
      rust: Improve vector initialisation

Jan Friesse (3):
      rust: Remove tests from check scripts
      build: Fix rust make -j build dep for distcheck
      spec: Migrate to SPDX license

Machiry Aravind Kumar (1):
      Handling integer overflow issues

Upgrade is highly recommended.

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

v3.1.7

15 Nov 17:13

Choose a tag to compare

I am pleased to announce the latest maintenance release of Corosync
3.1.7 available immediately from the 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 and the knet_mtu (for more information please see corosync.conf(5)) feature.

Complete changelog for 3.1.7:

Andreas Grueninger (1):
      totemconfig: Check uname return value correctly

Christine Caulfield (1):
      log: Configure knet logging to the same as corosync

Ferenc Wágner (1):
      Remove bashism from configure script

Jan Friesse (6):
      totemudpu: Don't block local socketpair
      pkgconfig: Export corosysconfdir
      totempg: Fix alignment handling
      logrotate: Use copytruncate method by default
      configure: Modernize configure.ac a bit
      totemconfig: Add support for knet_mtu

Upgrade is highly recommended.

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

v2.4.6

09 Nov 15:22

Choose a tag to compare

I am pleased to announce the last maintenance of the old stable (Needle branch) release of Corosync
2.4.6 available immediately from the GitHub release section at https://github.com/corosync/corosync/releases or our website at
http://build.clusterlabs.org/corosync/releases/.

The Needle branch is now unsupported and no longer maintained by Corosync team. The main reason for this decision is that Camelback (v3 - latest v3.1.6) is now almost 4 years old and proven to be stable.

Just a few short statistics/interesting facts:

  • Version 2.0.0 was released on Tue Apr 10 2012, so Needle was supported for more than 10 years
  • There were 845 commits made by 67 people during Needle's lifetime
  • 410 files changed, 51214 insertions(+), 5516 deletions(-)
  • Needle was first release without LCR support and without AIS services implemented
  • Corosync-qdevice was added during the Needle life cycle (and now it is a separate project)

Complete changelog for 2.4.6 (compared to v2.4.5):

Aleksei Burlakov (1):
      totemsrp: More informative messages

Christine Caulfield (4):
      icmap: fix the icmap_get_*_r functions
      stats: Add basic schedule-miss stats to needle
      icmap: icmap_init_r() leaks if trie_create() fails
      test: Fix cpgtest

Fabio M. Di Nitto (1):
      pkgconfig: Add libqb dependency

Ferenc Wágner (1):
      man: votequorum.5: use proper single quotes

Hideo Yamauchi (1):
      cpg: Change downlist log level

Jan Friesse (52):
      totem: Increase ring_id seq after load
      totempg: Check sanity (length) of received message
      totemsrp: Reduce MTU to left room second mcast
      qnetd: Rename qnetd-log.c to log.c
      qnetd: Fix double -d description
      qnetd: Check log initialization error
      qnetd: Add function to set log target
      qdevice: Use log instead of libqb log
      qdevice: Import log instead of qdevice-log
      qdevice: Merge msg_decode_error functions
      qnetd: Use log-common for nodelist debug dump
      qdevice: Configurable log priority bump
      tests: Add utils_parse_bool_str test
      qdevice: Free memory used by log
      qdevice: Add log test
      qdevice: Add header files to list of test sources
      qdevice: Add chk variant of vsyslog to test-log
      qdevice: Add prototype of __vsyslog_chk
      votequorum: Ignore the icmap_get_* return value
      logconfig: Remove double free of value
      cmap: Assert copied string length
      sync: Assert sync_callbacks.name length
      votequorum: Assert copied strings length
      cpghum: Remove unused time variables and functions
      cfgtool: Remove unused callbacks
      cmapctl: Free bin_value on error
      quorumtool: Assert copied string length
      votequorum: Reflect runtime change of 2Node to WFA
      main: Add schedmiss timestamp into message
      votequorum: Change check of expected_votes
      quorumtool: Fix exit status codes
      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"
      main: Make schedmiss in cmap and log equal
      totemip: Add support for sin6_scope_id
      qnetd: Do not call ffsplit_do on shutdown
      qdevice: Fix connect heuristics result callback
      qdevice: Fix connect heuristics result callback
      qdevice: Log adds newline automatically
      qnetd: Fix dpd timer
      qnetd: Add support for keep active partition vote
      common_lib: Remove trailing spaces in cs_strerror
      totemsrp: Move token received callback
      tests: Use CS_DISPATCH_BLOCKING instead of cycle
      qnetd: Fix NULL dereference of client
      qnetd: Simplify KAP Tie-breaker logic
      totem: Add cancel_hold_on_retransmit config option
      logsys: Unlock config mutex on error
      totemsrp: Switch totempg buffers at the right time
      totemudpu: Don't block local socketpair

Kai Kang (1):
      configure.ac: fix pkgconfig issue of rdma

liangxin1300 (12):
      totemip: Add support for sin6_scope_id
      totemip: compare sin6_scope_id and interface_num
      qdevice: Change log level to NOTICE on PASS
      cfgtool: output error messages to stderr
      tools: use util_strtonum for options checking
      cmapctl: return EXIT_FAILURE on failure
      quorumtool: Help shouldn't require running service
      quorumtool: strict check for -o option
      cmapctl: check NULL for key type and value for -p
      man: adjust description about interface section
      qnetd: sort by node_id when add new client
      man: replace votequorum_poll for actually used fn

If your deployment still runs on top of Corosync 2.x it's really highly recommended to upgrade.

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

v3.1.6

15 Nov 13:14

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.

v3.1.5

04 Aug 09:02

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.

v3.1.4

03 Jun 12:31

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.

v3.1.3

21 May 07:13

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.

v3.1.2

06 Apr 10:19

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.