Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
154 commits
Select commit Hold shift + click to select a range
0fae50e
Refactor: libcib: Avoid unnecessary copy in process_request()
nrwahl2 Jan 5, 2026
b5e884c
Refactor: libcib: Don't copy output that's part of the current CIB's doc
nrwahl2 Jan 5, 2026
43348ae
Refactor: libcib: Minor cib__perform_op_ro() cleanup
nrwahl2 Jan 5, 2026
8911456
Refactor: based: based_process_request gets last create_cib_reply check
nrwahl2 Jan 5, 2026
6821f87
Refactor: based: Pull read-only ops out of cib_process_command()
nrwahl2 Jan 5, 2026
c059207
Low: based: Free digest_timer on exit
nrwahl2 Jan 5, 2026
838c7b8
Refactor: based: Move notify to done section in based_perform_op_rw()
nrwahl2 Jan 5, 2026
e9a3583
Refactor: based: Unindent successful common case in based_perform_op_rw
nrwahl2 Jan 5, 2026
3f36001
Refactor: based: Drop dead output log msg for pcmk_rc_schema_validation
nrwahl2 Jan 5, 2026
614c1c8
Fix: based: Fix handling of intermediate transaction results
nrwahl2 Jan 5, 2026
94588e1
Log: based: Drop redundant log in based_process_request()
nrwahl2 Jan 5, 2026
999cadf
Refactor: based: Unindent "if (process)" block of based_process_request
nrwahl2 Jan 5, 2026
139af42
Refactor: based: Don't call option parser when cib_transaction is set
nrwahl2 Jan 5, 2026
494c471
Refactor: based: Drop needs_forward variable
nrwahl2 Jan 5, 2026
2c06586
Log: based: Drop log message from forward_request()
nrwahl2 Jan 12, 2026
5fd99e6
Doc: based: Drop comment in parse_peer_options()
nrwahl2 Jan 12, 2026
fabccfb
API: libcib: Deprecate cib_api_operations_t:sync
nrwahl2 Jan 5, 2026
1f8f492
Refactor: based: Minor easy changes to parse_peer_options()
nrwahl2 Jan 5, 2026
6285162
Refactor: based: Move two parse_peer_options() early returns upward
nrwahl2 Jan 5, 2026
2c0f9a5
Refactor: based: Drop legacy code from parse_peer_options()
nrwahl2 Jan 5, 2026
1139d1f
Refactor: based: Move is_reply block to where it's used
nrwahl2 Jan 5, 2026
e99c1b3
Refactor: based: Drop redundant check for upgrade RC
nrwahl2 Jan 5, 2026
f920db1
Refactor: based: Move early return to beginning of upgrade block
nrwahl2 Jan 5, 2026
906f529
Refactor: based: Drop skip_is_reply label
nrwahl2 Jan 5, 2026
a20b9ab
Refactor: based: parse_local_options() -> log_local_options()
nrwahl2 Jan 5, 2026
40551d8
Refactor: based: Set control variables only if they override defaults
nrwahl2 Jan 5, 2026
8141e63
Refactor: based: Rename crm_cluster to based_cluster
nrwahl2 Jan 6, 2026
a698528
Refactor: based: Don't create based_cluster if in stand-alone mode
nrwahl2 Jan 6, 2026
71623e9
Refactor: based: New based_ipc_init() and based_ipc.h
nrwahl2 Jan 6, 2026
0317b7f
Refactor: based: Unindent cib_init()
nrwahl2 Jan 7, 2026
6606e1f
Refactor: based: New based_ipc_cleanup()
nrwahl2 Jan 6, 2026
bc87f49
Low: based: Move based_ipc_cleanup() call to based_terminate()
nrwahl2 Jan 6, 2026
621b3a7
Refactor: based: Functionize remote fd closure in based_remote.c
nrwahl2 Jan 6, 2026
c085941
Refactor: based: New based_cluster_connect()
nrwahl2 Jan 7, 2026
d8d47ff
Refactor: based: Pull cib_init() body into main()
nrwahl2 Jan 7, 2026
8b6bd9d
Refactor: based: Move based_io_init() call just before based_read_cib()
nrwahl2 Jan 7, 2026
032c111
Refactor: based: Set based_is_primary in setup_stand_alone()
nrwahl2 Jan 7, 2026
4fdafce
Refactor: based: New based_corosync.c for cluster-related functions
nrwahl2 Jan 7, 2026
98f2d87
Refactor: libcrmcluster: Don't init caches in pcmk__corosync_connect()
nrwahl2 Jan 7, 2026
d29de21
Refactor: libcrmcluster: Clean up includes in corosync.c
nrwahl2 Jan 7, 2026
b064605
Refactor: libcrmcluster: Destroy caches unconditionally on disconnect
nrwahl2 Jan 7, 2026
c6a83a4
Refactor: based: New based_cluster_disconnect()
nrwahl2 Jan 7, 2026
3ee3545
Refactor: attrd, fencer: Set cluster pointer to NULL after freeing
nrwahl2 Jan 7, 2026
e24d713
Fix: libcrmcluster: NULL to pcmk_cluster_disconnect() returns EINVAL
nrwahl2 Jan 7, 2026
30931cf
Refactor: various: Use g_clear_pointer() with mainloop_del_*() functions
nrwahl2 May 2, 2026
a84a1d7
Refactor: based: Rename corosync callback functions
nrwahl2 Jan 7, 2026
bdf5b8d
Refactor: based: Don't send shutdown request
nrwahl2 Jan 10, 2026
06d29c1
Refactor: based: Move based_shutdown() to pacemaker-based.c
nrwahl2 Jan 7, 2026
8add5a1
Refactor: based: New based_cluster_node_name()
nrwahl2 Jan 7, 2026
c652bf5
Refactor: based: Make based_cluster static
nrwahl2 Jan 7, 2026
7606bfa
Refactor: based: New based_shutting_down()
nrwahl2 Jan 7, 2026
6692345
Refactor: based: New based_stand_alone()
nrwahl2 Jan 7, 2026
db6b8ba
Refactor: based: New based_{get,set}_local_node_dc()
nrwahl2 Jan 7, 2026
2a76daf
Refactor: based: Rename the_cib to based_cib
nrwahl2 Jan 7, 2026
b6feba9
Feature: libcrmcommon: Drop support for PCMK_ipc_type env variable
nrwahl2 Jan 7, 2026
594d6db
Refactor: libcrmcommon: Use QB_IPC_SHM in pcmk__serve_DAEMON_ipc()
nrwahl2 Jan 8, 2026
61be543
Feature: libcrmcommon: mainloop_add_ipc_server{,_with_prio} ignore type
nrwahl2 Jan 8, 2026
b46b79a
API: libcib: Deprecate cib_command_nonblocking
nrwahl2 Jan 11, 2026
c675184
Refactor: various: Drop PCMK__SERVER_BASED_SHM
nrwahl2 Jan 11, 2026
958905a
Refactor: libcrmcommon: Drop pcmk__stop_based_ipc()
nrwahl2 Jan 11, 2026
c1bbd7c
Refactor: libcrmcommon: Assert for arguments in pcmk__serve_DAEMON_ipc()
nrwahl2 Jan 11, 2026
821029c
Refactor: based: New based_{callbacks,io}_cleanup()
nrwahl2 Jan 8, 2026
a0f2930
Refactor: based: Move based_terminate() to pacemaker-based.c
nrwahl2 Jan 8, 2026
8c04253
Refactor: based: New based_cleanup()
nrwahl2 Jan 8, 2026
49e8fc7
Refactor: based: Assume main loop is running in based_terminate()
nrwahl2 Jan 8, 2026
ba370ff
Doc: based: Add notes to based_terminate()
nrwahl2 Jan 8, 2026
815c0dd
Refactor: based: Set shutting_down to true in based_terminate()
nrwahl2 Jan 8, 2026
c87ec20
Low: based: Fix memory leak in remote listeners
nrwahl2 Jan 9, 2026
18d85c5
Refactor: libcrmcommon: Expose struct mainloop_io_s internally
nrwahl2 Jan 9, 2026
22600ff
Low: based: Destroy remote listeners in based_remote_cleanup()
nrwahl2 Jan 9, 2026
33032d6
Refactor: libcrmcommon: Free mainloop child list at exit
nrwahl2 Jan 10, 2026
5982999
Refactor: libcrmcommon: Drop callback_needed variable
nrwahl2 Jan 10, 2026
d7fd867
Refactor: libcrmcommon: child_kill_helper() returns standard code
nrwahl2 Jan 10, 2026
13f822b
Refactor: libcrmcommon: Track mainloop children in a hash table
nrwahl2 Jan 10, 2026
84ea3fe
Refactor: based: Add missing include to pacemaker-based.c
nrwahl2 Jan 11, 2026
afbf29b
Refactor: based: Clean up shutdown logic
nrwahl2 Jan 11, 2026
cd015bf
Refactor: based: based_cib should always be non-NULL after init now
nrwahl2 Jan 14, 2026
b6ec2bb
Refactor: various: Unref main loop consistently
nrwahl2 Jan 11, 2026
9f473a6
Refactor: attrd: Drop mainloop_destroy_signal() from attrd_shutdown()
nrwahl2 Jan 11, 2026
4f1ff86
Refactor: attrd: Assume main loop is running in attrd_shutdown()
nrwahl2 Jan 11, 2026
09d4d9c
Refactor: based: Don't init node caches explicitly
nrwahl2 Jan 11, 2026
35b9518
Refactor: based: Drop based_peer_callback()
nrwahl2 Jan 11, 2026
9792f71
API: libcib: Deprecate cib_query and cib_connected_query
nrwahl2 Jan 11, 2026
432658a
Refactor: remoted: Drop cib_proxy_accept_ro()
nrwahl2 Jan 11, 2026
4d79a91
Refactor: based: Check for old PCMK__SERVER_BASED_RW instance
nrwahl2 Jan 11, 2026
d7ef3b4
Refactor: based: Make PCMK__SERVER_BASED_RO behave like _RW
nrwahl2 Jan 11, 2026
a2f5350
Refactor: based: Drop privileged argument of based_process_request()
nrwahl2 Jan 11, 2026
a93851c
Refactor: libcib: Drop cib__op_attr_privileged
nrwahl2 Jan 11, 2026
7fdfecf
Refactor: liblrmd: Map proxied PCMK__SERVER_BASED_RO clients to _RW
nrwahl2 Jan 11, 2026
e779a0f
Refactor: libcrmcommon: pcmk__serve_based_ipc() starts only one server
nrwahl2 Jan 12, 2026
6290b24
Refactor: based: Standardize based_cpg_dispatch()
nrwahl2 Jan 12, 2026
7f50897
Refactor: based: Standardize based_ipc_dispatch()
nrwahl2 Jan 12, 2026
9f2a6ff
Refactor: remoted: Minor improvements to remoted__read_handshake_data()
nrwahl2 Jan 12, 2026
b0a8caa
Refactor: based: New based_read_handshake_data()
nrwahl2 Jan 12, 2026
1733f9d
Refactor: based: pcmk__remote_ready() in cib_remote_msg()
nrwahl2 Jan 12, 2026
fdde7fc
Refactor: based: Some cleanup/standardization of cib_remote_msg()
nrwahl2 Jan 12, 2026
a61ef56
Refactor: libcrmcommon: Reorganize pcmk__is_user_in_group() unit test
nrwahl2 Jan 12, 2026
1cc930e
Refactor: libcrmcommon: Use getgrnam() in pcmk__is_user_in_group()
nrwahl2 Jan 12, 2026
c82580c
Refactor: based: Drop is_daemon_group_member()
nrwahl2 May 3, 2026
0b0613d
Refactor: based: authenticate_user() takes client_name argument
nrwahl2 May 3, 2026
50ec390
Refactor: based: Rename login argument to msg
nrwahl2 May 3, 2026
dd0fce2
Refactor: based: Rename cib_remote_auth() variables
nrwahl2 May 3, 2026
6f15599
Log: based: Improve cib_remote_auth() log messages
nrwahl2 May 3, 2026
7215f44
Refactor: based: New based_remote_client_auth()
nrwahl2 Jan 12, 2026
4ec895f
Refactor: based: Functionize validating/parsing remote auth message
nrwahl2 Jan 12, 2026
45de674
Doc: based: Document confusion about "dangerous" options
nrwahl2 Jan 12, 2026
45fd2e6
Refactor: based: Reorganize cib_handle_remote_msg()
nrwahl2 Jan 12, 2026
e874b99
Refactor: based: Use pcmk__request_t in process_transaction_requests()
nrwahl2 Jan 12, 2026
141d215
Refactor: based: based_process_request() takes pcmk__request_t argument
nrwahl2 Jan 12, 2026
825affb
Refactor: based: Drop redundant client == NULL check
nrwahl2 Jan 12, 2026
ffdb285
Refactor: based: forward_request() takes pcmk__request_t
nrwahl2 Jan 12, 2026
b32fb4e
Refactor: based: parse_peer_options() takes pcmk__request_t
nrwahl2 Jan 12, 2026
ddedfff
Refactor: based: based_perform_op_rw() takes pcmk__request_t
nrwahl2 Jan 12, 2026
4d8578f
Doc: based: Drop TODO comment
nrwahl2 Jan 13, 2026
29cb629
Refactor: based: Free output in the done section
nrwahl2 Jan 13, 2026
9abc07d
Low: based: Don't forward requests via cluster if in stand-alone mode
nrwahl2 Jan 13, 2026
99e859f
Refactor: libcib: Drop unneeded modifies flag for primary request
nrwahl2 Jan 13, 2026
990a9d6
Feature: based: Drop support for cib_ismaster requests
nrwahl2 Jan 13, 2026
d32372e
Refactor: libcib, based: Drop cib__op_attr_local
nrwahl2 Jan 13, 2026
ec8bb00
Feature: based: Drop support for cib_delete_alt requests
nrwahl2 Jan 13, 2026
119e1bc
Refactor: libcib: Drop cib__op_attr_replaces
nrwahl2 Jan 13, 2026
a3941f1
Low: based: Replace/commit ops don't automatically write to disk
nrwahl2 Jan 13, 2026
40cc222
Refactor: libcrmcommon: Drop pcmk__update_schema transform argument
nrwahl2 Jan 13, 2026
b41d6a5
Refactor: libcib: Drop cib__op_attr_writes_through
nrwahl2 Jan 13, 2026
40b542c
Refactor: libcib: Drop cib__op_attr_transaction
nrwahl2 Jan 13, 2026
3eb939e
Refactor: libcib: Drop enum cib__op_attr
nrwahl2 Jan 13, 2026
7ff4fc6
Refactor: libcib: Clean up includes
nrwahl2 May 3, 2026
503007d
Refactor: libcib: Drop redundant cib_discard_reply check in cib_remote.c
nrwahl2 Jan 13, 2026
fc202fa
API: libcib: Deprecate cib_api_operations_t:query_from() method
nrwahl2 Jan 15, 2026
5a5bad7
Refactor: based: Drop redundant based_stand_alone() check
nrwahl2 Jan 15, 2026
3fa5f4e
Refactor: based: Call process_ping_reply() in process section
nrwahl2 Jan 16, 2026
571e777
Refactor: based: Check cib_status after checking process
nrwahl2 Jan 16, 2026
6a25c5e
Refactor: based: Return void from parse_peer_options()
nrwahl2 Jan 16, 2026
c77d56d
Refactor: based: Default needs_reply to false
nrwahl2 Jan 15, 2026
8dc4afa
Refactor: based: Construct reply only if needs_reply is true
nrwahl2 Jan 17, 2026
303b172
Low: based: Fix memory leak on upgrade when validate-with is not set
nrwahl2 Jan 18, 2026
bacc961
Refactor: libcrmcluster: pcmk__cpg_send_xml() returns void
nrwahl2 Jan 18, 2026
bc84eb2
Refactor: libcrmcluster: Pass GString to send_cpg_text(0
nrwahl2 Jan 19, 2026
ecb4e7e
Refactor: libcrmcluster: Drop two memset() calls
nrwahl2 Jan 19, 2026
c9efdf0
Refactor: libcrmcluster: Consolidate some init in send_cpg_text()
nrwahl2 Jan 19, 2026
e8f0c0f
Refactor: libcrmcluster: Use size_t for local_name_len
nrwahl2 Jan 19, 2026
bba4838
Refactor: libcrmcluster: Use pid_t for local_pid
nrwahl2 Jan 19, 2026
686b2a7
Refactor: libcrmcommon: Drop max argument from pcmk__compress()
nrwahl2 Jan 19, 2026
e9f8128
Doc: libcrmcluster: Document a type conversion mess
nrwahl2 Jan 19, 2026
aa7bf11
Refactor: libcrmcluster: Reduce log call duplication
nrwahl2 Jan 19, 2026
70840a0
Refactor: libcrmcluster: Drop send_cpg_text()
nrwahl2 Jan 19, 2026
352df17
Refactor: attrd: Return void from attrd_send_message()
nrwahl2 Jan 19, 2026
a805ef3
Refactor: libcrmcluster: Return void from pcmk__cluster_send_message()
nrwahl2 Jan 19, 2026
e61187e
Refactor: based: Reuse req in based_process_upgrade()
nrwahl2 Jan 19, 2026
a837500
Log: based: Drop some basically redundant log messages
nrwahl2 Jan 20, 2026
585d50b
Refactor: based: Create reply only if we will send it
nrwahl2 Jan 20, 2026
781553e
Refactor: libcib: Reorder CIB request constants alphabetically
nrwahl2 Jan 20, 2026
750f5e0
wip
nrwahl2 Jan 13, 2026
0eab86d
Refactor: based: Ignore cib_discard_reply
nrwahl2 Jan 14, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 15 additions & 1 deletion daemons/attrd/attrd_corosync.c
Original file line number Diff line number Diff line change
Expand Up @@ -487,6 +487,12 @@ broadcast_unseen_local_values(void)
}
}

