Commit Graph

100 Commits

Author SHA1 Message Date
Steven Dake
bb05aed93f Add the UDPU transport
The UDPU transport is useful for those deployments which can't use multicast.
UDPU works by using UDP unicast, which is fully supported by every switch
manufacturer by default and doesn't rely on a functional IGMP implementation.

An example of the UDPU transport is contained in the corosync.conf.example.udpu
file which shows a 16 node cluster.  This file should be copied to each node
in the cluster and IP addresses changed as appropriate.

Amended to remove dead udpu REUSEADDR socket option.

Signed-off-by: Steven Dake <sdake@redhat.com>
2010-11-18 14:21:30 -07:00
Angus Salkeld
29eb20a389 Rename totem_new_msg_signal() to something more generic.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2553 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-11-29 18:42:00 +00:00
Steven Dake
6ea4afe60f Revert commit 2523 which results in segfaults under some workloads.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2536 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-10-22 22:29:02 +00:00
Steven Dake
59ecd3ad4a totem process group optimization to not copy data into staging buffer if
it is to be immediately ordered by totemsrp.  Instead pass that data as an
iovector element.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2523 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-10-14 18:56:54 +00:00
Angus Salkeld
73a24c0352 Add totem stats to objdb.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2517 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-10-12 17:30:20 +00:00
Steven Dake
6ae6f6e284 Fix abort with multiple cpg clients under heavy load.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2467 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-09-21 18:27:37 +00:00
Steven Dake
519616de0c Fix off by one calculation error resulting in assertion.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2398 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-08-28 18:20:14 +00:00
Steven Dake
f558917703 Proper limits checking for message sizes to allow ~1mb max message sizes for corosync.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2388 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-08-17 18:22:11 +00:00
Steven Dake
69928e301a Add notification when totem has completed initialization.
This triggers the initialization of the service engines which may need totem
for initialization.



git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2372 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-07-27 02:00:05 +00:00
Steven Dake
176d80eafe Set version field in totem header in case it isn't set by default.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2340 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-07-01 20:29:55 +00:00
Steven Dake
54fefe152d Remove totempg debug message.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2289 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-24 05:21:13 +00:00
Steven Dake
5780b2b660 Add assembly to free list when it is removed from a configuration change as
indicated by being in the left list.

This has side effect of clearing the assembly buffer the next time it is
referenced from the free list.  This fixes a defect that stops forward
processing of the message streams because sync fails to finish when receiving
a sync message from a restarted processor because it throws away the message.




git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2288 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-24 01:01:57 +00:00
Steven Dake
04cf210d9d Use HAVE_ALLOCA_H define before including alloca.h
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2278 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-21 16:46:24 +00:00
Steven Dake
b8e3951ca1 Add (void *) casts for iovector assignments to remove compile warnings.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2270 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-19 20:43:12 +00:00
Fabio M. Di Nitto
6d5ce092a1 logsys: port to new packed rec_ident version
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2250 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-18 05:32:56 +00:00
Fabio M. Di Nitto
7595cd31e7 logsys: allow to use header files for #define's
most of the values in logsys.h are very useful for non logsys library
API users.

Allow to import them without sucking the whole lib.



