[ClusterLabs] Corosync-qdevice 3.0.1 is available at GitHub!

Jan Friesse jfriesse at redhat.com
Mon Nov 23 03:18:39 EST 2020

I am pleased to announce the latest maintenance release of 
Corosync-Qdevice 3.0.1 available immediately from GitHub at 
https://github.com/corosync/corosync-qdevice/releases as 

This release contains important bug fixes and some of new features. Most 
notable ones:
- Rewrite of DPD (dead-peer-detection) timer. Previously dead peer 
detection was implemented sub-optimally and may result in QNetd waiting 
too long before marking Qdevice peer dead and selecting new quorate 
partition what made Qdevice not responsible for corosync votequorum 
service resulting in lost of quorum. New implementation is using smaller 
timeouts and no sampling (global DPD timer) so QNetd detects dead peer 
long time before sync_timeout. Configuration option dpd_interval is 
removed (no longer needed) and replaced by dpd_interval_coefficient (see 
corosync-qnetd(8) for more details). This fixes GH issue #10.
- Implement KAP Tie-breaker (keep active partition) for ffsplit 
algorithm. This solves problem when Corosync creates single node 
partition during startup and for two node clusters with ffsplit this new 
node might get vote eventho there was already other quorate node. This 
option is enabled by default. To use previous behavior it's possible to 
set keep_active_partition_tie_breaker in corosync.conf (see 
corosync-qdevice(8) for more details). Fix for GH issue #7.
- Qdevice systemd unit file now restarts on-failure.
- Configurations without ring0_addr are now properly supported. Fixes GH 
issue #16.

Complete changelog for 3.0.1:

     Fabio M. Di Nitto (1):
           devel: add corosync-qdevice.pc file for pcs to use

     Jan Friesse (79):
           qnetd: Check existence of NSS DB dir before fork
           spec: Use install -p and add license
           man: Fix corosync-qdevice default connect_timeout
           configure: Add user-flags configure option
           qdevice: Fix qdevice_heuristics_destroy error
           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
           build: Update git-version-gen
           build: Use git-version-gen during specfile build
           configure: Use default systemd path with prefix
           pr-poll-loop: Add main poll loop based on PR_Poll
           qnetd: Migrate main loop to pr-poll-loop
           qnetd: Do not call ffsplit_do on shutdown
           qdevice: Use EXIT_SUCCESS and EXIT_FAILURE codes
           qdevice: Add space before bracket
           qdevice: Fix connect heuristics result callback
           pr-poll-loop: Do not add FD when events is empty
           tests: Add pr-poll-loop test
           tests: Enhance pr-poll-loop test
           heuristics: Remove qdevice instance pointer
           pr-poll-loop: Return error code if PR_Poll fails
           qdevice: Initial port to use pr-poll-loop
           qnetd: Remove write callback on listening sockets
           qnetd: Remove unneeded pprio include
           qnetd: Log pr_poll_loop_add,del errors properly
           qnetd: Move pr_poll_loop_exec call to function
           pr-poll-loop: Add support for PR_POLL_EXCEPT
           pr-poll-loop: Pass PRPollDesc for prfd events
           pr-poll-loop: Add pre poll callbacks
           qdevice: Fix connect heuristics result callback
           pr-poll-loop: Fix set_events_cb return code
           qnetd: Return error code based on ipc closed
           qdevice-net: Log adds newline automatically
           qdevice: Port qdevice to use pr-poll-loop
           qdevice-votequorum: Fix typo in log message
           qnetd: Fix dpd timer
           timer-list: Return error on adding NULL callback
           timer-list: Add test
           README: Fix typos
           qnetd: Add support for keep active partition vote
           LICENSE: Update copyright date
           qdevice: Fix set option and set option reply
           qdevice-net-heuristics: Fix log message
           qnetd: Fix NULL dereference of client
           qnet: Add support for keep active partition vote
           qdevice-ipc: Fix dereference bug
           pr-poll-loop: Add queue header include
           timer-list: Implement heap based timer-list
           msg: Check cat result on adding msg type and size
           test-process-list: Fix few bugs
           tlv: Check dynar_cat result
           test-timer-list: Ignore poll errors
           timer-list: Improve efficiency of delete operation
           tests: Fix assert problems
           qdevice-net-ipc-cmd: Fix compiler warning
           qdevice-cmap: Fix clear high node bit typo
           qdevice-cmap: Load clear node high bit only once
           qdevice: Configuration without nodelist is invalid
           qdevice: Handle configurations without ring0_addr
           utils: Add utils_strtod
           timer-list: Rename delete and reschedule ops
           timer-list: Add functions for get and set interval
           qnet-config: Add space to string concat
           qnetd: Improve dead peer detection
           qnetd-algo-ffsplit: Simplify KAP Tie-breaker logic
           qnetd: Move client schedule disconnect handling

     Kumabuchi Kenji (1):
           init: change restart to on-failure for qdevice

     liangxin1300 (1):
           qdevice: Change log level to NOTICE on PASS

Upgrade is highly recommended.

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

More information about the Users mailing list