/*!
* \internal
* \brief Initialize \c attrd_cluster and connect to the cluster layer
*
* \return Standard Pacemaker return code
*/
int
attrd_cluster_connect(void)
{
Expand All @@ -512,11 +518,19 @@ attrd_cluster_connect(void)
return rc;
}

/*!
* \internal
* \brief Disconnect from the cluster layer and free \c attrd_cluster
*/
void
attrd_cluster_disconnect(void)
{
if (attrd_cluster == NULL) {
return;
}

pcmk_cluster_disconnect(attrd_cluster);
pcmk_cluster_free(attrd_cluster);
g_clear_pointer(&attrd_cluster, pcmk_cluster_free);
}

void
Expand Down
4 changes: 2 additions & 2 deletions daemons/attrd/attrd_messages.c
Original file line number Diff line number Diff line change
Expand Up @@ -348,7 +348,7 @@ attrd_send_protocol(const pcmk__node_status_t *peer)
pcmk__xml_free(attrd_op);
}

gboolean
void
attrd_send_message(const pcmk__node_status_t *node, xmlNode *data, bool confirm)
{
const char *op = pcmk__xe_get(data, PCMK_XA_TASK);
Expand All @@ -365,5 +365,5 @@ attrd_send_message(const pcmk__node_status_t *node, xmlNode *data, bool confirm)
}

