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 argument
  • CS_ERR_ACCESS β€” Permission denied
  • CS_ERR_LIBRARY β€” The connection failed
  • CS_ERR_INTERRUPT β€” System call interrupted by a signal
  • CS_ERR_NOT_SUPPORTED β€” The requested protocol/functionality not supported
  • CS_ERR_MESSAGE_ERROR β€” Incorrect auth message received
  • CS_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