git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2248 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-18 05:17:43 +00:00
Fabio M. Di Nitto
5597a2381f logsys: merge tags into rec_ident
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2246 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-18 05:15:10 +00:00
Jim Meyering
6553cf14c8 totempg.c: don't truncate group list
* exec/totempg.c (totempg_groups_join): Fix typo s/=/+/ that
would mistakenly truncate totempg group list.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2204 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-06-02 17:44:56 +00:00
Fabio M. Di Nitto
f96d62d0f2 Fix totem logging after logsys changes
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2181 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-05-13 04:27:54 +00:00
Steven Dake
20d1d5faf7 Remove most iovector-ized functionality from totem and only make one malloc
and memory copy call in totemsrp_mcast.  The rest of the stack minus totempg
then uses zero copies.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2172 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-05-09 17:23:17 +00:00
Christine Caulfield
e9660ee62f Add libnss security support to corosync.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2145 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-25 14:05:27 +00:00
Steven Dake
1beb0c1fbd Remove saHandleXXX and friends and use hdb instead.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2125 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 17:43:54 +00:00
Jim Meyering
904a10ed38 remove all trailing blanks
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2117 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 08:03:55 +00:00
Jim Meyering
5ac04efe9b perf: avoid writing 1MB of zero bytes
Don't initialize the entire just-allocated buffer to all zeroes.
The very next lines initialize all members except "data".
* exec/totempg.c (assembly_ref): Initialize the first byte of
assembly->data to 0, just in case someone uses it as a string.

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2116 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-22 07:28:25 +00:00
Steven Dake
74f6309dcb throw away mode in totempg was operating as a global variable, when it
is possible for different nodes to be in different configurations of 
throw away.  This patch makes the variable instanced.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2092 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-20 04:45:46 +00:00
Jim Meyering
d45965ecae totemrrp.h, totemsrp.h, totemnet.h: const+size_t
* exec/totemrrp.c (totemrrp_initialize):
* exec/totemrrp.h (totemrrp_initialize):
* exec/totemsrp.c (handler_functions, main_deliver_fn):
(main_iface_change_fn):
* exec/totemnet.c (totemnet_deliver_fn, totemnet_iface_change_fn):
(encrypt_and_sign_worker, ucast_sendmsg, mcast_sendmsg):
(totemnet_mcast_worker_fn, totemnet_initialize):
(totemnet_token_send, totemnet_mcast_flush_send):
(totemnet_mcast_noflush_send, totemnet_token_target_set):
* exec/totemnet.h (TOTEMNET_FLUSH):
* exec/totemrrp.c (totemrrp_deliver_fn, totemrrp_iface_change_fn):
(totemrrp_token_seqid_get, rrp_deliver_fn, rrp_iface_change_fn):
* exec/totemsrp.c (handler_functions, main_token_seqid_get):
(srp_addr_copy_endian_convert, message_handler_orf_token):
(message_handler_mcast, message_handler_memb_merge_detect):
(memb_join_endian_convert, memb_commit_token_endian_convert):
(orf_token_endian_convert, mcast_endian_convert):
(memb_merge_detect_endian_convert, message_handler_memb_join):
(message_handler_memb_commit_token):
(message_handler_token_hold_cancel, main_deliver_fn):

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2062 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-15 07:48:39 +00:00
Steven Dake
9141188ee8 Add spin locks for critical sections in hdb api.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2050 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-10 02:24:01 +00:00
Jim Meyering
29eb77a9fb convert each "size_t iov_len" declaration to "unsigned int iov_len"
Via this command:
git grep -l -E 'size_t[[:blank:]]+iov_len' \
  | xargs perl -pi -e 's/((?:^|,)\s*)size_t\s+(iov_len)/${1}unsigned int $2/'

Affected files and (functions/macros):
* exec/totempg.c (totempg_groups_mcast_groups)
(totempg_groups_send_ok_groups):
* include/corosync/evs.h (evs_callbacks_t):
* include/corosync/totem/totempg.h (TOTEMPG_SAFE):
* lib/evs.c (evs_mcast_joined, evs_mcast_groups):
* man/cpg_mcast_joined.3:
* man/evs_mcast_groups.3:
* man/evs_mcast_joined.3:

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2032 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-08 07:56:54 +00:00
Jim Meyering
36eefbadef Convert all "int iov_len" decls to "unsigned int iov_len".
Used this command:
git grep -l 'int iov_len' \
  | xargs perl -pi -e 's/((?:^|,)\s*)(int iov_len)/${1}unsigned $2/'

