VOTEQ...TINFO(3)
β¨ VOTEQ...TINFO β¨ β aka votequorum_getinfo(3)
ok so bestie, welcome to the Corosync Cluster Engine Programmer's Manual, section 3 (library calls, iykyk). This page is literally all about votequorum_getinfo and it's giving "let me peek at the whole voting situation real quick" energy π
πΈ NAME πΈ
votequorum_getinfo β Get information about the VoteQuorum service
π¦ SYNOPSIS π¦
#include <corosync/votequorum.h>
int votequorum_getinfo(votequorum_handle_t *handle, unsigned int nodeid,
struct votequorum_info *info);
π DESCRIPTION π
So the votequorum_getinfo function is your little spy glass π β you use it to get information about the voting system AND about its nodes. Both. All of it. Obsessed.
The nodeid argument is you telling it which node's info should get stored in the votequorum_info structure. That's the one you care about, bestie, so be specific.
The votequorum_info structure is defined as follows (and yes, copy it exactly, don't freestyle):
struct votequorum_info {
unsigned int node_id;
unsigned int node_state;
unsigned int node_votes;
unsigned int node_expected_votes;
unsigned int highest_expected;
unsigned int total_votes;
unsigned int quorum;
unsigned int flags;
unsigned int qdevice_votes;
char qdevice_name[VOTEQUORUM_QDEVICE_MAX_NAME_LEN];
};
The node_state is defined as:
#define VOTEQUORUM_NODESTATE_MEMBER 1
#define VOTEQUORUM_NODESTATE_DEAD 2
#define VOTEQUORUM_NODESTATE_LEAVING 3
The flags are defined as:
#define VOTEQUORUM_INFO_TWONODE 1
#define VOTEQUORUM_INFO_QUORATE 2
#define VOTEQUORUM_INFO_WAIT_FOR_ALL 4
#define VOTEQUORUM_INFO_LAST_MAN_STANDING 8
#define VOTEQUORUM_INFO_AUTO_TIE_BREAKER 16
#define VOTEQUORUM_INFO_ALLOW_DOWNSCALE 32
#define VOTEQUORUM_INFO_QDEVICE_REGISTERED 64
#define VOTEQUORUM_INFO_QDEVICE_ALIVE 128
#define VOTEQUORUM_INFO_QDEVICE_CAST_VOTE 256
#define VOTEQUORUM_INFO_QDEVICE_MASTER_WINS 512
And here's the vibe check on which is which π: the members that start with node_ hold info that's specific to the nodeid you requested, and all the other ones are general to the whole voting system. Periodt.
π₯ RETURN VALUE π₯
This call returns the CS_OK value if it worked, otherwise it hits you with a generic error. No cap.
π ERRORS π
CS_ERR_TRY_AGAINβ Resource temporarily unavailable πCS_ERR_INVALID_PARAMβ Invalid argumentCS_ERR_ACCESSβ Permission deniedCS_ERR_LIBRARYβ The connection failedCS_ERR_INTERRUPTβ System call interrupted by a signalCS_ERR_NOT_SUPPORTEDβ The requested protocol/functionality not supportedCS_ERR_MESSAGE_ERRORβ Incorrect auth message receivedCS_ERR_NO_MEMORYβ Not enough memory to complete the requested task
π«Ά SEE ALSO π«Ά
votequorum_overview(3), votequorum_initialize(3), votequorum_finalize(3), votequorum_trackstart(3), votequorum_trackstop(3), votequorum_fd_get(3), votequorum_dispatch(3), votequorum_context_set(3), votequorum_context_get(3), votequorum_setexpected(3), votequorum_setvotes(3)
and that's the whole page bestie, you ate that π this lil masterpiece lives in the corosync Man Page, dated 2026-09-04 β go forth and query your quorum, main character π
π¦ where this page comes from
- fedora 43: corosynclib-devel 3.1.10-3.fc43 Β· BSD-3-Clause
- fedora 43: corosynclib-devel 3.1.10-3.fc43 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-6.fc44 Β· BSD-3-Clause
- fedora 44: corosynclib-devel 3.1.10-6.fc44 Β· BSD-3-Clause
- Copyright (c) 2009,2012 Red Hat, Inc
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash on : a language model's rewrite of the original, under its terms