attrd_xml_add_writer(data);
return pcmk__cluster_send_message(node, pcmk_ipc_attrd, data);
pcmk__cluster_send_message(node, pcmk_ipc_attrd, data);
}
23 changes: 6 additions & 17 deletions daemons/attrd/attrd_utils.c
Original file line number Diff line number Diff line change
Expand Up @@ -57,28 +57,16 @@ attrd_shutdown(int nsig)
// Tell various functions not to do anthing
shutting_down = true;

// Don't respond to signals while shutting down
mainloop_destroy_signal(SIGTERM);
mainloop_destroy_signal(SIGCHLD);
mainloop_destroy_signal(SIGPIPE);
mainloop_destroy_signal(SIGUSR1);
mainloop_destroy_signal(SIGUSR2);
mainloop_destroy_signal(SIGTRAP);

attrd_free_waitlist();
attrd_free_confirmations();

g_clear_pointer(&peer_protocol_vers, g_hash_table_destroy);

if ((mloop == NULL) || !g_main_loop_is_running(mloop)) {
/* If there's no main loop active, just exit. This should be possible
* only if we get SIGTERM in brief windows at start-up and shutdown.
*/
crm_exit(CRM_EX_OK);
} else {
g_main_loop_quit(mloop);
g_main_loop_unref(mloop);
}
// There should be no way to get here without the main loop running
CRM_CHECK((mloop != NULL) && g_main_loop_is_running(mloop),
crm_exit(CRM_EX_OK));