Here's an approximate (autogenerated by vc-chlog) list of affected
file names and functions/macros:
* README.devmap:
* exec/coroipcs.c (sending_allowed_private_data)
(coroipcs_response_iov_send, msg_send, msg_send_or_queue)
(coroipcs_dispatch_iov_send):
* exec/coroipcs.h (handler_fn_get):
* exec/main.c (deliver_fn, main_mcast):
* exec/main.h (FALSE):
* exec/sync.c (vsf_iface, sync_deliver_fn):
* exec/totemmrp.c (totemsrp_handle_in, pg_deliver_fn)
(totemmrp_deliver_fn, totemmrp_initialize, totemmrp_mcast):
* exec/totemmrp.h (TOTEMMRP_H_DEFINED):
* exec/totemnet.c (iov_len, encrypt_and_sign_worker)
(ucast_sendmsg, mcast_sendmsg, totemnet_token_send):
* exec/totemnet.h (TOTEMNET_FLUSH):
* exec/totempg.c (deliver_fn, totempg_deliver_fn, mcast_msg)
(totempg_groups_initialize, totempg_groups_mcast_joined)
(totempg_groups_joined_reserve):
* exec/totemsrp.c (iov_len, totemsrp_recv, totemsrp_deliver_fn)
(totemsrp_initialize, totemsrp_mcast, token_send):
* exec/totemsrp.h (TOTEMSRP_H_DEFINED):
* exec/vsf_ykd.c (ykd_deliver_fn):
* include/corosync/coroipcc.h (handleInstanceDestructor):
* include/corosync/cpg.h (cpg_callbacks_t):
* include/corosync/engine/coroapi.h (ipc_response_iov_send)
(ipc_dispatch_iov_send, totem_mcast, tpg_init, tpg_joined_mcast)
(tpg_joined_reserve, tpg_groups_mcast, tpg_groups_reserve):
* include/corosync/totem/totempg.h (TOTEMPG_SAFE):
* lib/coroipcc.c (coroipcc_msg_send)
(coroipcc_msg_send_reply_receive)
(coroipcc_msg_send_reply_receive_in_buf):
* lib/cpg.c (cpg_mcast_joined):
* lib/util.h (versionsSupported):
* services/pload.c (send_message):
* services/votequorum.c (conn, quorum_deliver_fn):

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2031 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-08 07:56:45 +00:00
Jim Meyering
2eba2a6cb8 continue pulling previous thread: mostly constification
* exec/apidef.c (typedef_tpg_join, typedef_tpg_leave)
(typedef_tpg_groups_mcast, typedef_tpg_groups_send_ok):
* exec/sync.c (barrier_data_process, sync_barrier_send)
(sync_start_init, sync_service_init, sync_start_process)
(sync_service_process, sync_deliver_fn, sync_request_send)
(sync_request):
* exec/sync.h (name):
* exec/totemmrp.c (totemmrp_callback_token_create):
* exec/totemmrp.h (TOTEMMRP_H_DEFINED):
* exec/totempg.c (list, app_confchg_fn)
(callback_token_received_fn, totempg_callback_token_create)
(totempg_groups_mcast_joined, totempg_groups_joined_release)
(totempg_groups_mcast_groups):
* exec/totemsrp.c (callback_fn, totemsrp_confchg_fn)
(totemsrp_initialize, totemsrp_callback_token_create):
* exec/totemsrp.h (TOTEMSRP_H_DEFINED):
* exec/vsf_ykd.c (ykd_state_send_msg, ykd_attempt_send_msg)
(ykd_confchg_fn):
* include/corosync/engine/coroapi.h (timer_add_absolute)
(totem_ifaces_print, totem_ip_print, totem_callback_token_create)
(sync_request, plugin_interface_reference):
* include/corosync/totem/totempg.h (TOTEMPG_SAFE):
* services/cpg.c (cpg_confchg_fn):
* services/pload.c (msgs_sent, pload_service_engine)
(send_message, start_mcasting):
* services/votequorum.c (conn, quorum_confchg_fn):

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2030 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-08 06:44:59 +00:00
Jim Meyering
3a32139cfc *_confchg_fn: make pointer params const, change *_entries to be size_t
* exec/main.c (confchg_fn):
* exec/quorum.h (sync_callback_fn_t):
* exec/sync.c (sync_ring_id, barrier_data_process)
(sync_start_init, sync_service_process, sync_primary_callback_fn)
(sync_deliver_fn, sync_confchg_fn):
* exec/sync.h (name):
* exec/totemmrp.c (totemsrp_handle_in, pg_confchg_fn)
(totemmrp_confchg_fn, totemmrp_initialize):
* exec/totemmrp.h (TOTEMMRP_H_DEFINED):
* exec/totempg.c (confchg_fn, totempg_confchg_fn)
(totempg_groups_initialize):
* include/corosync/engine/coroapi.h (tpg_init, confchg_fn)
(sync_abort):
* include/corosync/totem/totempg.h (TOTEMPG_SAFE):
* services/cfg.c (shutdown_reply, cfg_confchg_fn)
(message_handler_req_exec_cfg_ringreenable):
* services/cpg.c (api, cpg_confchg_fn):
* services/evs.c (MESSAGE_REQ_EXEC_EVS_MCAST, evs_confchg_fn):
* services/pload.c (MESSAGE_REQ_EXEC_PLOAD_MCAST)
(pload_confchg_fn):

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2029 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-08 06:44:50 +00:00
Jim Meyering
e7fa045d5a totem: const+unsigned+size_t
* exec/totempg.c (totempg_groups_mcast_groups):
(totempg_groups_send_ok_groups):
* include/corosync/totem/totem.h (interface_count):
(private_key_len, threads, heartbeat_failures_allowed):
* include/corosync/totem/totempg.h:

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2027 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-04-08 06:44:20 +00:00
Jim Meyering
921a5a8417 totempg.c: remove one const-related warning
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1923 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-30 21:10:30 +00:00
Jim Meyering
b94d4f6ae4 totempg.c: remove one const-related warning
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1921 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-30 21:10:13 +00:00
Fabio M. Di Nitto
aaf6948ae7 Fix 64bit alignment issue in totempg
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1889 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-22 18:35:06 +00:00
Fabio M. Di Nitto
031c02f589 - Every .c file should include "config.h" to get the right defines...
- services/Makefile.am: add include search paths for config.h

