Releases: corosync/corosync
v3.1.10
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 keyruntime.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
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
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
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
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
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
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
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
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
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.