g_main_loop_quit(mloop);
}

/*!
Expand All @@ -99,6 +87,7 @@ void
attrd_run_mainloop(void)
{
g_main_loop_run(mloop);
g_clear_pointer(&mloop, g_main_loop_unref);
}

/* strlen("value") */
Expand Down
8 changes: 4 additions & 4 deletions daemons/attrd/pacemaker-attrd.h
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@
*/

#ifndef PACEMAKER_ATTRD__H
# define PACEMAKER_ATTRD__H
#define PACEMAKER_ATTRD__H

#include <regex.h>
#include <stdbool.h>
Expand Down Expand Up @@ -210,8 +210,8 @@ void attrd_client_clear_failure(pcmk__request_t *request);
void attrd_client_update(pcmk__request_t *request);
void attrd_client_refresh(pcmk__request_t *request);
xmlNode *attrd_client_query(pcmk__request_t *request);
gboolean attrd_send_message(const pcmk__node_status_t *node, xmlNode *data,
bool confirm);
void attrd_send_message(const pcmk__node_status_t *node, xmlNode *data,
bool confirm);

xmlNode *attrd_add_value_xml(xmlNode *parent, const attribute_t *a,
const attribute_value_t *v, bool force_write);
Expand Down Expand Up @@ -267,4 +267,4 @@ void attrd_set_node_xml_id(const char *node_name, const char *node_xml_id);
void attrd_forget_node_xml_id(const char *node_name);
void attrd_cleanup_xml_ids(void);

#endif /* PACEMAKER_ATTRD__H */
#endif // PACEMAKER_ATTRD__H
3 changes: 3 additions & 0 deletions daemons/based/Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@ halibdir = $(CRM_DAEMON_DIR)
halib_PROGRAMS = pacemaker-based

noinst_HEADERS = based_callbacks.h
noinst_HEADERS += based_corosync.h
noinst_HEADERS += based_io.h
noinst_HEADERS += based_ipc.h
noinst_HEADERS += based_messages.h
noinst_HEADERS += based_notify.h
noinst_HEADERS += based_operation.h
Expand All @@ -33,6 +35,7 @@ pacemaker_based_LDADD += $(CLUSTERLIBS) $(PAM_LIBS)

pacemaker_based_SOURCES = pacemaker-based.c
pacemaker_based_SOURCES += based_callbacks.c
pacemaker_based_SOURCES += based_corosync.c
pacemaker_based_SOURCES += based_io.c
pacemaker_based_SOURCES += based_ipc.c
pacemaker_based_SOURCES += based_messages.c
Expand Down
Loading