- include/corosync/cs_config.h.in exports LCRSODIR and SOCKETDIR

- tools/Makefile.am: drop -D defines for dirs that are now in
cs_config.h or config.h

- configure.ac: sanitize prefix and exec_prefix paths. Export DIRS in
*config.h

- lib/Makefile.am: : drop -D defines for dirs that are now in
cs_config.h or config.h. Add rule to build lcr_ifact.o or building from
lib/ fails miserably



git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1877 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-19 12:58:53 +00:00
Steven Dake
34583b8ef0 Use nocheck flagging on confchg iteration of handle ids.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1845 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-12 16:15:34 +00:00
Steven Dake
2b84d1075b Add handle checking to the hdb system.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1842 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-11 23:28:01 +00:00
Steven Dake
ce9768ffc5 Fix missing prototypes in totempg.c.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1821 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-10 11:45:00 +00:00
Steven Dake
48f96e6814 Remove pointer math from totempg.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1810 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-10 10:12:52 +00:00
Steven Dake
7f3f9496b3 Remove const warnings in totempg.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1804 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-10 09:34:20 +00:00
Steven Dake
1f05ffd27d Add reserve/release functionality to totem to reserve message queue
space.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1793 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-03-06 07:38:34 +00:00
Steven Dake
58ab8d4a65 Unification around hdb_handle_t data type.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1782 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-02-25 11:14:47 +00:00
Steven Dake
3442f911fa Fix error where entire message was not rejected during startup of a new
node resulting in partial delivery of a complete message and segfaulting
the executive.


git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1744 fd59a12c-fef9-0310-b244-a6a79926bd2f
2009-01-25 21:25:25 +00:00
Angus Salkeld
f2f20533fd change get node_id() to return an unsigned int
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1701 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-12-01 18:44:55 +00:00
Steven Dake
69b80c7126 Fix missing message in delivery of messages under certain circumstances.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1692 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-11-10 08:58:12 +00:00
Steven Dake
0c631e24fc Logsys flight recorder.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1681 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-10-30 22:25:56 +00:00
Steven Dake
e1f531380a Revert patch 1633 which breaks build.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1636 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 16:44:26 +00:00
Steven Dake
c4a1c7eb96 Change all occurances of openais to corosync.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1633 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 16:04:01 +00:00
Fabien Thomas
0c92a5e564 reorganize include file to match installed tree to build openais without installing corosync; correct some warnings and error under FreeBSD and Darwin
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1632 fd59a12c-fef9-0310-b244-a6a79926bd2f
2008-08-14 14:59:50 +00:00