2023-11-06 Machiry Aravind Kumar Handling integer overflow issues Avoiding signed integer overflows by converting size related types to size_t. Reviewed-by: Jan Friesse 2023-10-09 Christine Caulfield rust: Improve vector initialisation (also silence clippy in rust 1.73) Reviewed-by: Jan Friesse 2023-10-06 Christine Caulfield man: Update the corosync_overview manpage The bits about IPv6 were out of date (for knet). Added reference to the corosync-*tool utilities so that people know they are there Reviewed-by: Jan Friesse 2023-10-05 Christine Caulfield config: Fail to start if ping timers are invalid This required adding a lot of return values to two previously 'void' functions. I did two rather than just the one that was needed because it seemed to make sense to do them both together. Although these functions now return errors, they are probably still ignored higher up. this really needs a comprehensive audit. Reviewed-by: Jan Friesse 2023-08-30 Christine Caulfield rust: Remove some pointless casts As pointed out by clippy in Rust 1.72 Reviewed-by: Jan Friesse 2023-08-09 Christine Caulfield parser: Allow a non-breaking space as 'whitespace' non-breaking spaces are depressingly easy to enter in some editors and can make a mess of a corosync.conf file, as the character can break keyword names and generate some very strange error messages. So here we include it (0xA0) as a valid whitespace character. The (unsigned char) cast is for portability - Intel systems use signed chars so we'd need something there, but this should protect us against unsigned char systems too. No attempt is made to protect against UTF-8 characters, that's very much out of scope for this project I suspect. ref: https://github.com/corosync/corosync/issues/723 Reviewed-by: Jan Friesse 2023-06-06 Jan Friesse spec: Migrate to SPDX license Both Fedora and openSUSE now recommends to use SPDX shortname format for License. Reviewed-by: Fabio M. Di Nitto 2023-05-29 Jan Friesse build: Fix rust make -j build dep for distcheck "Inspired" by similar patch from kronosnet (531ebe195a955d9a1c8b762443ecab3edca95ad4) Reviewed-by: Fabio M. Di Nitto 2023-05-23 Jan Friesse rust: Remove tests from check scripts Rust test are equivalent of C tests (so interactive one) and not automated tests, so it shouldn't be executed by make check. Reviewed-by: Christine Caulfield 2023-04-24 Christine Caulfield Rust: Remove obsolete bindgen flag --size_t-is-usize has been deprecated for a while and is removed in bindgen 0.64 Reviewed-by: Jan Friesse 2023-04-03 Christine Caulfield knet: use knet TRACE logging level if available Reviewed-by: Jan Friesse 2023-01-27 Christine Caulfield Rust: 'fix' clippys for Rust 1.67 This is clippy getting a bit above itself IMHO Reviewed-by: Jan Friesse 2023-01-26 Christine Caulfield rust: Make it work on FreeBSD Reviewed-by: Jan Friesse bindings: Add Rust bindings Reviewed-by: Jan Friesse 2022-10-24 Jan Friesse totemconfig: Add support for knet_mtu totem.knet_mtu is new configuration option which allows setting of automatic or manual knet MTU. Also reload of totem.knet_pmtud_interval is fixed now, so it works when key is deleted (and set back default value). Reviewed-by: Christine Caulfield 2022-07-27 Jan Friesse configure: Modernize configure.ac a bit ... to make 2.71 happy. Also increase minimum version to 2.69 (10 years old version so should be compatible enough). Reviewed-by: Fabio M. Di Nitto 2022-03-31 Christine Caulfield log: Configure knet logging to the same as corosync Before this, all knet messages, including debug, were sent over the pipe from knet to corosync and filtered in corosync. This was obviously a waste, so now we tell knet the logging level we need from it and so only get the messages that the user has requested. Reviewed-by: Jan Friesse 2022-03-30 Jan Friesse logrotate: Use copytruncate method by default The reopen lograte method has two main problems: 1. It does fail when corosync is not running (solvable by adding "|| true") 2. If (for some reason, like SELinux) cfgtool -L fails, logrotate fails and corosync keeps logging into old file. Added "|| true" makes situation even worse because logrotate removes file but corosync keeps logging into it. Solution is to install copytruncate logrotate snip by default (and keep reopen config file only for reference). Reviewed-by: Christine Caulfield 2022-03-08 Andreas Grueninger totemconfig: Check uname return value correctly uname in Solaris/Illumos returns non-negative value when succesful. Reviewed-by: Jan Friesse 2022-02-01 Jan Friesse totempg: Fix alignment handling Some platforms requires aligned memory access. For such platforms, special code was added using address modulo 4 to check if aligning is needed or not. This may be problem for 64 bits platforms. Also check in app_deliver_fn was incorrect and always true. Solution is to use modulo sizeof pointer and add parentheses to fix the check in app_deliver_fn function. Reviewed-by: Christine Caulfield 2022-01-05 Jan Friesse pkgconfig: Export corosysconfdir Useful for external code to easily tell where corosync.conf is (in case someone configured it for /usr/local/etc, ...) E.g. pacemaker's crm_report collects corosync.conf, and some of its testing tools generate a corosync.conf for a test cluster. Reviewed-by: Fabio M. Di Nitto 2022-01-03 Ferenc Wágner Remove bashism from configure script This was the real problem behind 384d168: Debian experimental now sports a dash with LINENO support, so configure does not fall back to using bash instead, choking on such bash-only constructs. Unfortunately this didn't bail out cleanly, just unexpectedly set link_all_deplibs to no, and the error message ./configure: 13158: test: yes: unexpected operator stayed unnoticed in the logs. Actually, link_all_deplibs=no is the default in Debian, reducing overlinking and causing confusion overall, see https://debbugs.gnu.org/db/13/13920.html for example. I think being explicit about used interfaces has its merit, so now that Corosync has it, it might be advantageous to disable link_all_deplibs by default across the board (after this patch re-enables it as a side effect). Reviewed-by: Jan Friesse 2021-11-24 Jan Friesse totemudpu: Don't block local socketpair Commit to drop packets from unlisted IPs made ifdown case not working because msg_name is unset for socketpair. solution is to drop packets from unlisted IPs only when bind state is BIND_STATE_REGULAR. Reviewed-by: Christine Caulfield 2021-11-10 Jan Friesse build: Add explicit dependency for used libraries Don't rely on implicit symbol finding (cs_strerror being most prominent example) but rather use explicit one. This makes current debian experimental happy (compile source) Reviewed-by: Fabio M. Di Nitto 2021-11-03 Jan Friesse totemsrp: Switch totempg buffers at the right time Commit 92e0f9c7bb9b4b6a0da8d64bdf3b2e47ae55b1cc added switching of totempg buffers in sync phase. But because buffers got switch too early there was a problem when delivering recovered messages (messages got corrupted and/or lost). Solution is to switch buffers after recovered messages got delivered. I think it is worth to describe complete history with reproducers so it doesn't get lost. It all started with 402638929e5045ef520a7339696c687fbed0b31b (more info about original problem is described in https://bugzilla.redhat.com/show_bug.cgi?id=820821). This patch solves problem which is way to be reproduced with following reproducer: - 2 nodes - Both nodes running corosync and testcpg - Pause node 1 (SIGSTOP of corosync) - On node 1, send some messages by testcpg (it's not answering but this doesn't matter). Simply hit ENTER key few times is enough) - Wait till node 2 detects that node 1 left - Unpause node 1 (SIGCONT of corosync) and on node 1 newly mcasted cpg messages got sent before sync barrier, so node 2 logs "Unknown node -> we will not deliver message". Solution was to add switch of totemsrp new messages buffer. This patch was not enough so new one (92e0f9c7bb9b4b6a0da8d64bdf3b2e47ae55b1cc) was created. Reproducer of problem was similar, just cpgverify was used instead of testcpg. Occasionally when node 1 was unpaused it hang in sync phase because there was a partial message in totempg buffers. New sync message had different frag cont so it was thrown away and never delivered. After many years problem was found which is solved by this patch (original issue describe in https://github.com/corosync/corosync/issues/660). Reproducer is more complex: - 2 nodes - Node 1 is rate-limited (used script on the hypervisor side): ``` iface=tapXXXX # ~0.1MB/s in bit/s rate=838856 # 1mb/s burst=1048576 tc qdisc add dev $iface root handle 1: htb default 1 tc class add dev $iface parent 1: classid 1:1 htb rate ${rate}bps \ burst ${burst}b tc qdisc add dev $iface handle ffff: ingress tc filter add dev $iface parent ffff: prio 50 basic police rate \ ${rate}bps burst ${burst}b mtu 64kb "drop" ``` - Node 2 is running corosync and cpgverify - Node 1 keeps restarting of corosync and running cpgverify in cycle - Console 1: while true; do corosync; sleep 20; \ kill $(pidof corosync); sleep 20; done - Console 2: while true; do ./cpgverify;done And from time to time (reproduced usually in less than 5 minutes) cpgverify reports corrupted message. Reviewed-by: Fabio M. Di Nitto 2021-10-25 Christine Caulfield cpghum: Allow to continue if corosync is restarted Reviewed-by: Jan Friesse 2021-10-18 miharahiro man: Fix consensus timeout The consensus timeout is 1.2 * token_timeout, which has been changeg from 1000 to 3000, so change also consensus timeout. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2021-09-13 Jan Friesse logsys: Unlock config mutex on error Thanks Ryan Cai for reporting the problem. Reviewed-by: Christine Caulfield 2021-08-20 Jan Friesse totem: Add cancel_hold_on_retransmit config option Previously, existence of retransmit messages canceled holding of token (and never allowed representative to enter token hold state). This makes token rotating maximum speed and keeps processor resending messages over and over again - overloading network and reducing chance to successfully deliver the messages. Also there were reports of various Antivirus / IPS / IDS which slows down delivery of packets with certain sizes (packets bigger than token) what make Corosync retransmit messages over and over again. Proposed solution is to allow representative to enter token hold state when there are only retransmit messages. This allows network to handle overload and/or gives Antivirus/IPS/IDS enough time scan and deliver packets without corosync entering "FAILED TO RECEIVE" state and adding more load to network. Reviewed-by: Christine Caulfield 2021-08-04 Jan Friesse totemconfig: Knet nodeid must be < 65536 Knet limits maximum node id to 16-bit type. This was not ensured in corosync and it was possible to set nodeid to value >= 65536 and (surprisingly) most of the things were working quite well because of overflow. corosync-cmapctl -m stats contained knet nodeid in stats.knet. subtree, so for nodeid 65536 result was: Can't get value of stats.knet.node0.link0.connected. Error CS_ERR_NOT_EXIST Commit implements checking of nodeid and limits it to KNET_MAX_HOST value when knet is used. Reviewed-by: Christine Caulfield totemconfig: Ensure all knet hosts has a nodeid Nodeid is required for knet for every node. Right now, existence of nodeid is checked only for local for local node, so broaden the test. Reviewed-by: Christine Caulfield 2021-08-02 Jan Friesse cfgtool: Use CS_PRI_NODE_ID for formatting nodeid Reviewed-by: Christine Caulfield cfgtool: Fix brief mode display of localhost Show 'n' also for first localhost link, so all localhost links are marked consistently with non-brief display. Reviewed-by: Christine Caulfield cfgtool: Set nodeid indexes after sort Needed for having correct index of localhost Reviewed-by: Christine Caulfield totemconfig: Put autogenerated nodeid back to cmap Reviewed-by: Christine Caulfield cfgtool: Check existence of at least one of nodeid Reviewed-by: Christine Caulfield totemconfig: Do not process totem.nodeid totem.nodeid is relict from times when nodelist was not required and totemsrp was sending whole membership with ip addresses. With Corosync 3 ip addresses are no longer sent so it is not possible to find "next" node ip address where to send token (because only nodeid is sent) without having information about all of the nodes stored locally. When totem.nodeid was configured it was partly used and other parts (most notably totemudpu_token_target_set) were using autogenerated nodeid. Together it was not possible to create even single node membership. Solution is to ignore totem.nodeid completely (and display warning when it is set). Reviewed-by: Christine Caulfield 2021-07-29 Christine Caulfield knet: Fix node status display Currently if there is a gap in the links (eg link0 is missing) corosync-cfgtool -s will still display the links as 0,1,2,3... even if they are 1,2,5,6... Also display the KNET transport type with the link in corosync-cfgtool -s & -n Reviewed-by: Jan Friesse 2021-07-23 Jan Friesse main: Add support for cgroup v2 and auto mode Support for cgroup v2 is very similar to cgroup v1 just checking (and writing) different file. Because of all the problems described later with cgroup v2 new "auto" mode (new default) is added. This mode first tries to set rr scheduling and moves Corosync to root cgroup only if it fails. Testing this feature is a bit harder than with cgroup v1 so it's probably worh noting in this commit message. 1. Copy some service file (I've used httpd service) and set CPUQuota=30% in the [service] section. 2. Check /sys/fs/cgroup/cgroup.subtree_control - there should be no "cpu" 3. Start modified service 4. Check /sys/fs/cgroup/cgroup.subtree_control - there should be "cpu" 5. Start corosync - It should be able to get rt priority When move_to_root_cgroup is disabled (applies only for kernels with CONFIG_RT_GROUP_SCHED enabled), behavior differs: - If corosync is started before modified service, so there is no "cpu" in /sys/fs/cgroup/cgroup.subtree_control corosync starts without problem and gets rt priority. Starting modified service later will never add "cpu" into /sys/fs/cgroup/cgroup.subtree_control (because corosync is holding rt priority and it is placed in the non-root cgroup by systemd). - When corosync is started after modified service, so "cpu" is in /sys/fs/cgroup/cgroup.subtree_control, corosync is not able to get RT priority. It's worth noting problems when cgroup v2 is used together with systemd logging described in corosync.conf(5) man page. Reviewed-by: Christine Caulfield 2021-06-03 Christine Caulfield stats: fix crash when iterating over deleted keys The libqb map API leaves 'ownership' of the data with the caller but does its own lifetime management, so it can easily happen that map_rm() is called and the data deleted by the caller. But if an iterator is running over that item then the map entry will not get removed (leaving dangling pointers) until later. libqb has a hack-y callback that tells the owner when it is safe to delete the allocated memory, so we hook into that. icmap is already using this. Reviewed-by: Jan Friesse 2021-06-02 Jan Friesse man: Add note about single node configuration Internally knet is using just one link for localhost so for single node configuration knet_link_get_link_list returns only one entry. This is propagated to `corosync-cfgtool -s`. Reviewed-by: Christine Caulfield 2021-05-21 Jan Friesse Revert "main: Add support for cgroup v2" This reverts commit 57e6b86b53010dd2612b0a6a4e04917673062ecf. We are in process of finding better solution so reverting for now. Revert "man: Add info about cgroup v2 behavior" This reverts commit 9d3df5696ed6b04b379a2fe643eec1fcd5a4b10d. We are in process of finding better solution so reverting for now. 2021-05-19 Jan Friesse man: Add info about cgroup v2 behavior Reviewed-by: Christine Caulfield cfg: corosync_cfg_trackstop blocks forever corosync_cfg_trackstop expects reply but that was never sent. Make sure to send reply so corosync_cfg_trackstop works. Reviewed-by: Christine Caulfield 2021-05-10 Jan Friesse main: Add support for cgroup v2 Support for cgroup v2 is very similar to cgroup v1 just checking (and writing) different file. Testing this feature is a bit harder than with cgroup v1 so it's probably worh noting in this commit message. 1. Copy some service file (I've used httpd service) and set CPUQuota=30% in the [service] section. 2. Check /sys/fs/cgroup/cgroup.subtree_control - there should be no "cpu" 3. Start modified service 4. Check /sys/fs/cgroup/cgroup.subtree_control - there should be "cpu" 5. Start corosync - It should be able to get rt priority When move_to_root_cgroup is disabled, behavior differs: - If corosync is started before modified service, so there is no "cpu" in /sys/fs/cgroup/cgroup.subtree_control corosync starts without problem and gets rt priority. Starting modified service later will never add "cpu" into /sys/fs/cgroup/cgroup.subtree_control (because corosync is holding rt priority and it is placed in the non-root cgroup by systemd). - When corosync is started after modified service, so "cpu" is in /sys/fs/cgroup/cgroup.subtree_control, corosync is not able to get RT priority. Reviewed-by: Christine Caulfield 2021-04-14 Jan Friesse main: Mark crypto_model key read only ... to be in align with crypto_cypher and crypto_hash. Reload (corosync-cfgtool -R) works without any problem and changing of key is not supported anyway, Reviewed-by: Christine Caulfield totemconfig: Ensure strncpy is always terminated Reviewed-by: Christine Caulfield config: Properly check crypto and compress models Use knet_get_crypto_list to find knet supported crypto models and use them instead of hardcoded list. Also fix compression handling. Previously knet_compression_model value was not checked at all and was directly passed to knet. Use knet_get_compress_list to find knet supported compress models and use them to check validity of config file and for more informative error message. Lastly enhance corosync version display with information about available crypto/compression models. Reviewed-by: Christine Caulfield 2021-04-07 Ferenc Wágner man: corosync-cfgtool.8: use proper single quotes Apostrophe as the first character of the input line indicates a request, so groff complained: macro 'onwire'' not defined. Reviewed-by: Jan Friesse 2021-04-06 Fabio M. Di Nitto knet: pass correct handle to knet_handle_compress totemknet_configure_compression was using knet_context just to gather the knet handle / instance. On first time config knet_contex is not initialized till much later in the code, passing some random garbage pointers to knet_handle_compress, that would crash later trying to acquire a mutex lock. Reviewed-by: Jan Friesse 2021-03-29 Johannes Krupp totemconfig: fix integer underflow and logic bug Fix integer underflow when computing `namelen` in `nodelist_byname`, always use computed `namelen`. Fixes #626. Reviewed-by: Jan Friesse 2021-03-25 liangxin1300 totemconfig: change udp netmtu value as a constant Insted of using "magic number" use UDP_NETMTU constant. Reviewed-by: Jan Friesse 2021-03-18 Dan Streetman totemknet: retry knet_handle_new if it fails Retry knet_handle_new without privileged operations if it fails knet_handle_new can fail with ENAMETOOLONG if its privileged operations fail, which can happen if we're running as a user process or in an unprivileged container. This adds a cmap key 'allow_knet_handle_fallback' that defaults to no, which is the current behavior of exiting with error if the knet_handle can't be created with privileged operations. If the new cmap key is set to 'yes' and the knet_handle creation fails, fallback to creating the handle using unprivileged operations is tried. Reviewed-by: Jan Friesse 2021-03-11 Dan Streetman main: Check memlock rlimit Don't lock all current and future memory if can't increase memlock rlimit. If we fail to increase our RLIMIT_MEMLOCK, then locking all our current and future memory is extremely dangerous; once our memory use reaches our RLIMIT_MEMLOCK, memory allocations will start failing, very likely leading to our entire process crashing. This can happen if we aren't a privileged process, for example if running as non-root user, or inside an unprivileged container. Reviewed-by: Jan Friesse 2021-03-09 Fabio M. Di Nitto configure: drop unnecessary check and define Reviewed-by: Jan Friesse configure: move exec_prefix sanitize Move exec_prefix sanitize closer to prefix. This is not functional change, just group functional tests together. Reviewed-by: Jan Friesse configure: drop dead code prefix is sanitized already at the top of configure.ac to /usr, hence the second instance can never hit. Reviewed-by: Jan Friesse configure: detect and init pkg-config with macro this also allows to use PKG_CONFIG_* macros immediately in conditional calls Reviewed-by: Jan Friesse 2021-03-04 Christine Caulfield main: Close race condition when moving to statedir Found by covscan which also didn't like us 'leaking' the fd to the lockfile. So close that too. Reviewed-by: Jan Friesse 2021-01-14 Jan Friesse init: Use corosync-cfgtool for shutdown ... to trigger cfg shutdown callbacks. Reviewed-by: Christine Caulfield 2021-01-14 Christine Caulfield test: Add testcfg to exercise some cfg functions Reviewed-by: Jan Friesse cfg: Reinstate cfg tracking CFG tracking was removed in 815375411e80131f31b172d7c43625769ee8b53d, probably as a mistake, as part of the tidy up of cfg and the removal of dynamic loading. This means that shutdown tracking (using cfg_try_shutdown()) stopped working. This patch restores the trackstart & trackstop API calls (renamed to be more consistent with the exiting libraries) so that shutdown tracking can be used again. Change cfg.shutdown_timeout to be in milliseconds rather than seconds nd use libqb macros for conversion. Add --force option to corosync-cfgtool -H Reviewed-by: Jan Friesse 2020-11-26 Jan Friesse cfg: Improve nodestatusget versioning Patch tries to make nodestatusget really extendable. Following changes are implemented: - corosync_cfg_node_status_version_t is added with (for now) single value CFG_NODE_STATUS_V1 - corosync_knet_node_status renamed to corosync_cfg_node_status_v1 (it isn't really knet because it works as well for udp(u() - struct res_lib_cfg_nodestatusget_version is added which holds only ipc result header and version on same position as for corosync_cfg_node_status_v1 - corosync_cfg_node_status_get requires version and pointer to one of corosync_cfg_node_status_v structures - request is handled in case switches to make adding new version easier Also fix following bugs: - totempg_nodestatus_get error was retyped to cs_error_t without any meaning. - header.error was not checked at all in the library Reviewed-by: Christine Caulfield 2020-11-26 Christine Caulfield cfg: New API to get extended node/link infomation Current we horribly over-use totempg_ifaces_get() to retrieve information about knet interfaces. This is an attempt to improve on that. All transports are supported (so not only Knet but also UDP(U)). This patch builds best against the "onwire-upgrade" branch of knet as that's what sparked my interest in getting more information out. Reviewed-by: Jan Friesse 2020-11-12 Jan Friesse totemknet: Check both cipher and hash for crypto Previously only crypto cipher was used as a way to find out if crypto is enabled or disabled. This usually works ok until cipher is set to none and hash to some other value (like sha1). Such config is perfectly valid and it was not supported correctly. As a solution, check both cipher and hash. Reviewed-by: Fabio M. Di Nitto Reviewed-by: Christine Caulfield 2020-11-10 Ferenc Wágner The ring id file needn't be executable At the same time simplify the overwrite logic and stop clearing the umask (which is unexpected and quite pointless here, as applications can't really protect the users from their own pathological settings). Reviewed-by: Jan Friesse 2020-11-06 Fabio M. Di Nitto pkgconfig: export LOGDIR in corosync.pc logdir is configurable at build time and can change from distro to distro. Export the path for pcs to use. Reviewed-by: Jan Friesse 2020-11-02 Jan Friesse spec: Add isa version of corosync-devel provides Also add release to version to match autogenerated corosynclib-devel provides. Reviewed-by: Christine Caulfield 2020-10-19 liangxin1300 totemconfig: remove redundant nodeid error log Reviewed-by: Christine Caulfield 2020-10-15 Aleksei Burlakov totemsrp: More informative messages ... when token and consensus timeouts pop. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2020-10-15 Jan Friesse config: Increase default token timeout to 3000 ms Default token timeout of 1000 ms was often changed by users because of other workloads on machine which may make corosync responding a bit later than needed and resulting in token loss. 3000 ms was chosen as a compromise between token timeout increase and allow live cluster upgrade (other nodes should receive token by node with new default on time). It doesn't affect token token_coefficient so final token timeout still depends on number of configured nodes (just base is higher). This change slows down failover a bit so for clusters where failover times are important, please change the token timeout in configuration file corosync.conf as a: totem { version: 2 token: 1000 ... Reviewed-by: Christine Caulfield 2020-10-12 Ferenc Wágner man: votequorum.5: use proper single quotes Backtick and apostrophe are formatted as directional quotes by plain groff, but they behave literally in the body of a man page. Reviewed-by: Jan Friesse man: fix typo: avaialable By slightly rewording the documentation of knet_compression_model. Reviewed-by: Jan Friesse 2020-10-12 Jan Friesse tests: Use CS_DISPATCH_BLOCKING instead of cycle Some tests were using dispatch function in CS_DISPATCH_ALL mode without poll/select on fd. This leads to busywait cycle, because CS_DISPATCH_ALL masks CS_ERR_TRY_AGAIN error. Simpliest solution is to use CS_DISPATCH_BLOCKING instead and remove while cycle, because CS_DISPATCH_BLOCKING handles CS_ERR_TRY_AGAIN correctly. Reviewed-by: Christine Caulfield quorum: Add support for nodelist callback Current quorum callback contains only actual view list and there is no way how to find out joined/left nodes. This cannot be emulated by user app, because when corosync restarts before other nodes notices then view list is unchanged (ring id is changed tho). Solution is to implement similar callback as for cpg which contains ring id, member list, joined list and left list. To implement such callback and keep backwards compatibility, quorum_model_initialize is introduced. Its behavior is similar to cpg_model_initialize. This allows passing model v1, which contains enhanced quorum (full ring id is passed instead of just seq number) and nodelist callbacks. To find out which events should be sent by corosync daemon, new message MESSAGE_REQ_QUORUM_MODEL_GETTYPE is used. Quorum library on init was sending MESSAGE_REQ_QUORUM_GETTYPE. Whem model v1 is requested the MESSAGE_REQ_QUORUM_MODEL_GETTYPE is used, which contains model number so corosync knows that client is using model v1 and can send enhanced quorum and nodelist events. Nodelist event is (for now) send both in case of change of membership and also when requested, also when CS_TRACK_CURRENT is requested, but then left_list and joined_list is left empty, because they don't make too much sense there. New test application testquorummodel is added as an example of new API usage. Also during patch developement, I found few bugs here and there, which are also fixed: - quorum_initialize was never returning error code returned by MESSAGE_REQ_QUORUM_GETTYPE call (always returned CS_OK) - Allocated memory in send_library_notification was based on sizeof(unsigned int) instead of mar_uint32_t. That's not wrong, but it make more sense to use sizeof(mar_uint32_t) instead (big thanks to Chrissie for englishify the man pages) Reviewed-by: Christine Caulfield 2020-09-30 Christine Caulfield man: reload during rolling upgrade Make it clear that reloads during a rolling upgrade are not supported. Reviewed-by: Jan Friesse 2020-09-29 Jan Friesse totemsrp: Move token received callback Trigger token received callback only for valid token. Reviewed-by: Christine Caulfield 2020-09-24 Jan Friesse common_lib: Remove trailing spaces in cs_strerror Reviewed-by: Christine Caulfield 2020-09-18 liangxin1300 totemconfig: improve linknumber checking Check whether linknumber larger than INTERFACE_MAX and display error if so. Reviewed-by: Jan Friesse 2020-09-17 liangxin1300 totemconfig: add interface number to the error str Reviewed-by: Jan Friesse cfg: enhance message_handler_req_lib_cfg_killnode While execute corosync-cfgtool -k to kill node: * Check whether nodeid exists * Check whether the node was joined Reviewed-by: Jan Friesse 2020-09-03 liangxin1300 totemconfig: validate totem.transport value Reviewed-by: Jan Friesse 2020-08-21 liangxin1300 cmapctl: return error on no result of print prefix return EXIT_FAILURE if no result print for ACTION_PRINT_PREFIX. Reviewed-by: Jan Friesse cmapctl: check NULL for key type and value for -p To avoid segmentation fault. Reviewed-by: Jan Friesse 2020-08-20 liangxin1300 quorumtool: strict check for -o option Reviewed-by: Jan Friesse 2020-08-19 liangxin1300 quorumtool: Help shouldn't require running service Do not require corosync running when usage is requested. Reviewed-by: Jan Friesse 2020-08-18 liangxin1300 cfgtool: Return error when -i doesn't match Give error message and EXIT_FAILURE return code when -i option doesn't match. Reviewed-by: Jan Friesse 2020-08-17 liangxin1300 man: update output of -s and -b for cfgtool Reviewed-by: Jan Friesse cmapctl: return EXIT_FAILURE on failure For -g and -d option return EXIT_FAILURE when error occurs (most often because key does not exist). Reviewed-by: Jan Friesse 2020-08-12 liangxin1300 tools: use util_strtonum for options checking Function atoi is not safe since miss validation; Function strtol is better but need to consider empty string and overflows Function util_strtonum is a safer wrapper of strtoll Use util_strtonum to check nodeid option and strict checking condition. Reviewed-by: Jan Friesse 2020-08-11 liangxin1300 cfgtool: enhancement -a option * Add return code * Give error message when nodeid not exist Reviewed-by: Jan Friesse 2020-08-07 liangxin1300 cfgtool: output error messages to stderr ... and standardize the return code Reviewed-by: Jan Friesse 2020-07-16 Jan Friesse configure: Use default systemd path with prefix Reviewed-by: Fabio M. Di Nitto build: Use git-version-gen during specfile build Instead of copying parts of git-version-gen for spec target use git-version-gen directly and parse final version into components (rpmver, alphatag, numcomm) and use them. Main reason is to simplify code a bit (sed scripts are a bit repetitive tho), reuse the code and also allow building of RPM from dist tarball generated from non-tagged commit or dirty git (not very useful). The code relies on fact, that hyphen is never used in tagged release name. Reviewed-by: Fabio M. Di Nitto build: Update git-version-gen Reviewed-by: Fabio M. Di Nitto spec: Require at least knet 1.18 for crypto reload Reviewed-by: Fabio M. Di Nitto 2020-07-09 Christine Caulfield config: Allow reconfiguration of crypto options Needs new knet crypto API. If it's not available, then fall back to the old API and forbid changing crypto while running. To avoid us being dependant on the leader node, each node sends its own crypto_reconfig_phase messages so we can guarantee that the reconfiguration always completes on each node. Reviewed-by: Jan Friesse 2020-05-18 Christine Caulfield test: Fix cpgtest ... to cope with the max number of group members. Reviewed-by: Jan Friesse 2020-04-24 Christine Caulfield config: Fix crash when a reload fails twice Have string values stored in char arrays in totem_config so we don't get into a mess with the pointers. Also remove vsftype (which hasn't been used since corosync 1) Use strncpy even though we know the string is fine. Keep covscan happy Reviewed-by: Jan Friesse config: Don't free pointers used by transports reload failed for UDP[U] because they had saved pointers to the interfaces[] array. so memcpy into that rather then re-allocate it. Also, move the check for different IP address families so it also gets run at reload time. Reviewed-by: Jan Friesse config: don't reload vquorum if reload fails Fix an 'error: success' stype message by propogating error_string back down the stack. Reviewed-by: Jan Friesse cfg: Improve error return to cfgtool -R Reviewed-by: Jan Friesse config: Reorganise the config system To be more reliable & maintainable The basic plan here is to fix reloads to be more stable using read/parse/verify/build/commit stages, so that any errors will not leave corosync in an unstable state. This should also make the code more maintainable as currently the verify/commit stages are horribly intertwined. Also: - Fix local_node_pos not being updated in the new map during validation (broke adding and removing new nodes in the middle of the list). - Fix reconfiguration so that nodes are indexed by nodeid and not their position in the list. This is an old bug that's just been carried over Reviewed-by: Jan Friesse 2020-04-22 Jan Friesse Revert "totemip: compare sin6_scope_id and interface_num" This reverts commit efd34df531d1b23d6458dca863a7517b7ac0099d to make master compile after revert of 934c47ed4384daf2819c26306bebba3225807499. Revert "totemip: Add support for sin6_scope_id" This reverts commit 934c47ed4384daf2819c26306bebba3225807499 which is causing protocol incompatibility in needle. Master seems to be not affected, but it needs more checking. 2020-03-30 Hideo Yamauchi cfgtool: Fix error code as described in MP If all links are connected 0 is returned to the shell, otherwise it's error code 1. Reviewed-by: Jan Friesse 2020-03-26 Christine Caulfield icmap: icmap_init_r() leaks if trie_create() fails Thanks to Coverity for finding this Reviewed-by: Jan Friesse 2020-03-24 Jan Friesse votequorum: set wfa status only on startup Previously reload of configuration with enabled wait_for_all result in set of wait_for_all_status which set cluster_is_quorate to 0 but didn't inform the quorum service so votequorum and quorum information may get out of sync. Example is 1 node cluster, which is extended to 3 nodes. Quorum service reports cluster as a quorate (incorrect) and votequorum as not-quorate (correct). Similar behavior happens when extending cluster in general, but some configurations are less incorrect (3->4). Discussed solution was to inform quorum service but that would mean every reload would cause loss of quorum until all nodes would be seen again. Such behaviour is consistent but seems to be a bit too strict. Proposed solution sets wait_for_all_status only on startup and doesn't touch it during reload. This solution fulfills requirement of "cluster will be quorate for the first time only after all nodes have been visible at least once at the same time." because node clears wait_for_all_status only after it sees all other nodes or joins cluster which is quorate. It also solves problem with extending cluster, because when cluster becomes unquorate (1->3) wait_for_all_status is set. Added assert is only for ensure that I haven't missed any case when quorate cluster may become unquorate. Reviewed-by: Christine Caulfield 2020-03-13 Jan Friesse quorumtool: exit on invalid expected votes Reviewed-by: Christine Caulfield votequorum: Change check of expected_votes Previously value of new expected_votes was checked so newly computed quorum value was in the interval . The upper range prevented the cluster to become unquorate, but bottom check was almost useless because it allowed to change expected_votes so it is smaller than total_votes. Solution is to check if expected_votes is bigger or equal to total_votes and for quorate cluster only check if cluster doesn't become unquorate (for unquorate cluster one can set upper range freely - as it is perfectly possible when using config file) Reviewed-by: Christine Caulfield 2020-03-04 Jan Friesse cfgtool: Simplify output a bit for link status Display words connected/disconnected instead of 1/0 and show enabled status only when link is not enabled (shouldn't happen). Reviewed-by: Christine Caulfield 2020-02-27 Jan Friesse man: Enhance link_mode priority description Some users found description of priority for passive link_mode confusing (probably because "priority" word is too overloaded) so add some redundancy to make description unambiguous. Reviewed-by: Christine Caulfield main: Add schedmiss timestamp into message This is useful for matching schedmiss event in stats map with logged event. Reviewed-by: Christine Caulfield 2020-02-21 liangxin1300 totemip: compare sin6_scope_id and interface_num When user configure a specific interface like vlan with the same IPv6 link-local address, Corosync should compare sin6_scope_id with interface_num, to make sure got the right interface to bind Reviewed-by: Jan Friesse 2020-02-17 Jan Friesse totemip: Really remove totemip_copy_endian_convert totemip: Remove unused totemip_copy_endian_convert Reviewed-by: Christine Caulfield totemip: Add support for sin6_scope_id sin6_scope_id was not present in totemip structure making impossible to use link-local ipv6 address. Patch adds sin6_scope_id and changes convert/copy functions to use it (formally also comparator functions should be changed, but it seems to cause more harm and it is not really needed). This makes corosync work with link-local addresses fine for both UDPU and Knet transport as long as interface specification is used (so fe80::xxxx:xxxx:xxxx:xxxx%eth0). Reviewed-by: Christine Caulfield 2020-02-12 Jan Friesse cfgtool: Improve link status display Totemknet is enhanced to use 'n' character for localhost and not adding status, because it is safe to expect that localhost link is always connectd. corosync-cfgtool is enhanced to properly decode 'n', '?' and 'd' characters and display its meaning for extended status. Special characters are also documented in man page. Reviewed-by: Christine Caulfield 2020-02-10 Hideo Yamauchi totemknet: Change the initial value of the status Reviewed-by: Jan Friesse 2020-01-23 Jan Friesse stats: Use nanoseconds from epoch for schedmiss Using monotonic time is not working because it doesn't have to match time from epoch. Reviewed-by: Christine Caulfield 2020-01-22 Christine Caulfield stats: Add stats for scheduler misses This patch add a stats.schedmiss.* set of entries that are a record of the last 10 times corosync was not scheduled in time. These entries are keypt in reverse order (so stats.schedmiss.0.* is always the latest one kept) and the values, including the timestamp, are in milliseconds. It's also possible to use a cmap tracker to follow these events, which might be useful. Reviewed-by: Jan Friesse 2020-01-21 Jan Friesse votequorum: Reflect runtime change of 2Node to WFA When 2Node mode is set, WFA is also set unless WFA is configured explicitly. This behavior was not reflected on runtime change, so restarted corosync behavior was different (WFA not set). Also when cluster is reduced from 3 nodes to 2 nodes during runtime, WFA was not set, what may result in two quorate partitions. Solution is to set WFA depending on 2Node when WFA is not explicitly configured. Reviewed-by: Christine Caulfield 2020-01-09 Hideo Yamauchi cpg: Change downlist log level Reviewed-by: Jan Friesse 2020-01-07 Ferenc Wágner man: move cmap_keys man page from section 8 to 7 Section 8 is for "System administration commands", 7 is "Miscellaneous". Reviewed-by: Jan Friesse 2019-11-28 Jan Friesse stats: Check return code of stats_map_get quorumtool: Assert copied string length notifyd: Check cmap_track_add result And assert length of key_name to strcpy. cmapctl: Free bin_value on error cfgtool: Remove unused callbacks cpghum: Remove unused time variables and functions votequorum: Assert copied strings length totemknet: Assert strcpy length totemknet: Check result of fcntl O_NONBLOCK call totemconfig: Initialize warnings variable sync: Assert sync_callbacks.name length totemknet: Don't mix corosync and knet error codes And use correct return code in stats.c. stats: Assert value_len when value is needed cmap: Assert copied string length totemconfig: Reuse already fetched pointer Make code a bit readable and easier to process for coverity. logconfig: Remove double free of value votequorum: Ignore the icmap_get_* return value Express intention to ignore icmap_get_* return value and rely on default behavior of not changing the output parameter on error. totemconfig: Free leaks found by coverity 2019-11-18 Christine Caulfield icmap: fix the icmap_get_*_r functions Make the icmap*_r functions read from the specified map rather than the global map. Also include icmap_get_string_r() which seems to have been missed out. Reviewed-by: Jan Friesse 2019-11-18 Fabio M. Di Nitto pkgconfig: Add libqb dependency To make sure libqb dependency is visible across all libraries. Reviewed-by: Jan Friesse 2019-11-08 Jan Friesse Initialize stack allocated memory Some functions allocated memory on stack without clearing memory and then send them on wire. This is not an issue, but valgrind reports this as a problem so it is easy to miss real problem then. Solution is to clear stack memory. Reviewed-by: Christine Caulfield 2019-10-17 Thomas Lamprecht man: Fix corosync.conf knet pong count default commit 029b8ebad60314d3daa285eb945c55355fade389 changed the default of the KNET_PONG_COUNT from the kronosnet default of 5 to 2, as corosync bring up was deemed to slow. The documentation, and the comment stating that the totem config default values match the knet ones were not updated, and thus now out of date. Fixhis by noting the correct default of 2 for KNET_PONG_COUNT and note that all but that one are in sync with the korosync defaults in the comment. Reviewed-by: Jan Friesse 2019-10-09 Jan Friesse totemsrp: Reduce MTU to left room second mcast Messages sent during recovery phase are encapsulated so such message has extra size of mcast structure. This is not so big problem for UDPU, because most of the switches are able to fragment and defragment packet but it is problem for knet, because totempg is using maximum packet size (65536 bytes) and when another header is added during retransmition, then packet is too large. Solution is to reduce mtu by 2 * sizeof (struct mcast). Reviewed-by: Fabio M. Di Nitto totempg: Check sanity (length) of received message Reviewed-by: Thomas Lamprecht Reviewed-by: Fabio M. Di Nitto 2019-10-09 Fabio M. Di Nitto build: add option for enabling sanitizer builds --with-sanitizers= option is stricly meant for runtime debugging purposes. Do NOT use in production. Please check gcc/clang man pages on how to use ASAN/UBSAN/TSAN. Also allow users to specificy SANITIZERS_CFLAGS and SANITIZERS_LDFLAGS for advanced use. Reviewed-by: Jan Friesse 2019-09-10 Jan Friesse totemknet: Add locking for log call Knet callbacks may be called from different thread than main thread. If this happens, log messages may be lost. Most prominent example is when link goes up (logged by main thread) and host_change_callback_fn is called. Implemented solution is adding mutex for every log call in totemknet. Reviewed-by: Fabio M. Di Nitto 2019-08-27 Jan Friesse man: Fix link_mode priority description ... to match knet source code. Reviewed-by: Fabio M. Di Nitto 2019-07-30 Jan Friesse notifyd: Don't dereference NULL key_name This problem shouldn't really happen, but better safe than sorry. 2019-07-15 Jan Friesse totem: Increase ring_id seq after load This patch handles the situation where the leader node (the node with lowest node_id) crashes and is started again before token timeout of the rest of the cluster. The newly restarted node restores the ringid of the old ring from stable storage, so it has the same ringid as rest of the nodes, but ARU is zero. If the node is able to create a singleton membership before receiving the joinlist from rest of the cluster, everything works as expected, because the ring id gets increased correctly. But if the node receives a joinlist from another cluster node before its own joinlist, then it continues as it would had it never left the cluster. This is not correct, because the new node should always create a singleton configuration first. During the recovery phase, ARUs are compared and because they differ (the ARU of the old leader node is 0), the other nodes try to sent all of their previous messages. This is impossible (even if it was correct), because other nodes have already freed most of those messages. The implementation uses an assert to limit maximum number of messages sent during recovery (we could fix this, but it's not really the point). The solution here is to increase the ring_id sequence number by 1 after loading it from storage. During creation of the commit token it is always increased by 4, so it will not collide with an existing sequence. Thanks Christine Caulfield for clarify commit message. Reviewed-by: Christine Caulfield 2019-07-08 Jan Friesse init: Use cpgtool instead of cfgtool Init script used to use corosync-cfgtool -s to wait till corosync accepts ipc connection. Problem with this approach is that error code is returned not only if ipc cannot be initialized, but also when one of the ring is marked as failed, making corosync service not to start. Corosync with one failed ring can work just fine and there is no need to fail startup. Patch is changing call of corosync-cfgtool to corosync-cpgtool. Also to make spotting of broken ring easier, corosync-cfgtool -s is called after successful return of the cpgtool, and warning is issued if cfgtool fails. Reviewed-by: Christine Caulfield notifyd: Fix warning produced by 32-bit compiler time_t is platform dependent real type which is usually long int on 64-bit platform, but only int on 32-bit platform and printing it with %ld generated warning. Solution seems to be ether retype time_t to long int or use functions which works with time_t. Later option is used in this patch, which uses localtime and strftime to print time_t value. Also code is refactored to remove duplicate calls and add _cs_snmp prefix to prevent snmp_ prefix collision. Reviewed-by: Christine Caulfield cfgtool: Remove unused code corosync_cfg_ring_status_get returns string status, which is always OK for UDP(U) and detailed status for Knet transport. Previously also FAULTY status was returned for UDP(U) and cfgtool used to return error code back to shell when one of the interfaces was faulty. Because FAULTY is now not returned, it's not needed to have code for handling it. Also man page was misleading, so it is fixed too. Reviewed-by: Christine Caulfield 2019-07-03 Jan Friesse logging: Add CS_PRI_NODE_ID and CS_PRI_RING_ID Previously node id was logged ether as a %d (most often), %u, %x or PRI.32 and ring id ether as %lld, %llx with various separators (., :, /) between rep nodeid and seq. This seems to cause confusion. This patch adds macros CS_PRI_NODE_ID, CS_PRI_RING_ID and CS_PRI_RING_ID_SEQ (CS prefix = corosync, PRI modeled in spirit of inttypes.h PRIx32) and makes code use them. Reviewed-by: Christine Caulfield 2019-07-02 Jan Friesse vqsim: Fix gitignore 2019-06-28 Jan Friesse totemknet: Disable forwarding on shutdown Disabling forwarding will make knet flush the messages (especially LEAVE one). Reviewed-by: Christine Caulfield 2019-06-17 Jan Friesse totemconfig: Fix compiler warning Compiler is unable to understand relation between members and num_configured and warns about uninitialized members. Instead of initializing members to 0 and (potentially after some code refactor) let code fall to display error message, more explicit method of assert is used. Reviewed-by: Christine Caulfield 2019-06-17 Thomas Lamprecht totem: fix check if all nodes have same number of links configured links may not come in order in the interfaces array, which holds an entry for _all_ possible links, not just configured ones. So iterate through all interfaces, but skip those which are not configured. This allows to start corosync with a configuration where link 0 is currently not mentioned, as else it was checked but had member_count = 0 from it's default initialization, which then made this code report a false positive for the "Not all nodes have the same number of links" check even on a correct config. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse totem: fix check if all nodes have name attrs in multi-link setups As totem_config->interfaces entries are _all_ possible links and not only the configured ones we cannot trust that interface[0] is configured at the time of checking, and thus has a valid member_count. So set the members variable to the member_count entry from an actually configured interface and loop over that one. This fixes a case where the check for the name property on all nodes for multi links was skipped if link 0 was not configured, as then its member_count was 0. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2019-06-14 dkutergin corosync-notifyd: Add option to disable DNS lookup New configuration option -n is added. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2019-06-14 Jan Friesse totemsrp: Fix warnings produced by gcc 9.1 New gcc warn about passing posibly unaligned pointer from packed structure. This shouldn't be problem for x86. Implemented solution is to let compiler do its job (compiler knows if pointer is aligned so accessing structure field is safe) and use it together with support for asigning and returning of structure (not a pointer to the structure). - srp_addr_copy is removed and replaced by simple assignment - srp_addr_copy_endian_convert is removed and replaced by srp_addr_endian_convert function which takes srp_addr structure and returns endian converted srp_addr structure - functions which accepts srp_addr array are not changed because (luckily) non-aligned pointer is always just one item array and such item is always used as a source pointer so it's possible to use temporary variable Reviewed-by: Christine Caulfield 2019-06-13 Jan Friesse cpg: Move filling of member_list to subfunction Reviewed-by: Christine Caulfield Reviewed-by: Fabian Grünbichler cpg: Add more comments to notify_lib_joinlist And make handling of left_list more generic. Also free skiplist allocated by joinlist_inform_clients function. Last (but not least) remove czechlish founded (should have been pp of "find"). Reviewed-by: Christine Caulfield Reviewed-by: Fabian Grünbichler 2019-06-13 Fabian Grünbichler cpg: send single confchg event per group on joinlist using a similar approach to 43bead364514e8ae2ba00bcf07c460e31d0b1765 "Send one confchg event per CPG group to CPG client" which did the same for leave events on a network partition. Reviewed-by: Jan Friesse cpg: notify_lib_joinlist: drop conn parameter since it is always set to NULL. Reviewed-by: Jan Friesse 2019-06-12 Jan Friesse vqsim: Check length of copied optarg Reviewed-by: Christine Caulfield vqsim: Check result of icmap_set_uint32 Reviewed-by: Christine Caulfield vqsim: Remove unused total_nodes ... and remove unused nodes_in_partition function. Also replace TAILQ_FOREACH with goto to while cycle. Reviewed-by: Christine Caulfield vqsim: Free allocated newvq on error Reviewed-by: Christine Caulfield vqsim: Check length of received message Reviewed-by: Christine Caulfield vqsim: Check write result Reviewed-by: Christine Caulfield vqsim: Do not access unitialized argv[0] Reviewed-by: Christine Caulfield totemknet: Initialize return value in setup_nozzle Also add comment why return value is currently not used. Reviewed-by: Christine Caulfield totemknet: macaddr_str is always set Check for NULL was invalid, because macaddr_str is ether defined in cmap or set to "54:54:01:00:00:00". Reviewed-by: Christine Caulfield totemknet: Ignore icmap_get_string result ... and add comment why it is not a bug. Reviewed-by: Christine Caulfield totemknet: create_nozzle_device simplify check ipaddr existence is checked for being not NULL by caller setup_nozzle. Also ipaddr was passed to reparse_nozzle_ip_address function unchecked so code would crash before reaching the actual check. Reviewed-by: Christine Caulfield totemip: Use res in totemip_sa_equal Setting res to -1 was not entirely following semantics of "equal" operation. Set it to 0 and return it when families differs makes compiler happy. Reviewed-by: Christine Caulfield totemconfig: ipaddr_equal use switch Compiler may have problem understanding relation between addr1p and addrlen. Small change makes code a little more readable and compiler happy. Reviewed-by: Christine Caulfield 2019-06-10 Jan Friesse configure: Fix GDB_CFLAGS typo GDB_FLAGS (without C) is the correct name of variable to print in the summary. Reviewed-by: Christine Caulfield man: Add vqsim man page into distributed tarball 2019-06-07 Jan Friesse spec: Add support for user-flags configure option Passing -ggdb3 (or -g3) during compiler may result in corrupted debuginfo files (bug in debugedit - for Fedora filed as a https://bugzilla.redhat.com/show_bug.cgi?id=1708786). Until the bug is fixed it's possible to ether change configure to add -ggdb2/-g2 or use already existing --enable-user-flags option and rely on environment set by rpmbuild. Patch implements second option so RPM distros without broken debugedit are not affected. Reviewed-by: Christine Caulfield man: Enahnce block_unlisted_ips description Thanks Christine Caulfield for Englishify and refining the description. Reviewed-by: Christine Caulfield 2019-05-31 Jan Friesse man: Enhance corosync.conf mp a bit Fix issues found by Ulrich Windl Reviewed-by: Christine Caulfield 2019-05-30 Fabian Grünbichler cfgtool: Fix link status display instead of the nodeid, this displayed arbitrary values (usually '1') from other cmap keys under nodelist.node.XX. sscanf returns the number of conversions even on mismatch, e.g. it also returns 1 for nodelist.node.2.quorum_votes nodelist.node.2.ring0_addr nodelist.node.2.name ... instead of just nodelist.node.2.nodeid which leads to the value of (at least) quorum_votes being stored in nodeid_list in addition to the actual nodeid. storing the returned int in a cs_error_t enum also potentially masks errors, so just compare the result with the expectation directly. Fixes: c0d14485c3ebdeb2332f7c48acd155163e5b7fc1 Reviewed-by: Jan Friesse 2019-05-29 Jan Friesse knet: Use block_unlisted_ips Reviewed-by: Christine Caulfield udpu: Drop packets from unlisted IPs This feature allows corosync to block packets received from unknown nodes (nodes with IP address which is not in the nodelist). This is mainly for situations when "forgotten" node is booted and tries to join cluster which already removed such node from configuration. Another use case is to allow atomic reconfiguration and rejoin of two separate clusters. Reviewed-by: Christine Caulfield 2019-05-29 Christine Caulfield knet: Fix initialising of knet access lists. It needs to be done at both reload and initialize time. Also disable access lists if the config key is removed. Reviewed-by: Jan Friesse 2019-05-29 Fabio M. Di Nitto knet: allow corosync to use knet access lists currently knet acl are only available on master but they might be backported to stable1 as they don´t break onwire protocol. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2019-05-28 yuan ren man: Enhance token_retransmit description Reviewed-by: Jan Friesse 2019-05-15 yuan ren totemconfig: Fix minimum limit for hold timeout Make sure the retransmit timeout have the lowest limit `MINIMUM_TIMEOUT`. So, the lowest limit of hold should be recalculated. Also token timeout and retransmits count should keep a relational expression. Reviewed-by: Jan Friesse 2019-05-13 Christine Caulfield vqsim: Enhance vqsim 1. Enable scripting of vqsim and add man page I've added a 'sleep' command to help with scripting as well as documentation on how to do it. 2. Make 'sync' operation much more robust and useful Refactored a lot of code to make sure that in sync mode the prompt appears at the 'right' time. What we do is wait for all of the nodes in all partitions to have the same ring_id. If this doesn't happen then the timeout will fire as before. 3. Rename binary to corosync-vqsim and add a sub-package for it Reviewed-by: Jan Friesse 2019-05-02 Christine Caulfield knet: Fix a couple of errors when adding a new link When adding a new link for the first time you will often see: 1) knet_link_set_ping_timers for nodeid 1, link 1 failed: Invalid argument (22) 2) New config has different knet transport for link 1. Internal value was NOT changed. To reconfigure an interface it must be deleted and recreated. A working interface needs to be available to corosync at all times 1) is caused by setting the ping timers twice, once in totemknet_member_add() and once in totemknet_refresh_config(). The first time we don't know the value so it's zero and thus display an error. For this we simply check for the zero and skip the knet API call. It's not ideal, but totemconfig needs a lot of reconfiguring itself before we can make this more sane. 2) was caused by simply comparing an unconfigured link with a configured one, so OF COURSE, they are going to be different! Reviewed-by: Jan Friesse 2019-05-02 yuan ren totemconfig: fix autogen mcastaddr for ipv6-4 When UDP is used as a transport, the error would occur "Multicast address family does not match bind address family" because there is no ipv6 in /etc/hosts specified but using the totem.ip_version: ipv6-4. because the mcastaddr generated (if not specified) only according to the totem.ip_version. Solution is to use bindnetaddr (configured or generated from nodelist) addr family. Reviewed-by: Jan Friesse 2019-04-25 Jan Friesse totemconfig: Ensure nodeid is specified for IPv6 Thanks Yuan Ren for finding this problem. Reviewed-by: Christine Caulfield 2019-04-25 Christine Caulfield vqsim: Fix vqsim for corosync 3.0 A couple of small internal changes in corosync 3.0 broke vqsim. 1) The way the custom config file is specified (no long an env variable) 2) votequorum now needs to know ouZ_node_pos Reviewed-by: Jan Friesse 2019-04-24 Jan Friesse vqsim: Make vqsim compile Also add vqsim binary to .gitignore. Reviewed-by: Christine Caulfield 2019-04-23 Jan Friesse totemconfig: ipaddr_equal check just addr part Checking whole structure is fine for IPv4, but IPv6 contains also scope id, what may be problem for local address. It's possible to use a zone index, but because it's not required when host name is used, it shouldn't be needed when IPv6 address is used. Example configuration snip which fails without patch: ... nodelist { node { nodeid: 1 ring0_addr: fe80::1234:5678:9abc:def1 } } ... (example succeed when %eth0 is used). With patch, zone index is not needed. Reviewed-by: Christine Caulfield 2019-04-16 Jan Friesse cpg: Add CPG_REASON_UNDEFINED Previously the reason field for the member_list items in cpg_totem_confchg_fn was unset what may be little confusing. Solution is to add a special value CPG_REASON_UNDEFINED and use it for the member_list items. Reviewed-by: Christine Caulfield 2019-04-15 Fabian Grünbichler crypto: re-introduce secauth parameter with the following semantics: - default off - implies crypto_hash SHA256 and crypto_cipher AES256 - crypto_* have higher precedence - only applicable for knet, like crypto_* this should make upgrading from Corosync 2.x less painful for users that have an explicit secauth=on in their configuration. Reviewed-by: Jan Friesse 2019-04-11 Jan Friesse totemconfig: Remove support for 3des Triple DES is considered as a "weak cipher" since 2016 so there is really no need to support it in the corosync. Thanks to bug in Corosync/Knet/NSS which caused 3des to not work at all, no matter what library was used, we can just remove support for 3des without braking the compatibility. Also fix coroparse so: - totem.crypto_type is removed (this is 1.x construct which was not used even in 2.x) - Add checking of totem.crypto_model. - Enumarate possible values for crypto_model, crypto_cipher and crypto_hash error messages Reviewed-by: Christine Caulfield keygen: Reflect change in knet Knet commit 1cb36f0cffd4559971826ca4774a88c5b05882fb reduced minimal key length to 1024-bit. Keygen should keep compatibility with already released 3.0.[0-1] so default key length should be 2048 bits. It's possible to use -s argument to generate shorter key - keygen respects minimum/maximum as defined by knet. Also fix man page to reflect this change. Reviewed-by: Christine Caulfield 2019-04-05 Fabian Grünbichler set totem.keyfile and totem.key to RO so that we get the nice log message when attempting to modify them at runtime, just like for totem.crypto_* and co. Reviewed-by: Jan Friesse 2019-04-04 Jan Friesse Revert "init: Enable StopWhenUnneeded" This reverts commit 03d9321bc80887d4578744c26c05d61e2d9d4278. Reverted because when corosync service is not enabled and corosync is executed by "systemctl start corosync" it is then immediately shutdown because of "Unit not needed anymore. Stopping.". This is really not expected behavior. Reviewed-by: Christine Caulfield 2019-04-01 yuan ren totemsrp: Word spelling mistake Reviewed-by: Jan Friesse 2019-02-26 Jan Friesse coroparse: Fix compiler warning Reviewed-by: Christine Caulfield configure: Do not autodetect nozzle Nozzle is part of kronosnet but it is independent library. Enabling it when detected without ability to turn it off is not in line with other libraries. Solution is to use same method as for other libraries - add --enable-nozzle to configure script and add support for this option into spec file. Reviewed-by: Christine Caulfield 2019-02-26 Christine Caulfield nozzle: Add support for libnozzle devices A nozzle device is a pseudo ethernet device that routes network traffic through a channel on the corosync knet network (NOT cpg or any corosync internal service) to other nodes in the cluster. It allows applications to take advantage of knet features such as multipathing, automatic failover, link switching etc. Reviewed-by: Jan Friesse 2019-02-15 Jan Friesse quorumtool: Fix exit status codes 1. Use EXIT_SUCCESS and EXIT_FAILURE when possible 2. For -s option return EXIT_SUCCESS when no problem appeared and node is quorate, EXIT_FAILURE if problem appeared and exit code 2 (EXIT_NOT_QUORATE) when no problem appeared but node is not quorate. 3. Document exit codes in the man page Reviewed-by: Christine Caulfield 2019-02-14 Jan Friesse corosync-cfgtool: Fix -i matching Previously it was required to use link id together with IP address (ex. "0 127.0.0.1") as a -i parameter. This was reported as not very user friendly. Solution is to split returned interface name and try match link id and ip address separately. Also fix typo in description of parameter -s. Reviewed-by: Christine Caulfield 2019-02-06 Ferenc Wágner build: Use the AWK variable provided by configure Reviewed-by: Jan Friesse build: Use the SED variable provided by configure Reviewed-by: Jan Friesse configure.ac: AC_PROG_SED is already present Reviewed-by: Jan Friesse corosync.conf.5: typography fixes Reviewed-by: Jan Friesse corosync.conf.5: fix grammar Reviewed-by: Jan Friesse 2019-02-04 Christine Caulfield cfgtool: Improve link status display Now show the nodeids properly, rather than node indexes which were annoying and unhelpful. Reviewed-by: Jan Friesse 2019-01-18 Jan Friesse doc: Update INSTALL file - Add LibQB and Knet links - Remove old (pre udpu) config file example - Change corosync.conf man page to contain useful information about token timeout Reviewed-by: Fabio M. Di Nitto Reviewed-by: Christine Caulfield 2019-01-11 Jan Pokorný init: Enable StopWhenUnneeded It shall be a rule of thumb not to combine "application stack" components run under particular init/supervision mechanism and run by whatever other means (without transitive relationships like when corosync's client runs from other pacemaker that is itself started through systemd) when there's a directed graph of reliance between them (sans constrained corner cases like when of such components is a kernel module). And corosync on its own is just a service provider that only appears useful when utilized as a basic building block for application specific distributed environments. Therefore, we may assume whenever corosync gets started by the means of systemd, it's because of a mechanized attempt to satisfy declared dependency of some such corosync's client that is about to be started under the service manager realms (directly or, by induction, through the same triggering mechanism indirectly). Hence, when there's no such client around anymore (unless this dependant is being restarted at the moment, see below) corosync shall rather shutdown as well. In the past, there was an issue with systemd regarding said inflicted restart of the dependant/client, but that's resolved as of v236: https://github.com/systemd/systemd/commit/ deb4e7080db9dcd2a1d51ccf7c357f88ea863e54 Reviewed-by: Jan Friesse 2019-01-11 Jan Friesse totemip: Use AF_UNSPEC for ipv4-6 and ipv6-4 AF_UNSPEC returns different results than AF_INET/AF_INET6, because of nsswitch.conf search is in order and it stops asking other modules once current module success. Example of difference between previous and new code when ipv6-4 is used: - /etc/hosts contains test_name with an ipv4 - previous code called AF_INET6 where /etc/hosts failed so other methods were used which may return IPv6 addr -> result was ether fail or IPv6 address. - new code calls AF_UNSPEC returning IPv4 defined in /etc/hosts -> result is IPv4 address New code behavior should solve problems caused by nss-myhostname. Reviewed-by: Fabio M. Di Nitto 2019-01-03 Fabio M. Di Nitto [totemknet] update for libknet.so.2.0.0 init API more changes are to be expected on this front as the API evolves in knet master. Reviewed-by: Jan Friesse 2019-01-03 Ferenc Wágner Config version must be specified Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse Don't declare success early Here we're very far from entering the main loop, even farther from sending the READY notification to systemd. This sounded awkward: systemd[1]: Starting Corosync Cluster Engine... corosync[827]: [MAIN ] Corosync Cluster Engine ('2.99.5'): started and ready to provide service. corosync[827]: [MAIN ] Corosync built-in features: dbus monitoring watchdog augeas systemd xmlconf snmp pie relro bindnow corosync[827]: [MAIN ] parse error in config: No interfaces defined corosync[827]: [MAIN ] Corosync Cluster Engine exiting with status 8 at main.c:1378. systemd[1]: corosync.service: Main process exited, code=exited, status=8/n/a systemd[1]: corosync.service: Failed with result 'exit-code'. systemd[1]: Failed to start Corosync Cluster Engine. Reviewed-by: Jan Friesse Reviewed-by: Christine Caulfield More natural error messages Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2018-12-14 Jan Friesse main: Rename run_dir to state_dir system.run_dir was a little bit unfortunate and confusing name. Rename to state_dir makes more evident what is content of this directory. To keep setting consistent with code, get_run_dir is changed to get_state_dir. Reviewed-by: Christine Caulfield totemconfig: Enhance totem.ip_version Originally totem.ip_version was used to force ip version used by totem. With Knet this variable didn't make too much sense so it was not used. Sadly rely only on DNS resolver order doesn't always work (RFC is quite complicated, but if IPv6 is not configured then IPv4 is preferred), what we tried to solve by forcing IPv6 and only if that fails, use IPv4. Sadly this collides with nss_myhostname which is able to return every local address and today system usually have at least one autogenerated link-local IPv6 address so it is able to "overwrite" /etc/hosts. Solution is to enhance totem.ip_version and use it also for Knet. totem.ip_version is now just a flag for resolver and can have four states: ipv4 (only IPv4 is used), ipv6 (only IPv6 is used), ipv4-6 (ask IPv4 first and if it fails ask for IPv6) and ipv6-4 (ask IPv6 first and if it fails ask for IPv4). Default for Knet and UDPU transports is ipv6-4, for UDP it's ipv4, because autogenerated mcast addr doesn't play too well with ipv6-4. So everywhere where nss_myhostname becomes problem, it's just possible to set totem.ip_version to ipv4-6. Reviewed-by: Jan Friesse 2018-12-13 Jan Friesse totemip: Add debug information to totemip_parse It's required to create TOTEM logsys subsys before totemip_parse is used (so before totem_config_read). Logsys is not yet fully initialized, but it's good enough. Reviewed-by: Christine Caulfield totemconfig: Add IPs to family mismatch error Reviewed-by: Christine Caulfield 2018-12-11 Christine Caulfield config: Look up hostnames in a defined order Current practice is to let getaddrinfo() decide which address we get but this is not necessarily deterministic as DNS servers won't always return addresses in the same order if a node has several. While this doesn't deal with node names that have multiple IP addresses of the same family (that's an installation issue IMHO) we can, at least, force a definite order for IPv6/IPv4 name resolution. I've chosen IPv6 then IPv4 as that's what happens on my test system ( using /etc/hosts) and it also seems more 'future proof'. Reviewed-by: Jan Friesse 2018-12-11 Ferenc Wágner Fix corosync.conf.5 manpage typos Reviewed-by: Jan Friesse 2018-12-10 Christine Caulfield man: Add some information about address resolution to corosync.conf(5) Reviewed-by: Jan Friesse 2018-12-10 Jan Friesse totemconfig: Really use totemip_parse results Reviewed-by: Christine Caulfield 2018-12-06 Christine Caulfield man: Add instructions for adding/removing nodes This replaces the 'cmaptool' method previously documented in cmap_keys.8 Reviewed-by: Jan Friesse config: Disallow corosync-cmapctl updates of nodelist It didn't work anyway (the config system requires whole links to be configured at once) and caused crashes. Reviewed-by: Jan Friesse 2018-12-03 Christine Caulfield config: Report IP addr/nodename parse errors back Corosync used to just ignore parse errors so that un-resolved names could cause silent failures. We now always check the result from totemip_parse() and at least print something in syslog. There's also a little get-out here that allows you to correct a bad node address without having to destroy and recreate the whole link. I'm being nice to you. Reviewed-by: Jan Friesse 2018-11-29 Jan Friesse coroparse: Remove unused cs_err initialization Reviewed-by: Christine Caulfield cpghum: Check cpg_local_get return code Reviewed-by: Christine Caulfield testcpg2: Check cpg_dispatch return code Reviewed-by: Christine Caulfield 2018-11-16 Jan Friesse notifyd: Delete registered tracking keys Forward port of needle 70fd66767494872b93018949d685f19482cd5bec by Hideo Yamauchi . Reviewed-by: Christine Caulfield stats: Fix delete of track When cmap_track_delete was called to stats map (cmap created with CMAP_MAP_STATS parameter) result was always ERR_BAD_HANDLE. It turned out that corosync part of cmap is always calling icmap function to get user data (where required hdb handle is stored) instead of generalized map_fns. After fixing this issue, valgrind showed error about jump depending on unitialized data in stats_map_track_delete. Solution seems to be always initialize tracker->events (so not only when track_type is add or delete). Reviewed-by: Christine Caulfield 2018-11-15 Jan Friesse init: Fix init script to work with containers Previously init scripts were not using pid file so pidof was used. This is usually not a problem, but when containers are used it may result to killing improper instance when issued on host. Solution is to always use pidfile. Also try to use LSB complaint status codes. Reviewed-by: Christine Caulfield main: Remove COROSYNC_RUN_DIR Remove last used environment variable (reasons similar to removal of COROSYNC_MAIN_CONFIG_FILE). This environment variable was never documented, so document it properly. Reviewed-by: Christine Caulfield man: Describe nodelist.node.name properly Old description is no longer true, because with knet transport name got new and very important role. Reviewed-by: Christine Caulfield main: Remove COROSYNC_TOTEM_AUTHKEY_FILE Remove another environment variable (reasons similar to removal of COROSYNC_MAIN_CONFIG_FILE). Also properly document both totem.keyfile and totem.key. Reviewed-by: Christine Caulfield main: Replace COROSYNC_MAIN_CONFIG_FILE COROSYNC_MAIN_CONFIG_FILE environment variable was quite well hidden and it was never used by init script. It also makes quite hard to debug possible problems. Replace it by -c option. Also patch makes use of configuration file path as a base for uidgid.d directory, so it's no longer needed to keep uidgid.d in sysconfdir. Reviewed-by: Christine Caulfield main: Move sched paramaters to config file The reason for this change is, that number of corosync CLI options kind of exploded and scheduler based one are really beter to be kept in config file. Nice side-effect of this move is better "integration" with systemd, because currently used EnvironmentFile should be really used for environment and not that much for passing extra options to CLI. Reviewed-by: Christine Caulfield 2018-11-07 Jan Friesse configure: move to AC_COMPILE_IFELSE from AC_PREPROC_IFELSE which is strongly discouraged. Our detection system was very weak and recent versions of clang did show that PREPROC_IFELFE (cpp) would enable warning options that the compiler does not support (clang). Use a full compilation test to detect what works and what doesn't. Based on knet patch 88491f27375a9e8aceb946853a1abf4d23ebb8f3. Reviewed-by: Fabio M. Di Nitto 2018-10-29 Jan Friesse logsys: Make hires timestamp default Reviewed-by: Christine Caulfield logsys: Support hires timestamp Reviewed-by: Christine Caulfield totemconfig: Fix logging of freed string Reviewed-by: Christine Caulfield 2018-10-25 Christine Caulfield config: Allow generated nodeis for UDP & UDPU The conversion to the new srp_addr format broke the feature where UDP/UDPU nodes could get their nodeids generated from the IP address. A big part of this was the removal of mandatory ring0_addr - it was used as a placeholder when reading down the nodelist. I replaced this with nodeid thinking that nodeid was now mandatory, forgetting this use case. So the compare on "ring0_addr" or "nodeid" is now replaced with a more robust check that we're only reading keys from the same node_pos once, this was needed in votequorum.c as well as totemconfig.c Another tidying side-effect of this patch is that the nodeid generation is now all in a single routine in totemconfig.c and not shared between it and totemip.c. Reviewed-by: Jan Friesse 2018-10-22 Jan Friesse config example: Migrate to newer syntax Default config is knet with nodelist so extra udpu example is no longer needed. XML variant of corosync config never got expected usage, so delete example config too. Reviewed-by: Christine Caulfield 2018-10-16 Jan Friesse log: Implement support for reopening log files Feature depends on existence of libqb function qb_log_file_reopen. New function call is added into CFG service API. This function is used by corosync-cfgtool which now accepts -L parameter. Finally, logrotate "postrotate" script is calling corosync-cfgtool -L to notify corosync, instead of using copytruncate option. Reviewed-by: Christine Caulfield totemconfig: Replace strcpy by strncpy Formally not needed, because totemip_print should not return string longer than INET6_ADDRSTRLEN, but static analysis tools are not capable of such conclusion. Reviewed-by: Christine Caulfield 2018-10-15 Christine Caulfield config: Fix crash in reload if new interfaces are added This is a bug I seem to have introduced in 429209f4aa3c55504a49833e0004489f241e7819 where we compare links for changes. if a new node was added on an existing link then it was compared against a non-existant one in the previous configuration. We now only compare nodes that are in both interfaces. As I needed min() for this function, I moved it from individual .c files into util.h so we only have one copy. And the error message was fixed. Reviewed-by: Jan Friesse 2018-10-04 Jan Friesse man: Fix default knet_pmtud_interval to match code Reviewed-by: Christine Caulfield 2018-09-27 Jan Friesse build: Remove totempg shared library leftovers Because totempg is not distributed it doesn't make sense to distribute totem header files. Also pkgconfig file should not be created any more. Reviewed-by: Christine Caulfield 2018-09-25 Jan Friesse build: Do not compile totempg as a shared library Instead of compiling totempg as a shared library, compile all totem code directly into corosync binary. Main idea of having totempg which may be used in other projects was nice, but never really finished (and as far as I know no project were ever really using it). So at the end of the day, we've end with huge amount of problems (need to pass new arguments thru X layers, hard debugging, ...) without any real benefit. For a future version, we may consider to revisit idea of split totemsrp into well tested library without unrelated bits like transports/ip/... Reviewed-by: Fabio M. Di Nitto Reviewed-by: Christine Caulfield 2018-09-24 Ferenc Wágner man: Fix typo conains -> contains Reviewed-by: Jan Friesse man: Fix typo connnections -> connections Reviewed-by: Jan Friesse 2018-09-17 Jan Friesse build: Remove NSS dependencies Complete removal of NSS from corosync tree. Most of the changes are in build system and cpgverify had to be rewritten to use crc32 instead of sha1. Reviewed-by: Fabio M. Di Nitto Reviewed-by: Christine Caulfield cts: Remove CTS There are several reasons for removal of CTS: 1. It's not actively maintained 2. It's quite hard to setup 3. It has hard to fix bug in it's design (syslog messages are thrown by rsyslog (configurable), journald (configurable) or when rsyslog is used together with journald (non configurable)) so test can fail just because of lost message. 4. It depends on pacemaker CTS, which is changed quite often 5. CTS itself is great tool for Pacemaker (shutdown/startup of the node), but Corosync has a slightly different needs 6. Bin Liu made a heroic effort to port it to Python 3 (huge thanks), but it's still not fully complete All and all, if somebody is interested in maintaining CTS code, please create repository similar to corosync flatiron cts and let us know. Reviewed-by: Fabio M. Di Nitto Reviewed-by: Christine Caulfield 2018-09-13 Jan Friesse man: Fix crypto_hash and crypto_cipher defaults Reviewed-by: Christine Caulfield 2018-09-07 Jan Friesse coroparse: Fix newly introduced warning Small fix for a problem introduced by "coroparse: Use key_name for error message" patch. 2018-09-07 Chris Walker Add option to force cluster into GATHER state Reviewed-by: Jan Friesse 2018-09-06 Jan Friesse coroparse: Use key_name for error message Reviewed-by: Christine Caulfield coroparse: Add file name and line to error message It's just much easier to find out what is happening when message like parser error: /etc/corosync/corosync.conf:39: Unexpected closing brace is logged instead of parser error: Unexpected closing brace Reviewed-by: Christine Caulfield coroparse: Be more strict in what is parsed Corosync parser is not very clever, but it is able to detect more errors without too much code. 1. Check if section name is not empty (just '{' character) 2. Check if there is no extra characters after opening bracket '{' 3. Check if there is no extra characters after or before closing bracket '}' 4. Check if line is opening section, closing section or key/value So following examples are reported as error: totem { version: 2 }}}}}}}}}} Reviewed-by: Christine Caulfield coroparse: Fix remove_whitespace end condition When remove_whitespace function parameter is single character string with whitespaces (like a:) then colon is not removed. Reason is end condition end != start, which is valid for empty string, but invalid in case described above. Solution is to check if *end is '\0'. Reviewed-by: Christine Caulfield coroparse: Check icmap_set results Reviewed-by: Christine Caulfield coroparse: Return error if config line is too long Reviewed-by: Christine Caulfield 2018-09-05 Jan Friesse notifyd: Propagate error to exit code When it's impossible to dispatch cmap/quorum messages exit code of corosync-notifyd shouldn't be success. Reviewed-by: Christine Caulfield 2018-09-03 Jan Friesse git-version-gen: Fail on UNKNOWN version Reviewed-by: Christine Caulfield build: Support for git archive stored tags Attempt to solve problem with git archive generated tarballs (used for example by github when release is downloaded) which are no longer git tree and (in contrast to officially released tarballs) also doesn't contain .tarball-version file so git-version-gen script simply cannot obtain valid version info. Solution is based on using gitattributes which is instructs git to replace string in the .gitarchivever file by known ref names. git-version-gen is enhanced to support this file and tries to parse any string which looks like "tag: v[0-9]+.[0-9]+.[0-9]". If such string is found it's used as a version. This file is used as a last attempt and other methods (.tarball-version, git abbrev) have precedence. Based on idea stated by Jan Pokorný . Reviewed-by: Christine Caulfield 2018-08-20 Ferenc Wágner man: fix cmap key name runtime.config.totem.token Reviewed-by: Jan Friesse 2018-08-14 Jan Friesse Remove libcgroup Libcgroup is deprecated and not shipping with new distributions (OpenSuSE is one example). Solution is to have a partial implementation of required functionality of libcgroup in the corosync code. Patch uses hardcoded cgroup mount point, because most of the systems are now systemd and systemd is also using hardcoded mountpoint (see https://github.com/systemd/systemd/blob/master/src/core/mount-setup.c) Configuration option --enable-cgroup is gone, because it's not needed any longer. Big thanks to Christine Caulfield for example of simplified implementation of cgroup management code primitives. Reviewed-by: Christine Caulfield 2018-08-14 Jan Pokorný systemd: prevent redundancy in journal Originating from a dual sink (stderr and syslog). Annotated example from "journalctl -b --no-hostname -u corosync": Aug 14 00:27:45 corosync[5203]: [MAIN ] Corosync Cluster Engine ('2.99.3'): started and ready to provide service. ^ from syslog source Aug 14 00:27:45 corosync[5203]: notice [MAIN ] Corosync Cluster Engine ('2.99.3'): started and ready to provide service. ^ from stderr source Reviewed-by: Jan Friesse 2018-08-14 Chris Walker Add token_warning configuration option Token_warning is used to present information about when the token was last received. Reviewed-by: Jan Friesse 2018-08-13 Jan Friesse corosync-notifyd: Rename global local_nodeid To prevent warning in functions where local_nodeid is also passed as local parameter. Reviewed-by: Christine Caulfield totemsrp: Add assert into memb_lowest_in_config Add assert when there are no members in token_memb structure so non-existing member is not accessed (token should always have at least one member). Reviewed-by: Christine Caulfield totemconfig: Enlarge error_string_response ... so error_reason can be fully included into parse error message. Reviewed-by: Christine Caulfield ipc_glue: Fix strncpy in pid_to_name function Trailing zero is always added so there is no need to have a warning about unterminated destination string. Reviewed-by: Christine Caulfield cmap: Fix strncpy warning in cmap_iter_next cmap_iter_next in contrast of it's icmap counterpart copies key name into user preallocated space. In the worst case, key name may be CMAP_KEYNAME_MAXLEN, so cmap_iter_next then need CMAP_KEYNAME_MAXLEN + additional byte to store zero. strncpy was copying only CMAP_KEYNAME_MAXLEN characters so there was possibility of unterminated string. Patch solves this by using memcpy and always add trailing zero. Documentation was improved suggesting minimum size of keyname buffer to be CMAP_KEYNAME_MAXLEN + 1. Also sam and quorumtool were using too short buffer so they are fixed too. Reviewed-by: Christine Caulfield util: Fix strncpy in setcs_name_t function Trailing zero is always added so there is no need to have a warning about unterminated destination string. Reviewed-by: Christine Caulfield totemknet: Free instance on failure exit Reviewed-by: Christine Caulfield 2018-08-09 Jan Friesse spec: Add explicit gcc build requirement Also remove %clean macro which is not needed for ages. 2018-08-09 Chris Walker Add option for quiet operation to corosync-cmapctl Reviewed-by: Jan Friesse 2018-07-12 Jan Friesse totemudpu: Pass correct paramto totemip_nosigpipe Fixes compilation on (at least) FreeBSD. 2018-07-12 Bin Liu totemudpu: Add local loop support This patch intends to solve long time ifdown corosync problem. Idea is to use local socket for sending both unicast and multicast messages if interface is down. Together with testing what is current bind state it's possible to keep pretending existence of old IP address instead of rebinding to localhost what breaks a lot things badly. Heavilly based on Yu, Zou work and it's basically port of UDP patch created by Jan Friesse . (ported from needle 96354fba72b7e7065610f37df0c0547b1e93ad51) Reviewed-by: Jan Friesse 2018-07-03 Christine Caulfield config: Fail config validation if not all nodes have all links KNET requires that all links be full-mesh (this may change in the future but almost certainly not before knet 2.0), so enforce this in the config. Also avoid a potential div-by-0 error if the local node is not fully configured either. Reviewed-by: Jan Friesse config: Enforce use of 'name' node attribute in multi-link clusters If the local host does not have a 'name' attribute and the cluster has more than one link then fail the validation test. I'm open to the idea of checking all of the nodes in the nodelist if necessary. It seems overkill as each node will check its own entry though. Reviewed-by: Jan Friesse 2018-07-02 Christine Caulfield totemconfig: Check for things that cannot be changed on the fly There are a few things in the interface that cannot be changed on the fly. Warn about them and tell the user that these things need to be done in two steps and why. Reviewed-by: Jan Friesse 2018-07-02 Jan Friesse Fix snprintf warnings Compiler shows warnings about possible not large enough buffer, so check snprintf return value properly. Reviewed-by: Christine Caulfield init: Use existing env variable from sysconf Reviewed-by: Christine Caulfield upstart: Remove notifyd upstart unit Hopefully this is last upstart bit. Reviewed-by: Christine Caulfield 2018-07-02 Christine Caulfield knet: Don't try to create loopback interface twice It wasn't hardmful, but it generated an annoying message Reviewed-by: Jan Friesse knet: Fix knet log buffer size knet sends log messages as struct knet_log_msg, not a string of KNET_MAX_LOG_MSG_SIZE (which is only part of that structure). So we were both losing and corrupting messages. Reviewed-by: Jan Friesse 2018-04-30 Jan Friesse cpg: Inform clients about left nodes during pause Patch tries to fix incorrect behaviour during following test-case: - 3 nodes - Node 1 is paused - Node 2 and 3 detects node 1 as failed and informs CPG clients - Node 1 is unpaused - Node 1 clients are informed about new membership, but not about Node 1 being paused, so from Node 1 point-of-view, Node 2 and 3 failure Solution is to: - Remove downlist master choose and always choose local node downlist. For Node 1 in example above, downlist contains Node 2 and 3. - Keep code which informs clients about left nodes - Use joinlist as a authoritative source of nodes/clients which exists in membership This patch doesn't break backwards compatibility. I've walked thru all the patches which changed behavior of cpg to ensure patch does not break CPG behavior. Most important were: - 058f50314cd20abe67f5e8fb3c029a63b0e10cdc - Base. Code was significantly changed to handle double free by split group_info into two structures cpg_pd (local node clients) and process_info (all clients). Joinlist was - 97c28ea756cdf59316b2f609103122cc678329bd - This patch removed confchg_fn and made CPG sync correct - feff0e8542463773207a3b2c1f6004afba1f58d5 - I've tested described behavior without any issues - 6bbbfcb6b4af72cf35ab9fdb4412fa6c6bdacc12 - Added idea of using heuristics to choose same downlist on all nodes. Sadly this idea was beginning of the problems described in 040fda8872a4a20340d73fa1c240b86afb2489f8, ac1d79ea7c14997353427e962865781d0836d9fa, 559d4083ed8355fe83f275e53b9c8f52a91694b2, 02c5dffa5bb8579c223006fa1587de9ba7409a3d, 64d0e5ace025cc929e42896c5d6beb3ef75b8244 and b55f32fe2e1538db33a1ec584b67744c724328c6 - 02c5dffa5bb8579c223006fa1587de9ba7409a3d - Made joinlist as authoritative source of nodes/clients but left downlist_master_choose as a source of information about left nodes Long story made short. This patch basically reverts idea of using heuristics to choose same downlist on all nodes. (ported from needle 9c2a97f4f96b9639d07e2a9fe378c28ab1963191) Reviewed-by: Christine Caulfield 2018-04-25 Chris Lamb man: Make the manpages reproducible Whilst working on the Reproducible Builds effort [0], we noticed that corosync could not be built reproducibly. This is because, whilst it uses SOURCE_DATE_EPOCH[1], the output varies depending on the current timezone. (The LC_ALL is not needed as we only use %Y-%m-%d) This was originally filed in Debian as #896441. [0] https://reproducible-builds.org/ [1] https://reproducible-builds.org/specs/source-date-epoch/ [2] https://bugs.debian.org/896441 Reviewed-by: Jan Friesse 2018-04-23 Jan Friesse totemsrp: Fix leave message regression Leave message in totem is just join message where leaving member is excluded from member list and included in fail list. It also contains special nodeid in header.nodeid and system_from.nodeid fields. Before "totem: Use nodeid ONLY in srp_addr" fix, most of the functions were using system_from addresses and not nodeid, which was used only in one specific case for memb_consensus_set function. After the patch, addresses are gone and only nodeid is used. Result is, that leaving node nodeid is not added into local fail list (my_faillist) so node is unable to reach consensus till token timeout, which starts new gather process. Solution is to send valid leaving node nodeid in system_from.nodeid and handle specific case for memb_consensus_set in memb_join_process. Reviewed-by: Christine Caulfield totemsrp: Log proc/fail lists in memb_join_process These information are useful and with trace log level they should not be too much irritating. Reviewed-by: Christine Caulfield totemsrp: Fix srp_addr_compare There is regression caused by "totem: Use nodeid ONLY in srp_addr" patch in srp_addr_compare function. This function should be usable with qsort, so it should return values less than, equal to or greater than zero. It was however returning only zero or negation of a zero. Final results were unable to reach consensus in following test case: - 3 node cluster - start nodes 1, 2, 3 - shutdown node 3 - start node 3 - shutdown node 2 - start node 2 - shutdown node 1 After this steps, node 2 and 3 were unable to reach consensus. Reviewed-by: Christine Caulfield 2018-04-23 Ferenc Wágner tools: don't distribute what we can easily make Reviewed-by: Jan Friesse 2018-04-23 Fabio M. Di Nitto Drop all references to SECURITY file File was removed by 6bdf0962ad035ac659bcbf36a918fe39931ed75d. Patch fixes master branch build again. Reviewed-by: Jan Friesse 2018-04-20 Jan Friesse SECURITY: Remove SECURITY file Basically no information from SECURITY file is valid. Library interface and related uidgid are better described in manpages. LibNSS is not directly used any longer. Reviewed-by: Christine Caulfield 2018-04-20 Ferenc Wágner NSS_NoDB_Init: the parameter is reserved, must be NULL Reviewed-by: Jan Friesse Fix typo: defualt -> default Reviewed-by: Jan Friesse Fix typo: sucesfully -> successfully Reviewed-by: Jan Friesse 2018-04-12 Jan Friesse totemsrp: Check join and leave msg length If number of proc_list, failed_list or active members is too high it may be impossible to put them into message, which is allocated on the stack what results in stack corruption. Reviewed-by: Christine Caulfield totemsrp: Implement sanity checks of received msgs Sanity checkers are used to prevent crashing because of accessing unallocated memory. Reviewed-by: Christine Caulfield 2018-04-11 Rytis KarpuÅ¡ka cpg: Handle fragmented message sending interrupt It turns out that there are some legitimate cases where fragmented messages might be interrupted during sending (e.g. CS_ERR_TRY_AGAIN or as in my case: CS_ERR_INTERRUPT). This creates a situation where LIBCPG_PARTIAL_FIRST is sent multiple times before receiving LIBCPG_PARTIAL_LAST. Solution is to drop incomplete message and start assembly of new message as libcpg should have reported error during sending of that incomplete message. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2018-03-16 Jan Friesse totem: Display IP of sender To make finding victim of incompatible messages easier, IP of sender is logged. Propagating IP in layers makes patch slightly larger. Reviewed-by: Christine Caulfield totemsrp: Add magic and version into header Magic number (0xC070) together with version in every packet is used for detecting that other node is really Corosync 3.x. Endian_detector field is removed and magic number is now used instead. If received packet magic number differs, guessing is used to show more about the source (Corosync 2.3+, 2.2 are quite reliable, Knet and unencrypted Corosync 2.1/2.0/1.x/OpenAIS are semi-reliable and encrypted Corosync 2.1/2.0/1.x/OpenAIS are quite unreliable). Reviewed-by: Christine Caulfield 2018-03-16 Christine Caulfield knet: Fix display of links with unconfigured link0 because totemknet always configures link0 as loopback even if it's not known to corosync, we need to filter it out when returning the link status, as things get misaligned in cfg. Reviewed-by: Jan Friesse 2018-03-02 Jan Friesse main: Set errno before calling of strtol Reviewed-by: Christine Caulfield quorumtool: Don't set our_flags without v_handle Reviewed-by: Christine Caulfield sam_test_agent: Remove unused assignment Reviewed-by: Christine Caulfield blackbox: Quote subshell result properly Reviewed-by: Christine Caulfield init: Quote subshell result properly Reviewed-by: Christine Caulfield 2018-03-01 Christine Caulfield cfgtool: Don't assume link ID is a single char For the moment link-ids are a single digit, but that could change and the tools shouldn't be quite so fragile. So parse the interface_name properly by looking for the space between the linkID and the IP. Reviewed-by: Jan Friesse knet: Always use link0 for loopback Even if it's not used for anything else. Also, make cfgtool show the correct link ID when links are not contiguous Reviewed-by: Jan Friesse totem: Fix debug warnings printed by knet Fix crash introduced a couple of commits ago in iface_get Reviewed-by: Jan Friesse config: Allow use of ring0_addr Allow ring0_addr to be used in place of 'name' for backwards compatibility Reviewed-by: Jan Friesse config: Update message when local host isn't found Make the message more representative of what's going on. Reviewed-by: Jan Friesse cfg: Fix cfg_get_node_addrs so that DLM works Also update copyright dates Reviewed-by: Jan Friesse totem: Return interface count correctly Reviewed-by: Jan Friesse totem: Use nodeid ONLY in srp_addr This shrinks the srp_addr (and consequently every packet sent by corosync) so that instead of containing loads of IP addresses to identify a node, it just sends the nodeid. This then allows us to make ring0 optional and replaceable when running knet. It also means that we need some other way of identifying the local node in corosync.conf, so the nodelist.node.name entry is now mandatory and is mapped to the local host using the same algorithm as used in cman. This code needs LOTS of testing as it touches a huge amount of totemsrp and totemconfig. Reviewed-by: Jan Friesse 2018-02-14 Fabio M. Di Nitto [rpm] use rpm macros to identify build distro thanks Honza for spotting it Reviewed-by: Jan Friesse [rpm] fixup corosync.spec.in to build on opensuse - move dbus-devel and nss-devel BuildRequires to file based depedency. Those 2 BR have different names in OpenSUSE vs Fedora/RHEL/Centos. This is kind of controversial as most distribution prefers a package based build depedency, but the rpm version that supports BuildRequires: foo || bar is only available in rawhide and tumbleweed (aka no stable releases are shipping it yet). In order to build rpms in CI and have some level of flexibility with upstream spec file, we need to compromise a bit. - add explicit --docdir OpenSUSE does not ship docs in the normal dir and their rpm macro does not appear to set it for us. Reviewed-by: Jan Friesse 2018-02-09 Rytis KarpuÅ¡ka totempg: Fix corrupted messages Commit 899cb299831fea479ca8bc64d99fb1fce215d795 changed copy_len to iovec[i].iov_len, assuming, copy_len is always the same as iovec[i].iov_len under those circumstances, but it missed the possability of small message being partly put at the end of packet, which cuts this message in two parts and therefore making copy_len not equal to iovec[i].iov_len. This is revert of 899cb299831fea479ca8bc64d99fb1fce215d795 Reviewed-by: Jan Friesse 2018-02-08 Rytis KarpuÅ¡ka totempg: use iovec[i].iov_len instead of copy_len To be more explicit that we are copying whole message. Related to 0ebae6b47d39940c62dcbd9185b9af2f265a47ff. Reviewed-by: Jan Friesse totempg: Fix fragmentation segfault The problem was that two or more messages were concatenated together during fragmentation in mcast_msg() function. In specific case, message of just short of 1MB was provided for mcast_msg() and it happened so, that the remainder (212 bytes to be exact) left some free space in packet, therefore branch if ((copy_len + fragment_size) < (max_packet_size - sizeof (unsigned short))) { ... was selected and this was the last mesage in provided iovec. Then, on the second call, came another big message (about 300KB ) and during fragmentation mcast.fragmented was set to 1. On the other end, while receiving messages, due to missing mcast.fragmentation==0 those two messages were concatenated and therefore assembly->data array overflowed overwriting linked list pointers and offset (which happened to be set to 0 and that 300KB message was being copied from the beginning again). After whole 300KB message has been sent, mcast.fragmentation==0 arrived and totempg_deliver_fn() tried to move assembly structure to assembly_list_free list, but as linked list pointers has been overriden, segfault occured. Reviewed-by: Jan Friesse 2018-02-05 Fabio M. Di Nitto [build] fix build with non-standard knet location Reviewed-by: Jan Friesse [man] fix regression introduced by 7162e75dcf81b7e475536e3060bf5e9312cd43b8 2018-01-30 Christoph Berg Man: Move overview mp to sections 3 and 7 from 8 The _overview manpages are not actually commands and hence do not belong into manpage section 8. Move corosync_overview to section 7 ("Miscellaneous") and the other *_overview pages to section 3 as they contain API documentation (cf. string(3) for precedence of multi-function manpages). Reviewed-by: Jan Friesse 2018-01-30 Jan Friesse logging: Close before and open blackbox after fork Reviewed-by: Christine Caulfield logging: Make blackbox configurable Reviewed-by: Christine Caulfield 2018-01-26 Andrey Ter-Zakhariants corosync-notifyd: improve error handling Better handling of errors in _cs_cmap_members_key_changed(). Reviewed-by: Jan Friesse 2018-01-25 Jan Friesse spec: Modernize spec to comply with newest Fedora Reviewed-by: Christine Caulfield build: Remove support for upstart Upstart files were already mostly removed but not from spec file and configure.ac. Reviewed-by: Christine Caulfield build: Replace -lknet with autoconf generated vars Reviewed-by: Christine Caulfield build: Remove rdma/ibverbs Reviewed-by: Christine Caulfield qdevice: Remove qdevices corosync-qdevice and corosync-qnetd now has a new home https://github.com/corosync/corosync-qdevice This will allow us to better react on actual needs of quite independent projects. Reviewed-by: Christine Caulfield 2018-01-18 Christine Caulfield config: Don't fudge port numbers When I was adding knet I wanted the port numbers to default to the base port number + the linknumber. However I seem to have messed this up such that any port number specified in the config file has the link number added to it. Which is almost certainly not what people would expect. This patch sets it right. If a port number is not specified then 5405+linknumber is used. If a port number IS specified then that actual number is used. Reviewed-by: Jan Friesse 2018-01-15 Christine Caulfield knet: Allow ping_timers to be auto-configured knet ping_timers are auto-configured according to token value. This patch also fixes some knet config bugs that resulted in defaults not being applied when values were removed from corosync.conf. Reviewed-by: Jan Friesse 2018-01-15 Bin Liu cts: Make code compatible with Python 3 Reviewed-by: Jan Friesse corosync-notifyd: make SNMP work again rrp_faulty_fn in notify_callbacks no longer exists, and now become link_faulty_fn, and also link_faulty_fn needs 5 arguments while rrp_faulty_fn needs 4. Reviewed-by: Jan Friesse 2018-01-11 yuskiida build: Add the headers necessary for RPM build Reviewed-by: Jan Friesse 2018-01-09 Christine Caulfield config: if local node addr is wrong, fail with a sensible message If no valid local address is found in corosync.conf then corosync exits with: "parse error in config: No multicast port specified" This is because of the config change for knet that always populates the interfaces. The old error of "no interfaces found" was only slightly better anyway IMHO. This patch adds an explicit check that local_node_pos has been set in icmap and uses that to determine if a valid local address has been found. Reviewed-by: Jan Friesse 2018-01-09 Jan Friesse totemknet: Drop truncated packets on receive This is backport of part of "totemudpu: Scale receive buffer" patch. Reviewed-by: Christine Caulfield totemudp: Make use of UDP_RECEIVE_FRAME_SIZE_MAX Reviewed-by: Christine Caulfield totemudpu: Export and rename UDPU_FRAME_SIZE_MAX Reviewed-by: Christine Caulfield totemconfig: Fix UDP autogeneration of mcast addr Reviewed-by: Christine Caulfield totemudpu: Scale receive buffer Receive buffer should be based on PROCESSOR_COUNT_MAX and not static buffer. Reviewed-by: Christine Caulfield 2018-01-05 Christine Caulfield config: Allow selection of crypto_model KNET has options for nss or openssl crpyto libraries, make this available to corosync. Reviewed-by: Jan Friesse 2018-01-04 Rytis KarpuÅ¡ka libcpg: Fix issue with partial big packet assembly Packet assembly is done seperately for each nodeid, pid pair, therefore multiple packets are not mixed into single buffer. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2018-01-02 Bin Liu qdevice: mv free(str) after port validation in the previous code of qdevice_net_instance_init_from_cmap: host_port = strtol(str, &ep, 10); free(str); if (host_port <= 0 || host_port > ((uint16_t)~0) || *ep != '\0') before free, *ep is '\0'. But after free, *ep changed to 'U', so mv free behind the comparison. Reviewed-by: Jan Friesse 2017-12-22 Toki Winter corosync.aug: Add missing options Knet related options are not yet included. Reviewed-by: Jan Friesse 2017-12-22 Christine Caulfield config: Allow links to have different ip_versions knet allows links to have different IP versions - proivided they all match per link. So don't force them all to be the same. I've added a check here to make sure that all nodes on the same link are using the same IP version. Reviewed-by: Jan Friesse 2017-12-05 Bin Liu Fix compile errors in qdevice and vqsim on FreeBSD Some header files need to be specified on FreeBSD, otherwise there are compile errors. These files does not affect Linux compilation. Reviewed-by: Jan Friesse 2017-12-01 Christine Caulfield cmapctl: mention the Clear stats option in usage message Reviewed-by: Jan Friesse 2017-12-01 Bin Liu corosync-cfgtool: refactor cli parameters handling use the idea from corosync-cmapctl to set ACTION and params in the first swtich, and add another swtich to call function based on ACTION and the params. Reviewed-by: Jan Friesse wd: fix snprintf warnings When running ./configure --enable-watchdog, gcc 7.2.1 will report warnings for snprintf. This patch fixes the warnings. Reviewed-by: Jan Friesse 2017-11-30 Christine Caulfield totemsrp: Revert totemsrp_get_ifaces() changes In my enthusiasm for removing code while integrating knet I also deleted the correct code for returning IP address for a node, so that only the IP addres of the local node was ever returned. This commit restores the the previous code. Also, because we always return INTERFACE_MAX interfaces now (they don't have to be contiguous) set ss_family to zero if that interface is not in use so that downstream apps know and don't display a lot of 0.0.0.0 Reviewed-by: Jan Friesse 2017-11-30 Jan Friesse man: Add note about corosync not using name option 2017-11-30 Jan Pokorný corosync.conf: publicize nodelist.node.name It was discovered that pacemaker has been occassionaly relying on those items configured in corosync.conf (and documenting so), while backpropagation got stuck somewhere. As the option is deemed generally beneficial, rectify this gap now and make it standard, public part of the configuration space, possibly also for other client SW to use now. Reviewed-by: Jan Friesse 2017-11-29 Bin Liu man: fixes for corosync.conf man page 1. multicast address/port is only for UDP 2. change kronosnet to Kronosnet 3. nodeid must be set with KNET, not UDPU Reviewed-by: Jan Friesse cmapctl: add "-m" option into help message Reviewed-by: Jan Friesse totemconfig: remove duplicate aes256 test Reviewed-by: Jan Friesse 2017-11-27 Bin Liu fix output format for corosync-cfgtool with knet (#283) Reviewed-by: Christine Caulfield 2017-11-16 Jan Friesse sync: Call sync_init of all services at once This patch solves situation which can happen very rearly: - Node B is running - Node A is started and tries to create singleton membership. It also initialize service S which tries to send message during initialization - Just before node A finished move to operational state, it gets Node B multicast message so moves to gather state - Node A and B creates membership and moves to operational state and sync is started - Node A and B receives message sent by node A during initialization of service S - Node A exits before sync of service is finished In this situation, node B may never execute sync_init for service S. So node B service S is not aware of existence of node A but it received message from it. Similar situation can theoretically also happen during merge. Solution is to change flow of sync, so now it looks like: - Build service_list - Call sync_init for all local services - Send service_list - Receive service_list from all members and send barier - For all services: - Receive barier - Call sync_activate if this is not first service - Call sync_process for next service or finish sync if previous this service is the last one - Send barier Reviewed-by: Christine Caulfield sync: Remove unneeded determine sync code Code was used for compatibility with old sync v1 (in needle this was deleted and previous version 2 became v1), and it's no longer needed. Reviewed-by: Christine Caulfield 2017-11-16 Christine Caulfield stats: Add some missing knet stats Reviewed-by: Jan Friesse 2017-11-14 Jan Friesse man: Add note about qdevice parallel cmds start 2017-11-14 Jan Pokorný man: corosync-qdevice: some more stylistics Following the well-used scheme: - expressly given defaults: italics (underline in standard terminals) - key cross-references: bold (as well as the originals) + fix missing paragraph delimiters + s/what/which/ and s/on/one/ where appropriate Reviewed-by: Jan Friesse 2017-11-10 Ferenc Wágner systemd: corosync-qdevice can not run without corosync Reviewed-by: Jan Friesse 2017-11-09 Jan Pokorný man: corosync-qdevice: fix formatting vs. punctuation Previously, some enumerations were hard to follow, as they were marked up all at once, including punctuation and connectives. Also mark up some expressly given defaults. Reviewed-by: Jan Friesse 2017-11-09 Ferenc Wágner configure: kill off INITWRAPPERSDIR When configured for systemd, don't install the SysV init scripts at all. Reviewed-by: Jan Friesse corosync-qdevice: send startup notification to systemd Reviewed-by: Jan Friesse corosync-qnetd: send startup notification to systemd Reviewed-by: Jan Friesse Send corosync-notifyd startup notification to systemd Reviewed-by: Jan Friesse Make systemd stop corosync-notifyd if corosync is stopped Otherwise is just exits successfully (which should probably be fixed eventually), leading to confusion. Reviewed-by: Jan Friesse 2017-11-09 Jan Friesse corosync.spec: Add system-devel build requirement Reviewed-by: Ferenc Wágner 2017-11-09 Ferenc Wágner Send corosync startup notification to systemd This enables starting the daemon directly in the service file, because dependent units won't be started until initialization is complete. Reviewed-by: Jan Friesse 2017-11-08 Jan Friesse quorumtool: Use full buffer size in snprintf Thanks Bin Liu for this patch. Reviewed-by: Christine Caulfield cpghum: Mark print/log functions with printf attr Reviewed-by: Christine Caulfield cpg_test_agent: Fix snprintf compiler warnings Reviewed-by: Christine Caulfield sam: Fix snprintf compiler warnings Reviewed-by: Christine Caulfield 2017-11-06 Jan Friesse coroparse: Do not convert empty uid, gid to 0 When uid (or gid) value was empty string it was incorrectly converted to 0. Solution is to check input string emptines. Thanks Bin Liu for reporting the bug. Reviewed-by: Bin Liu 2017-11-03 Christine Caulfield cmapctl: Add option to clear the stats Reviewed-by: Jan Friesse stats: Don't display errors when reading knet stat Only add the knet handle stat keys if we are actually running knet. This prevents errors occurring when iterating through all of the stats keys Reviewed-by: Jan Friesse 2017-11-03 Bin Liu make the output of "corosync-cfgtool -s" more readable (#269) 2017-11-01 Bin Liu cfg: nodeid should be unsigned int nodeid in struct req_lib_cfg_get_node_addrs is "unsigned int", so the function corosync_cfg_get_node_addrs should have its param "nodeid" to be unsigned int. Reviewed-by: Jan Friesse quorumtool: remove duplicated help message Option "-p" was included twice, so remove one of them. Reviewed-by: Jan Friesse 2017-11-01 Jonathan Davies man: fix cpg_mcast_joined.3.in Reviewed-by: Jan Friesse 2017-10-31 Christine Caulfield man: Add stats.clear keys to the cmap_keys man pg Reviewed-by: Jan Friesse stats: Add cmap key to clear the various stats. Reviewed-by: Jan Friesse 2017-10-31 Ferenc Wágner Use RuntimeDirectory instead of tmpfiles.d This reverts part of commit 32123f6bb2ebc4f9ac7865945cc85a9c9b903dc6. A simple directive is a much lighter solution to the same problem, and automatically follows the specified User. I copied the 0770 modes from the corresponding init scripts; they could use a little documentation. Reviewed-by: Jan Friesse 2017-10-30 Bin Liu totemconfig: generate mcast icmap items for UDP Generating mcastaddr and mcastport in icmap make sense only for UDP transport. Reviewed-by: Jan Friesse 2017-10-30 Ferenc Wágner Use static case blocks to determine distro flavor This is a configure-time decision, avoid live filesystem checks. Reviewed-by: Jan Friesse configure: add --with-initconfigdir option Default value is /etc/sysconfig and resulting INITCONFIGDIR is used to reduce duplication in init system integration code. Reviewed-by: Jan Friesse 2017-10-30 Bin Liu totemconfig: add nodeid check for knet Reviewed-by: Jan Friesse 2017-10-25 Ferenc Wágner man: support SOURCE_DATE_EPOCH Make reproducible builds possible by supporting https://reproducible-builds.org/specs/source-date-epoch/ Reviewed-by: Jan Friesse 2017-10-25 Bin Liu man:fix in corosync-qdevice.8 Reviewed-by: Jan Friesse 2017-10-24 Bin Liu man: must set nodeid for knet in nodelist Reviewed-by: Jan Friesse 2017-10-23 Jan Pokorný logsys: Avoid redundant callsite section checking Previously, corosync executable was repeatedly (proportionally to the count of LOGSYS_DECLARE_SUBSYS macro applications involved in the constituent source files) checking the same for no gain in the pre-main startup. This is not needed since nothing changes with static data shared withing the same program space (it may have been a different story once upon a time if loadable modules were in use), so make that happen in (one-off per executable) LOGSYS_DECLARE_SYSTEM instead. Libqb offers it's own ready-made macro to that effect, simply to isolate the inner percularities from the library user (that should not be required to understand anything about the orphan sections and respective autocreated symbols to denote their boundaries). As it is compile-time conditionalized in the same way, just use it directly instead. As a value added, corosync will be kept up to date about the possibly growing set of the logging-sanity checks as it gets compiled with newer and newer libqb versions (their header files, for that matter). Reviewed-by: Jan Friesse 2017-10-23 Christine Caulfield config: Fix memory leak totem_volatile_config_set_string_value was not properly freeing memory. Reviewed-by: Jan Friesse knet: Add support for knet compression Reviewed-by: Jan Friesse 2017-10-20 Jan Friesse qdevice: Add support for heuristics Heuristics are set of commands executed locally on startup, cluster membership change, successful connect to corosync-qnetd and optionally also at regular times. When all commands finish successfully (their return error code is zero) on time, heuristics have passed, otherwise they have failed. The heuristics result is sent to corosync-qnetd and there it's used in calculations to determine which partition should be quorate. Right know, there are some problems (bugs): - Regular heuristics is supported only by ffsplit. This is not a problem for clusters with power fencing, but deployments where non-quorate partition continues to operate may see this as a problem. - Qdevice-tool status doesn't contain detailed information about heuristics. - Qdevice-tool doesn't have a possibility to trigger heuristics re-execute. Thanks Chrissie Caulfield for Englishify the man pages. Reviewed-by: Christine Caulfield 2017-10-18 Keisuke MORI Spec: fix arch-qualified dependencies needed along with commit 30af25294e019678c4f31e3368b19266f69b8254 Reviewed-by: Jan Friesse 2017-10-11 Jan Friesse cmap: Remove noop highest config version check 2017-10-11 Jonathan Davies cmap: don't shutdown highest config_version node Scenario: 1. node A starts corosync with config_version = 2, nodelist = {A, B} 2. node B starts corosync with config_version = 1, nodelist = {A, B} corosync.conf(5) says the config_version option is "used to prevent joining old nodes with not up-to-date configuration." So expected outcome is: * corosync on node A remains alive * corosync on node B exits Actual outcome is: * corosync on node A exits * corosync on node B exits Explanation of actual behaviour: * Host A will have cmap_my_config_version = 2 but cmap_highest_config_version_received = 1, so will shutdown in cmap_sync_activate because these are not equal. * Host B will have cmap_my_config_version = 1 but cmap_highest_config_version_received = 2, so will shutdown in cmap_sync_activate because these are not equal. Instead, node A should consider its own config_version in the calculation of the highest config_version, i.e. cmap_highest_config_version_received = 2, and so not shutdown in cmap_sync_activate. Reviewed-by: Jan Friesse 2017-10-02 Kazunori INOUE totemudp: Remove memb_join discarding This is already implemented in totemsrp in much cleaner way (added by commit ab8942f6260fde93824ed2a18e09e572b59ceb25). Reviewed-by: Jan Friesse 2017-09-26 Edwin Torok votequorum: make atb consistent on nodelist reload When the cluster changes from even sized to odd sized corosync disables auto-tie-breaker if wait_for_all is not enabled. However when changing from odd sized to even sized it doesn't reenable it, causing auto_tie_breaker to be inconsistent across the cluster: the newly added node and any nodes that restart corosync will have it, but all the previously running nodes won't. Reviewed-by: Jan Friesse 2017-09-22 Fabio M. Di Nitto totem: Remove unnecessary NSS headers Also fix corosync.spec.in to depend on libknet. Reviewed-by: Jan Friesse 2017-09-21 Christine Caulfield config: Allow dynamic link configuration Now we are using knet, it's possible to dynamically add, remove and reconfigure links on the fly. Also print 'n' for non-existant knet links. This will show up only on loopback links >0. But it looks better than 'status =' Reviewed-by: Jan Friesse 2017-09-19 Masse Nicolas totemudp: Retry if bind fails If bind call fails it's retried for BIND_MAX_RETRIES. If it's still unsuccessful, corosync exists instead of working incorrectly. Slightly modified by reviewer. Reviewed-by: Jan Friesse 2017-09-14 Ferenc Wágner corosync.conf.5: watchdog support is conditional Reviewed-by: Jan Friesse wd: default to not using a watchdog Reviewed-by: Jan Friesse 2017-09-12 Ferenc Wágner wd: remove extra capitalization typo Reviewed-by: Jan Friesse corosync.conf.5: add warning about slow watchdogs Reviewed-by: Jan Friesse 2017-09-11 Jonathan Davies totemknet: fix debug message typo Reviewed-by: Jan Friesse 2017-09-11 Ferenc Wágner corosync.conf.5: Fix watchdog documentation Reviewed-by: Jan Friesse wd: fix typo Reviewed-by: Jan Friesse 2017-08-31 Khem Raj Include fcntl.h for F_* and O_* defines Fixes errors like utils.c:95:22: error: use of undeclared identifier 'O_WRONLY' Reviewed-by: Jan Friesse 2017-08-23 Christine Caulfield stats: add knet 'handle' stats knet handle stats show compression and crypto statistics. With these you can see the effectiveness of compression and the overheads of both crypto and compression. Reviewed-by: Jan Friesse 2017-08-22 Christine Caulfield main: use syslog & printf directly for early log messages libqb seems funny about logging things before its fully configured. This corosync commit didn't help either: 8b6bd86a55b8bda9f3a8ff67bdff908263976fa3 So to make sure that messages about the config file not being opened get delivered to the user/syslog we send them directly. Reviewed-by: Jan Friesse 2017-08-14 Christine Caulfield totempg: Allow space for incoming overflow totempg needs to store the current message + any overflow for the next message which can be up to (nearly) the MTU size. in knet that's large, but for UDP it's just 1500. The reason we've never seen it before is because the actual max message size is 1024 less than 1MB and after all the headers are stripped out the overflow is usually 1024 bytes or less. The 1024*1024 size of the assembly buffer is large enough to hold a max message (1047552) + 1024 bytes of a new UDP message. So we never saw any problems. Reviewed-by: Jan Friesse 2017-08-11 Chrissie Caulfield cpghum: Add options to change flood start/mult/end sizes (#237) I ran out of sensible short options for cpghum so added some long ones to cope with them. Also added is the ability to specify most size values in a sensible format eg 64M for 64 Megabytes or 48K for 48 Kilobytes. Strictly those are MiB and KiB of course, but I'm old-fashioned. 2017-08-04 Chrissie Caulfield totemknet: Use knet's LOOPBACK transport (#236) knet now has a built-in LOOPBACK transport so use that rather than special-casing it for ourself. 2017-08-03 Christine Caulfield CFG: Remove ring-reenable code RRP doesn't exist any more so all the ring re-enable code is redundant. I've removed it from the library and all the code that does anything, but I've left the hole in the IPC just in case old libraries are hanging around. Reviewed-by: Jan Friesse 2017-08-01 Jan Friesse main: Add support for libcgroup When corosync is started in environment where it ends in cgroup without properly set rt_runtime_us it's impossible to get RT priority. Already implemented workaround is to use higher non-RT priority. This patch implements another solution. It moves corosync into root cpu cgroup. Root cpu cgroup hopefully has enough RT budget. Another solution was mentioned on ML https://lists.freedesktop.org/archives/systemd-devel/2017-July/039353.html but this means to generate some "random" values. Reviewed-by: Fabio M. Di Nitto Reviewed-by: Christine Caulfield (cherry picked from commit c56086c701d08fc17cf6d8ef603caf505a4021b7) 2017-07-27 Christine Caulfield stats: Add map with on-demand statistics Icmap is factored out so it's possible to add other maps for cmap. API call to switch maps from application end is added. Corosync-cmapctl is enhanced with -m option. Stats contains all statistics previously found in runtime.connections, runtime.services and runtime.totem prefixes together with new knet related. All stats are read only. Reviewed-by: Jan Friesse 2017-07-14 Christine Caulfield ipc: Check for the libraries sending invalid message IDs If the library sent an invalid (ie too high) message ID to corosync, then it could cause the daemon to crash. Now we check the message ID before indexing the function array Reviewed-by: Jan Friesse 2017-07-10 Jan Friesse main: Add option to set priority Option -P takes numeric value with same meaning as nice or values min / max, meaning maximal / minimal priority (so minimal / maximal nice value). Scheduler / priority setting is moved in code so it is now executed after logsys is configured so errors are logged. Setting maximal priority is also used as fallback when realtime scheduling is requested and sched_setscheduler fails. Reviewed-by: Christine Caulfield (cherry picked from commit a008448efb2b1d45c432867caf08f0bcf2b4b9b0) 2017-07-03 Jan Friesse totemknet: Prevent dead-loop in log_flush_messages corosync-keygen: Display number of needed bits Instead of currently read bits, number of already read bits is displayed to let the user know how long it's needed to "press keys" Reviewed-by: Christine Caulfield totemknet: Flush knet log messages When initialization fails knet logs messages into pipe. Previously they were never processed. Solution is to add log_flush_messages which takes care to call log_deliver_fn. Call of log_flush_messages is also added to totemknet_finalize because this removes log pipe fd from qb_loop so similar problem can happen. Reviewed-by: Christine Caulfield corosync-keygen: Make less-secure default /dev/urandom is good enough for crypto keys and it's not blocking. If superb randomness is really needed, it's possible to use newly added option -r. Also manpage is reworked a bit to use .nf instead of many .br. Reviewed-by: Christine Caulfield corosync-keygen: Adapt to knet key sizes Reviewed-by: Christine Caulfield totemconfig: Make crypto work again Knet needs longer key and supports various key lengths. Split TOTEM_PRIVATE_KEY_LEN into TOTEM_PRIVATE_KEY_LEN_MIN and TOTEM_PRIVATE_KEY_LEN_MAX (both using KNET_*_KEY_LEN). Fix incorrect "Could only read..." message. Make sure key is properly initialized/zeroed. Reviewed-by: Christine Caulfield 2017-06-29 Christine Caulfield knet: Compile with latest knet API extra parameter added to knet_link_get_status() 2017-06-15 Jan Friesse totem: Propagate totem initialization failure Reviewed-by: Christine Caulfield 2017-06-09 Christine Caulfield totemknet: Use new knet_link_set_config() API TC_PRIO_INTERACTIVE is now a link option in knet, so we have to provide it at link config time. This needs the latest knet git to compile as this is an updated API. 2017-05-29 Michael Jones coroapi: Use size_t for private_data_size Unsigned int and size_t represent two different concepts. Same problem was present in ipc_glue. Reviewed-by: Jan Friesse 2017-05-26 Christine Caulfield votequorum: Report errors from votequorum_exec_send_reconfigure If votequorum_exec_send_reconfigure() returns an error (ie the packet could not be sent) then we should either return it to the sender (for a library call) or, for an internal call, log it. Reviewed-by: Jan Friesse 2017-05-25 Christine Caulfield cpghum: remove space after delimiter machine-readable stats do not need extra spaces! Reviewed-by: Jan Friesse cpghum: Add interim RTT to cpghum when -f is selected the interim stats show the RTTs for that size of packet. Reviewed-by: Jan Friesse 2017-05-23 Michael Jones configure: Enable C99 language standard Also disable some obsolete warnings. Reviewed-by: Jan Friesse 2017-05-18 Jan Friesse main: Display reason why cluster cannot be formed Reviewed-by: Christine Caulfield 2017-05-18 Hideo Yamauchi notifyd: Add the community name to an SNMP trap Reviewed-by: Jan Friesse 2017-05-15 Christine Caulfield cpghum: Add machine-readable output and fix a few small counter bugs. 2017-05-11 Chrissie Caulfield test: Fold cpgbench into cpghum (#205) * test: Fold cpgbench into cpghum cpgbench and cpghum share a lot of code & concepts so it makes sense to merge them into a single test program that can both benchmark and sanity check CPG. Signed-off-by: Christine Caulfield Reviewed-by: Jan Friesse 2017-05-09 Christine Caulfield knet: Allow space for encapsulated messages 2017-04-25 Andrew Price Main: Call mlockall after fork Man page of mlockall is clear: Memory locks are not inherited by a child created via fork(2) and are automatically removed (unlocked) during an execve(2) or when the process terminates. So calling mlockall before corosync_tty_detach is noop when corosync is executed as a daemon (corosync -f was not affected). This regression is caused by ed7d054e552b4cb2a0cb502b65f84310ce6da844 (setprio for logsys/qblog was correct, mlockall was not). Solution is to move corosync_mlockall call on correct place. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2017-04-21 Michael Schwarz Fix typos in README.recovery Reviewed-by: Jan Friesse 2017-04-20 Bin Liu coroparse: Use readdir instead of readdir_r readdir_r is deprecated in glibc 2.24 in favor of readdir (which became thread safe). Also because corosync never calls read_uidgid_files_into_icmap in muliple threads, no problem should appears even with libc where readdir is thread-safe. Reviewed-by: Jan Friesse totemknet: Handle logpipe creation failure Reviewed-by: Jan Friesse wd: Report error when close of wd fails Reviewed-by: Jan Friesse Qnetd lms: Use UTILS_PRI_RING_ID printf format str Reviewed-by: Jan Friesse cpghum: Fix printf of size_t variable Reviewed-by: Jan Friesse 2017-04-11 Christine Caulfield totemknet: Got back to recvmsg() from recvmmsg() The kernel team have recommended us not to use recvmmsg and as it confers no particular speed advantage (especially given the extra memory consumption) I'm going back to single message recvmsg() again. 2017-04-11 Bin Liu totemconfig: Prefer nodelist over bindnetaddr In a two-node cluster, I 've one node configured with open-vswtich: 5: br-fixed: mtu 1500 qdisc noqueue state UNKNOWN group default inet 192.168.124.88/24 scope global br-fixed inet 192.168.124.87/24 scope global secondary br-fixed inet 192.168.124.83/24 brd 192.168.124.255 scope global secondary tentative br-fixed inet 192.168.124.89/24 scope global secondary br-fixed while I use 192.168.124.83 in node list of corosync.conf with udpu, and the bind_addr is 192.168.124.0. After upgrading corosync on this node, the it uses 192.168.124.88 instead of 192.168.124.83. As we can see: corosync-cfgtool -s Printing ring status. Local node ID 1084783704 corosync-quorumtool -s Membership information: Nodeid Votes Name 1084783697 1 d52-54-77-77-01-02 1084783699 1 d52-54-77-77-01-01 (local) while the other node can only see itself: corosync-cfgtool -s Printing ring status. Local node ID 1084783697 RING ID 0 id = 192.168.124.81 status = ring 0 active with no faults corosync-quorumtool -s Membership information: Nodeid Votes Name 1084783697 1 d52-54-77-77-01-02.virtual.cloud.suse.de (local) this patch will check if there are both nodelist and bindnetaddr and if so, display warning and use nodelist information. Reviewed-by: Jan Friesse 2017-04-11 Christine Caulfield knet: Close libknet down cleanly at shutdown By tidily shutting down knet in totekmknet_finalize we make sure all the links are cleanly taken down and, more importantly for us, the corosync LEAVE message gets sent so we don't get fenced on a clean exit. 2017-04-07 Christine Caulfield man: Document -a option to corosync-quorumtool Reviewed-by: Jan Friesse 2017-04-07 Jan Friesse cpghum test: Improve error codes Return error when unknown option is found. Also return error code 2 if one of send/crc/length/sequence error happened. Finally make sure abort returns same error code and not 999 (what is nonsense code anyway). 2017-04-04 Christine Caulfield quorumtool: Add option to show all node addresses New -a option shows all of the names/ip address of nodes in a multi-homed environment. 2017-03-14 Christine Caulfield cpghum: Stop cpghum from reporting fake CRC errors 2017-03-10 Bin Liu logconfig: Do not overwrite logger_subsys priority logfile_priority and syslog_priority could be modified by logging.logger_subsys.{logfile_priority|syslog_priority}. which could lead to the following output(which are at notice level): corosync[21419]: [QUORUM] Using quorum provider corosync_votequorum corosync[21419]: [QUORUM] Members[1]: 1084777643 corosync[21419]: [QUORUM] This node is within the primary component and will provide service. corosync[21419]: [QUORUM] Members[3]: 1084777563 1084777584 1084777643 even the syslog_priority is warning. This patch could avoid the overwrite. Reviewed-by: Jan Friesse 2017-03-02 Christine Caulfield totem: Fix buffer sizes knet needs buffers to be KNET_MAX_PACKET_SIZE or messages will get lost or corrupted. UDPU packets shouldn't be that big so I introduced UDP_FRAME_SIZE_MAX for that transport. 2017-02-27 Christine Caulfield main: Don't ask libqb to handle segv, it doesn't work segv should be handled by corosync, libqb is not the place to be handling emergency signals. This currently requires the head of libqb git tree to generate a blackbox & coredump in the event of a segfault, but it's better than the write() spin that currently happens. Reviewed-by: Jan Friesse 2017-02-24 Jan Friesse Logsys: Change logsys syslog_priority priority LibQB adds default "*" syslog filter so we have to set syslog_priority as low as possible so filters applied later in _logsys_config_apply_per_file takes effect. 2017-02-24 Fabio M. Di Nitto knet: improve logging messages by adding knet subsystem 2017-02-17 Christine Caulfield cpghum: Add abort_on_error option 2017-02-16 Christine Caulfield cpghum: Add min rtt and print stats every alarm 2017-02-15 Christine Caulfield cpghum: Add Round Trip Time (RTT) reporting 2017-02-14 Fabio M. Di Nitto knet: Change nodeids to knet_node_id_t for new knet compatibility after some feedback on github, people prefers to have the option to support up to 64K node_id's. libknet added knet_node_id_t to mask the size and type, currently set to uint16_t. 2017-02-13 Christine Caulfield knet: Fix MTU sizes & allow transport config in corosync.conf Corosync layers don't need to know the knet MTU size - this way corosync fragments buffers only when they get larger than the KNET buffer size (64K) and knet fragments below that based on the actual MTU and transport considerations. It is also now possible to configure knet to use UDP or SCTP transports in corosync.conf. This is currently done per-link so if you have more than 1 link you need several interface{} stanzas inside totem{} to make it use other than the default of UDP. if it's useful I might add the option of a global default. 2017-02-11 Fabio M. Di Nitto knet: PMTUd data_mtu already accounts for IP and knet header overheads provide some more space for data and small (+1% perf boost) knet: switch from write to sendto() this provides another 9.6% performance boost on 2 node clusters 2017-02-03 Christine Caulfield knet: Change nodeids to 8 bit for new knet compatibility I've also put an assert in totemknet_member_add() to check for invalid nodeids. Later on we need to fix the rest of the corosync code to only use 8bit nodeids (or force people to use UDPU if they want large nodeids). 2017-01-18 Adrian Vondendriesch doc: document watchdog_device parameter Commit 8d8d4a936ab73d8449a3574f969b17a90ef9428e introduced the configuration parameter resources.watchdog_device. This commit introduces the resources section and watchdog_device parameter in corosync.conf.5. Reviewed-by: Jan Friesse 2017-01-16 Christine Caulfield knet: Fix member_remove to shut down existing links first 2017-01-10 Jan Pokorný Spec: make internal dependencies arch-qualified To prevent any mismatch of this kind for sure. Reviewed-by: Jan Friesse Spec: drop unneeded dependency corosynclib-devel doesn't need to have a dependency on corosync package. It's expected that libraries are still working properly (e.g. indicating errors to their users) when there's no corosync process around in that moment, and from this perspective it doesn't matter whether it is installed at all for some purposes, especially having linkage with them in mind. Note that the inverse dependency, main corosync package on corosynclib, is already there (not strictly needed, likely just to enforce package version match -- otherwise RPM's dependency generator will handle this on its own using SONAMEs -- hence the comments to that effect are also added), so breaking this symmetry: - is supposed to be harmless modulo cases that should be fixed to express explicit dependency on corosync's runtime anyway (but only for runtime, i.e., Requires as opposed to BuildRequires) - will effectively enable more lightweight get-build-deps-and-build process for programs linking with corosynclibs (e.g. pacemaker), as corosync package won't need to be installed needlessly Reviewed-by: Jan Friesse 2017-01-03 Christine Caulfield knet: Reduce default pong count to 2 for faster startup The default PONG_COUNT of 5 made corosync slow to connect to other nodes. This helps. 2016-12-22 Christine Caulfield totemknet: Make it compile with kronosnet git master 2016-12-12 Bin Liu Qdevice: fix spell errors in qdevice There are somwe spell errors in qdevice-net-algo-test.c, qnetd-algo-2nodelms.c, qnetd-algo-test.c qnetd-algo-ffsplit.c Reviewed-by: Jan Friesse 2016-12-05 Takeshi MIZUTA Remove redundant header file inclusion Reviewed-by: Jan Friesse 2016-12-05 Richard B Winters Remove deprecated doxygen flags Running 'doxygen -u Doxyfile.in' in the source root produces the following results: - SYMBOL_CACHE_SIZE at line 301 has become obsolete. This tag has been removed. - SHOW_DIRECTORIES at line 507 has become obsolete. This tag has been removed. - HTML_ALIGN_MEMBERS at line 881 has become obsolete. This tag has been removed. - USE_INLINE_TREES at line 1067 has become obsolete. This tag has been removed. - XML_SCHEMA at line 1311 has become obsolete. This tag has been removed. - XML_DTD at line 1317 has become obsolete. This tag has been removed. Reviewed-by: Jan Friesse 2016-12-05 yuusuke upstart: Add softdog module loading example Reviewed-by: Jan Friesse 2016-12-05 Bin Liu Totempg: remove duplicate memcpy in mcast_msg func In function mcast_msg of totempg.c, line 923, there is a memcpy call in "else" branch, and also another memcpy out of the "else" branch, while the two calls have the same parameters. It is possibleto remove the memcpy in "else" branch. Reviewed-by: Jan Friesse 2016-12-01 Takeshi MIZUTA man: Modify man-page according to command usage Reviewed-by: Jan Friesse 2016-11-28 Ferenc Wágner init: Add doc URIs to the systemd service files These are used by systemctl help. Reviewed-by: Jan Friesse 2016-11-28 Ferenc Wágner Fix typo: Destorying -> Destroying Reviewed-by: Jan Friesse 2016-11-28 Takeshi MIZUTA man: Fix typos in man page Reviewed-by: Jan Friesse 2016-11-23 Takeshi MIZUTA totempg: totempg_groups_join return valid error totempg_groups_join() is called by sync_init(). sync_init() judge that totempg_groups_join() failed if return code of totempg_groups_join() is -1. Therefore, the return code should return in -1 when totempg_groups_join() fails. Reviewed-by: Jan Friesse 2016-11-21 yuusuke systemd: Delete unnecessary soft_margin Reviewed-by: Jan Friesse 2016-11-17 Christine Caulfield knet: Support reload of link parameters 2016-11-15 Takeshi MIZUTA list: Unify the list processing with qb_list func Reviewed-by: Jan Friesse 2016-11-15 Christine Caulfield knet: Allow configuration of more params knet_pmtud_interval & knet_pong_count 2016-11-14 Chrissie Caulfield knet: Don't lose log messages when knet gets busy (#165) 2016-11-07 Jan Friesse libvotequorum: Bump version 2016-10-27 Jan Friesse list: Replace for_each by safe version where need Reviewed-by: Christine Caulfield list: Remove list.h List.h is no longer needed. Reviewed-by: Christine Caulfield 2016-10-27 Michael Jones list: Replace uses of list.h with qblist.h Reviewed-by: Jan Friesse 2016-10-23 Fabio M. Di Nitto [build] Fix build on RHEL7.3 latest header inclusion have changed 2016-10-17 HideoYamauchi Change a type of NodeID. Reviewed-by: Jan Friesse 2016-10-13 Christine Caulfield vqsim: Fix Makefile.am Make it conditional on BUILD_VQSIM being defined configure: Remove RDMA (again) How did that creep back in again? vqsim: Add Quorum simulator program vqsim is a small program that allows node up/down/split/join operations to be simulated without the use of an actual cluster. 2016-10-13 Jan Friesse Build: Fail configure if knet is not installed Libknet is now requirement. Reviewed-by: Christine Caulfield 2016-10-13 Christine Caulfield totem: add totemknet.[ch] it seems git is better at deleting files than adding them 2016-10-12 Michael Jones cfg: Prevents use of uninitialized buffer Reviewed-by: Jan Friesse 2016-10-11 Christine Caulfield totem: Add Kronosnet transport. This is a big update that removes RRP & MRP from the codebase and makes knet the default transport for corosync. UDP & UDPU are still (currently) supported but are deprecated. Also crypto and mutiple interfaces are only supported over knet. To compile this codebase you will need to install libknet from https://github.com/fabbione/kronosnet The corosync.conf(5) man page has been updated with info on the new options. Older config files should still work but many options have changed because of the knet implementation so configs should be checked carefully. In particular any cluster using using RRP over UDP or UDPU will not start as RRP is no longer present. If you need multiple interface support then you should be using the knet transport. Knet brings many benefits to the corosync codebase, it provides support for more interfaces than RRP (up to 8), will be more reliable in the event of network outages and allows dynamic reconfiguration of interfaces. It also fixes the ifup/ifdown and 127.0.0.1 binding problems that have plagued corosync/openais from day 1 2016-10-06 HideoYamauchi coropase: Set a poll_period value for wd monitor Reviewed-by: Jan Friesse 2016-09-13 Christine Caulfield votequorum: simplify reconfigure message handling As we now have update_node_expected_votes(), we can use that when receiving a new EXPECTED_VOTES value from another node rather than having our own loop. votequorum: Don't update expected_votes display if value is too high If expected_votes was set via the library but the calculation decides it's too high, then an error is correctly returned but the value is still set in the nodes' expected_votes field and turns up in the corosync-quorumtool display. This patch separates out the quorum calculation from the updating of expected_votes per node to prevent this from happening. Reviewed-by: Jan Friesse 2016-09-12 Ferenc Wágner Fix various typos occured -> occurred parantheses -> parentheses configuraton -> configuration aquire -> acquire retrive -> retrieve prefered -> preferred Reviewed-by: Jan Friesse 2016-09-02 Ferenc Wágner init: corosync and cman aren't system facilities Reviewed-by: Jan Friesse conf: be explicit about the mcast src/dst ports Reviewed-by: Jan Friesse 2016-08-30 Jan Friesse Qnetd LMS: Fix two partition use case Solves situation when in 2 node cluster tie-breaker node dies. Because code contains two bugs, other node got NACK instead of ACK. - Algo timer is not stack, so calling abort and schedule in timer callback without setting reschedule is noop. - It's needed to check not only what current node thinks about membership, but also what other nodes thinks. If views diverge -> wait. Thanks Christine Caulfield for fixing the English in the comments somewhat. Reviewed-by: Christine Caulfield 2016-08-12 Christine Caulfield man: mention qdevice incompatibilites in votequorum.5 2016-08-09 Jan Friesse Man: Fix corosync-qdevice-net-certutil link 2016-08-04 Jan Friesse Spec: Qdevice require same version of corosync Config: Flag config uidgid entries Uidgid entries parsed from configuration files now has prefix (uidgid.config.) so they are distinguishable from dynamically added entries. Entries added from config file are pruned on reload if no longer exists in config file (dynamic one stays unaffected). Also whole uidgid.config. prefix is made read only. This make PCMK work again after configuration reload is called. Reviewed-by: Christine Caulfield 2016-08-04 Bin Liu cts: Make it run with pacemaker-1.13+ There are changes in pacemaker-cts which corosync-testagents denpends on. With these changes, corosync-testagents can not run. This patch fixes the issues, and makes corosync-testagents run. Reviewed-by: Jan Friesse 2016-08-01 HideoYamauchi Low: totemsrp: Addition of the log. Reviewed-by: Jan Friesse 2016-07-12 Christine Caulfield qdevice: some more small man page fixes including mentioning corosync-qdevice(5) on the votequorum(5) and corosync.conf(5) pages. Thanks to Jan Pokorný for reporting these. 2016-07-07 Christine Caulfield qdevice: Fix 'tie_breaker' in man page the tie_breaker option was incorrectly listed as tie-breaker on the man page. 2016-06-30 Jan Friesse Qdevices: Include required files in tarball Qdevice: Include man pages in tarball tmpfiles.d: Install only when required 2016-06-30 Christine Caulfield Qdevice: Englishify man pages 2016-06-29 Jan Friesse Qdevice: Add corosync-qdevice man page Qdevice: Add more man pages 2016-06-28 Jan Friesse Qdevice: Fallback mkdir of /var/run sundirectory Qdevice: Enhance delay before reconnect Qdevice: Handle /var/run on tmpfs Qdevice: Reconnect on algo or tb differs error qdevice: Add qdevice-tool and qnetd-tool man pages Qdevice: Make ffsplit algorithm default Qdevice: Add sysconfig example Fix few bugs found by coverity Qdevice: Fix errors found by coverity Qnetd: Execute qnetd as non root user Qdevice: Adjust path to final location Qdevice: Add qnetd configure option Qnetd is no longer build as a part of --qneable-qdevices. Instead --enable-qnetd is used. 2016-06-28 Christine Caulfield quorum: revert patch that adds qdevice (node 0) to quorum callback Revert patch 9f54f0a1fad7dad42c55562a50dfb9d773e6a660 as it causes more troubles than it solves. Code that uses the quorum nodelist to get a list of actual nodes in the cluster for communication break using this as well as the display from corosync-quorumtool 2016-06-28 Jan Friesse Qdevice-net: Make duplicate node id err non-fatal It can happen because qnetd not yet handled disconnect of client. Qnetd: ffsplit: Add no active clients heuristic On 50:50 split, ffsplit algorithm now prefers partition with higher number of active clients. Tie-breaker is used only if both partitions have same number of active clients. Qdevice: Allow master_wins Qnetd: ffsplit: Enhance ffsplit 50:50 split algorithm now works in following way: - On client configuration change, membership change or disconnect wait till membership is stable (= all client configuration node list are equal, and all partitions has equal information). - Choose best partition >= 50% - If no such partition exists, send NACK to all clients - Send NACK to all clients who should receive NACK - After all clients who should receive NACK confirm vote reception, send ACK to all clients who should get ACK This ensures that there are never two partitions with ACK and it has much better behavior than previous version, because if tie-breaker partition is not connected, other partition gets ACK. Qdevice: Send ring id in more messages To prevent receiving vote from old membership ring id is sent to server during init and replied back to client in every node list, ask for vote reply and vote info messages. Qdevice: Remove unused variable Qdevice: Wait for ring id before executing model Qnetd: Make sure all header files are in final tar Qdevice: Add initial version of ffsplit For now it's doing same job as atb. Qnetd: Return errors in test algorithm Qnetd: Implement cluster algorithm data Qdevice: Fix qdevice-net-certutil quickstart Last part (import p12 files on other nodes) were not implemented. Qnetd: Split cluster-list Qnetd: Store result vote of ask_for_vote correctly Previously unitialized vote was stored. Qdevice: Correct API comments Also after votequorum node list is received and qnetd is connected, default vote is changed to WAIT_FOR_REPLY. This make much more sense because it ensures qdevice doesn't vote with new ring id until qnetd sends reply. Qdevice: Add expected votes notify callback API Qdevice: Do not call cmap_dispatch in sync When corosync is during sync operation cmap_dispatch blocks. Qdevice: Add advanced settings All previously defined defaults are now configurable via -S option. qnetd: Add warning to test algorithm Qnetd: Add advanced settings All previously defined defaults are now configurable via -S option. qdevice: Ensure to exit if ipc socket is closed When ipc socket was closed before poll and new connection got same fd as original IPC socket, shutdown didn't work. Solution is to check if IPC socket is active during poll array create. Qdevice: Add IPC clients qnetd: Add support for IPC list command qdevice: Make sure qdevice exists on corosync exit Add qdevice into spec file Make sure all qdevice files are packaged Split qnetd certutil to qnetd and qdevice-net part Qnetd: Add local IPC Basic commands shutdown and status are implemented. Qdevice: Quote str func compatible with simple_lex Qdevice: Improve simple lex and add unit test Simple lex now support backslashes and quotes. Behavior is similar to shell. Qdevice: Support for IPC status cmd in net model qdevice certutil: Increase default cert validity Qnetd: Don't fall if TLS is disabled Qnetd: Log client in IP address:port format Qdevice: Don't abrt if IPC connect isn't accepted Also sending buffer is increased from testing value 2 to 1024. Qdevice: Implement status command Qdevice: Allow compiler warn about unhandled case Remove default case where switch selection is made on top of enum value. Qdevice: Add format macro for nodeid, ring, ... qdevice: Properly free IPC data on exit qdevice: Implement shutdown command qdevice: Add dynar prepend qdevice: Sending error (output) in IPC qnetd: Fix logging function va_arg handling qdevice: Add vcatf to dynar-str qdevice: Fix cluster-list test qdevice: Add functions to manipulate dynar string qdevice: Add public prealloc function to dynar qdevice: Make simple-lex locale independent Simple-lex is going to be used in protocol so it's not good idea to depend on locale. 2016-06-28 Christine Caulfield quorum: Return qdevice nodeid in the quorum callbacks (if active). 2016-06-28 Jan Friesse qdevice: Improve socket based IPC qnetd: Factorize qnetd-poll-array to generic unit qdevice: Add preliminary version of IPC qdevice: Add qdevice service scripts Also fix qnetd systemd service. qdevice: Remove compiler warning qdevice: Unregister votequorum tracking on exit qdevice: Add support for daemonize Also local unix socket is now created. In future this is going to be used for qdevice-tool, for now it's used only for handling SIGINT and SIGTERM. qdevice-net: Add option to force ip version qnetd: Add dead peer (client) detection qdevice timer-list: Add reschedule operation qdevice: Wait a while before reconnect It's viable to give qnetd a little time before client tries reconnect. qnetd: Replace err by qnetd_log on some places err should be used only before qnetd log is fully initialized. qnetd: Validate tie-breaker, algo and node dup If new client request tie-breaker or algo which differes from rest of cluster, error message is sent back. Also it's checked if node is not duplicate by comparing node id. 2016-06-28 Christine Caulfield qdevice-lms: improvements to LMS algorithm Use the new timers to get better response from LMS when the network splits, this also closes a race where the remote side could go inquorate before we confirmed the vote. Add client-side (qdevice-net) code to cope with a detached qnetd if we are quorate and have wait_for_all enabled. THat situation will now keep quorum. 2016-06-28 Jan Friesse qdevice: Allow delete timer withing it's callback qdevice: Force send of heartbeat Previously client was not force to use heartbeat. Because we have to be able to detect dead client in qnetd, heartbeat setting is now forced. Insted of set_option message, heartbeat is force to exists in init message. This also means that QDEVICE_NET_INSTANCE_STATE_WAITING_SET_OPTION_REPLY can be removed and client is considered as connected after init_reply is received. So currently, set_option is not used (but implementation of these two messages still exists). qdevice: Improve timer-list Timer-list is now more efficient and as a side-effect it's possible to add/delete timer in callback. qnetd: Add support for qnetd algo timer Algo timer is simplified timer designed for qnetd algorithm. Instead of full timer only one can exists per client. Workflow is: - In one of algorithm callbacks qnetd_client_algo_timer_schedule is called - On timeout .timer_callback is called (for example qnetd_algo_test_timer_callback). It's possible to set send_vote and result_vote to send vote info to client - It's possible to discard timer by calling qnetd_client_algo_timer_abort Timer is automatically deleted on client disconnect. To make all this possible, qnetd main loop now has support for timer-list (main_timer_list). To be able to handle error and disconnect client from timer callback, client has schedule_disconnect. If this is set to 1, client is disconnected on current call of poll loop. qdevice-net: Allow connect to choose lists to send Also disconnect and connect can now affect vote timer. qnetd-algo-utils: Remove goto qdevice-net: Support tls required and fix leaks qdevice tlv: Remove default/return code redundancy qdevice-net: Free send buffer on error (leak) qnetd: Return lock file fd qdevice-net: Ensure to free non blocking client Refactor qdevice-net - corosync-device-net as binary is gone. Replacement is corosync-qdevice - corosync-qdevice has support for multiple models (only net is currently implemented) - Completelly redesign qdevice-net main loop. - Connect is non blocking - Cmap and Votequorum events are handled even before connect to qnetd. Algorithm gets send_node_list and vote set so it's not needed to check connection status and also vote_timer is running and voting until something changes (configuration or votequorum node list) - If connect fails, algorithm_disconnected with new reason CANT_CONNECT_TO_THE_SERVER is called - Logging for qdevice is based on libqb logging functions. Also logging configuration from corosync.conf is now used and dynamic changes of configuration are handled. - Added qdevice_net_algorithm_config_node_list_changed - Changed qdevice_net_algorithm_votequorum_node_list_notify in respect of adding send_node_list so it's similar to other functions. 2016-06-28 Christine Caulfield votequorum: Allow wait_for_all with qdevice qnetd: Use ring_id, not client->last_ring_id in algorithms ring_id should only be copied into the client structure after the algorithm has run (so the last one is also available), so fix the algorithms to use the passed-in ring_id where available. Also tidy some debug logging in algo-lms qnetd-algo: Fix list traversal corruption when freeing partitions. TAILQ_* doesn't have a safe iterator for use when freeing entries, so the only safe way of doing it (without assuming implementation) is to restart the iterator after freeing the structure. 2016-06-28 Jan Friesse Improve qdevice - Add support for cmap node list configuration change - Add client side algorithms - Check if currently received ring id in membership message equals to last sent ring id - Send config node list only if config node list really changes and not after every reload - Add tlv_ring_id_eq (replacing qnetd_algo_rings_eq) so it's usable in client - Move debug logs from algo-test into qnetd-log-debug.c and call them in proper places (= logs are now algorithm independent) - Fix memory leak in msg 2016-06-28 Christine Caulfield qnetd-algo: Refactor common routines Move several commonly used routines into their own qnetd-algo-utils.[ch] files and change over to using the ring_id held in the client structure rather than managint it ourself. qnetd: Add ring_id to client structure algo-lms: some tidying 2016-06-28 Jan Friesse qnetd: Make proper support for ipv4/6 - Add option for forcing ip version 4 or 6 - Choose new default port. It's now 5403. Exactly one less than used by corosync. - Fix compiler warning qnetd: Add init script qnetd: Refactor qnetd: Really daemonize 2016-06-28 Christine Caulfield qdevice: qnetd_algo_lms: Fix nominated tie_breaker node qnetd: lms: Add support for other tie_breaker options. qnetd: Add tie_breaker options to 2nodelms 2016-06-28 Jan Friesse qdevice: Add tie_breaker option Tie-breaker can be used in algorithm to decide if algorithm should prefer highest, lowest or some concrete node id. qnet: Add TLV_VOTE_NO_CHANGE State used for informative only callbacks (quorum node list) and possibly informative only callbacks (configuration node list). Client doesn't change cast vote timer state. qnet: Migrate to new votequorum API 2016-06-28 Christine Caulfield qdevice: 2nodelms: don't split-brain when the primary node comes back. qnetd: lms: Fix search for node/ring_id check We were looking for us in other node lists, rather than others in our nodelist. Also, remove debug print in votequorum.c votequorum: Fix up quorum/nodelist callbacks This patch tidies the two state change callbacks and explains them in the man page: The difference between votequorum_nodelist_notification_t and votequorum_quorum_notification_t is subtle but important. The 'nodelist' callback is sent at the start of a cluster state transition and contains the new ring_id and only the list of nodes that are included in the sync state - ie only active nodes. No quorum information is included this callback because it is not available at that time. The 'quorum' callback is sent after the cluster state transition has completed and does contain quorum information. In addition, the nodelist contains a list of all nodes known to votequorum (whether up or down) and their state as well as information about the quorum device attached (if any). quorum callbacks will not be sent for qdevice up and down events unless they affect quorum. 2016-06-28 Jan Friesse qnetd: Some small improvements qnetd: Improve logging 2016-06-28 Christine Caulfield votequorum: split callbacks into nodelist and quorum This split is needed for qdevice, so that it gets the ring_id and nodelist as part of the sync process and not afterwards - when quorum has been calculated. As this is and unsupported API I'm not too worried about breaking existing code - all the clients I know of are using the quorum API anyway as they should be. 2016-06-28 Jan Friesse qdevice-net: Copy correct ring id in votequorum cb 2016-06-28 Christine Caulfield qnetd: Add LMS algorithm Only lightly tested so far 2016-06-28 Jan Friesse Improve qdevice-net - Add cast vote timer (qdevice-net now really votes) - In sync phase it's impossible retreive cmap config version so it's no longer sent in membership node list - Refactor qdevice-net 2016-06-28 Christine Caulfield votequorum: make corosync_quorumtool show full ring_id Add the ring leader node_id to corosync_quorumtool. This is only shown when votequorum is active qnetd: move 2nodelms algo files to the right directory No, I don't know how that happened. qdevice-net: add a 2node Last Man Standing algorithm Signed-off-by: Christine Caulfield 2016-06-28 Jan Friesse qdevice-net: Implement missing messages handlers qnetd-certutil: Fix master node variable corosync-qnetd-certutil: Delete tabs corosync-qnetd-certutil: Delete dev comment 2016-06-28 Christine Caulfield qnetd: Move algorithms_register into qnetd-algorithms.c and fix qnetd_algorithm_vote_info_reply_received 2016-06-28 Jan Friesse corosync-qnetd-certutl: Improvements - Location of certificates is now correctly set depending on operation (qnetd/node) - Added quick start mode 2016-06-28 Christine Caulfield qnetd: Make it easier to add algorithms Put the algorithms into an array of structure pointers (a bit like corosync services) so we can easily add more without having huge switch statements. I haven't added any code to the client end that parses the name into the enum. Yet. Don't attempt to free a string we haven't been given. 2016-06-28 Jan Friesse qnetd: Improvements - Move adding client to cluster to init phase instead of preinit - Implement missing ask for vote and vote info messages - Fix cluster name memory leak - Refactor unexpected message handler to one generic function - Move qnetd_client_send_err to new file - Add qnetd_client_send_vote_info qnetd: Add skel of ffsplit algo and cluster list Qnetd improvements - Complete config and membership node list callbacks - Add client disconnect callback - Always send msg_seq_num in node list - Store config and last membership node list Qnet improvements - Support for membership node list - Initial support for "pluggable" algorithms Qdevices-net improvements - Implement node list - Implement send buffer list - Add nodelist message type - Add ring_id, config_version, data_center_id, node_state, node_info, node_list_type and vote msg options 2016-06-28 Christine Caulfield votequorum: Make display of qdevice more intuitive. corosync-quorumtool displays the votes of the qdevice whether or not it is active. This is confusing because if it is not active then the display looks like there is a vote being contributed to quorum when there is not. This patch displays 0 for qdevice votes if the device is present (but inactive) and adds the votes after the name. If the device is contributing votes then they are displayed as normal. 2016-06-28 Jan Friesse Improve qnet Initial commit of qdevice net config: get_cluster_mcast_addr error is not fatal 2016-06-27 bliu low:typo fix in sam.h Reviewed-by: Jan Friesse 2016-06-22 Ferenc Wágner Fix typo: Diabled -> disabled Reviewed-by: Jan Friesse Fix typo: alocated -> allocated Reviewed-by: Jan Friesse Fix typo: retrive -> retrieve Reviewed-by: Jan Friesse Fix typo: aquire -> acquire Reviewed-by: Jan Friesse Fix typo: Uknown -> Unknown Reviewed-by: Jan Friesse Fix typo: interger -> integer Reviewed-by: Jan Friesse Fix typo: funtion -> function Reviewed-by: Jan Friesse cmap_track_add.3.in: fix typo: bellow -> below Reviewed-by: Jan Friesse 2016-05-27 Christine Caulfield logconfig: Fix logging reload disabling logfiles In my previous logconfig patch, adding a subsys so the logging stanzas could disable logging to a file, because the subsys closed the file used by the main logging. This patch only applies defaults to higher-level logging and non-deprecated keys. Reviewed-by: Jan Friesse 2016-05-27 yuusuke wd: Warn if values are out of range Reviewed-by: Christine Caulfield parser: WD Read type correctly from corosync.conf Reviewed-by: Christine Caulfield 2016-05-24 Christine Caulfield Add some more RO keys Reviewed-by: Jan Friesse Reapply config defaults corosync.conf reload There were several places where defaults were not restored if the keys were removed from corosync.conf and the file reloaded. This patch adds those back so that reloading corosync.conf has the expected effect when keys are deleted. Reviewed-by: Jan Friesse 2016-05-17 Jan Friesse schedwrk: Cleanup and make it work on PPC BE Schedwrk is passing hdb handle (64-bit) to totempg_callback_token_create as a context. Context is defined to be pointer, so there is conversion function which stores 64-bit hdb_handle into pointer. Potentially, pointer can be 32-bit. This means, check part of hdb is discarded (and have to get special no_check value in schedwrk_do) later. This works quite well on 32-bit Little-Endian system. Sadly on Big-Endian system, check partition of hdb is stored instead of value. Result is error of hdb_handle_get call. Proposed solution is to pass handle pointer to totempg_callback_token_create as context. This means full hdb (check + value) can be used in schedwrk_do (easier detection of memory corruption). Main reason for this patch is to remove usage of pointer as integer value. Small drawback of given solution is that handle pointer must be memory allocated on heap or static memory, making API more bug-prone. Current usage of schedwrk API across corosync always use memory in .text section (safe), so it's not a problem. Reviewed-by: Christine Caulfield cmapctl: Handle corosync errors in print_key func print_key handles only CS_ERR_TRY_AGAIN error. If different error is returned, print_key loops forewer. Solution is to handle all errors. Reviewed-by: Christine Caulfield 2016-05-12 Michael Jones Adds doxygen stubs to include directory Reviewed-by: Jan Friesse 2016-05-03 Michael Jones Add clang-format configuration file This .clang-format file is written for clang-format version 3.7.1 I've attempted to set the options for clang-format so that the difference between the current code, and the result of the clang format call is as small as possible. Unfortunately, clang-format doesn't yet have the ability to handle every single possible formatting option, so it's not perfect yet. Reviewed-by: Jan Friesse 2016-05-03 Valentin Vidic wd: make watchdog device configurable Add configuration option resources.watchdog_device allowing runtime selection of watchdog device. Useful for newer servers having more than one watchdog available (IPMI and iTCO). Special value "off" disables watchdog in configuration rather than just using build options. Useful when watchdog device is needed elsewhere (SBD cluster stonith service). Reviewed-by: Jan Friesse 2016-05-03 Christine Caulfield logging: Use our own version of basename basename() function has some potentially odd issues on other platforms. So, to be safe, here's an internal version. Reviewed-by: Jan Friesse 2016-04-26 Christine Caulfield logsys: fix TOTEM logging when corosync built out of tree If corosync is built out-of-tree (passing --srcdir to configure) then TOTEM logging doesn't print anything. This is caused by the source filenames (from __FILE__ at compilation time) having the configured path in them - in this example ../corosync/exec/totemudp.c etc. The list of totem source filenames passed to libqb logging facility only has the basenames so the filenames never match up as libqb does an exact string match. I looked into fixing this in libqb but it causes a regression. We can't simply basename() __FILE__ at the point of calling log_printf as it's i common also to use __FILE__ to generate the logging source, and using basename() on both removes the distinction between similarly named files from different directories which could be a requirement. 2016-04-22 Christine Caulfield parser: Make config file parser more hierarchy pass 'state' down the stack so that the state of the hierarchy doesn't get lost when there are unexpected items in the config hierarchy. Don't bother setting 'state' on SECTION_END as there's no point now we're going back up the stack. Reviewed-by: Jan Friesse 2016-04-07 Jan Friesse totemconfig: Explicitly pass IP version If resolver was set to prefer IPv6 (almost always) and interface section was not defined (almost all config files created by pcs), IP version was set to mcast_addr.family. Because mcast_addr.family was unset (reset to zero), IPv6 address was returned causing failure in totemsrp. Solution is to pass correct IP version stored in totem_config->ip_version. Patch also simplifies get_cluster_mcast_addr. It was using mix of explicitly passed IP version and bindnet IP version. Also return value of get_cluster_mcast_addr is now properly checked. Reviewed-by: Christine Caulfield 2016-02-24 Jan Friesse cpg: Handle ipc error in cpg_zcb_alloc/free - Error returned by coroipcc_msg_send_reply_receive is now correctly handled. - If munmap fails, error is set to proper value and handle is put back into handle_db 2016-02-24 Athira Rajeev cpg: Memory not unmapped in cpg_zcb_free Function in cpg_zcb_alloc (from code lib/cpg.c) creates /dev/shm/corosync_zerocopy-XXXXX and does mmap The memory is allocated by corosync service (function zcb_alloc in exec/cpg.c) also and both shares this memory via mmap (uses MAP_SHARED in mmap call) Corosync calls unlink which deletes the file from /dev/shm while closing the file descriptor, but unmap is not happening correctly while calling cpg_zcb_free. So: - still the deleted file holds the memory - As munmap is not happening correctly, the number of mappings per process gets exceeded and corosync dies with ENOMEM From gdb, the size passed to munmap appears to be zero and address looks wrong. Also in the code return code of munmap is not checked. The patch adds check for: - munmap return code and getting correct address for munmap Reviewed-by: Jan Friesse 2016-02-10 Jan Friesse totempg: Fix memory leak Previously there were two free lists. One for operational and one for transitional state. Because every node starts in transitional state and always ends in the operational state, assembly was always put to normal state free list and never in transitional free list, so new assembly structure was always allocated after new node connected. Solution is to have only one free list. Reviewed-by: Christine Caulfield Reviewed-by: Steven Dake 2016-01-27 Richard B Winters Fix spelling error in binary corosync - Changed paramater to parameter in exec/logcconfig.c Change-Id: I8a24b0ef5c6621dc6c19d7decbdfe7a255afd10d Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Fix spelling error in binary corosync-cfgtool - Changed reenable to re-enable in tools/corosync-cfgtool.c Change-Id: I0457bf3040a454a44f0d8343dd2cd8bf8fad16e0 Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Fix spelling error in manual sam_overview 8 - Changed usefull to useful Change-Id: I2d7872b21e889202cd2b7752db4c76f18fffa95d Reviewed-by: Steven Dake Reviewed-by: Jan Friesse 2016-01-27 Jan Friesse cmap_keys.8: Fix spelling and grammar errors - "There are informations" changed to "There is information" - Other occurrences of informations changed to information Original patch was created by Richard B Winters , so thanks for it. Reviewed-by: Steven Dake 2016-01-27 Richard B Winters Fix spelling errors in manual corosync.conf 5 - dont to don't - overriden to overridden - informations to information Change-Id: If6644694d750c30ba9f5f43b4eb852485613d64a Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Fix grammer error in manual votequorum_trackstart "allows to" was updated to read "allows one to" - With a subject it's grammatically correct. Change-Id: I9559e31c780e211b651744c6eaa056ce8d4c3db1 Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Add section in manual title for cpg_zcb_free 3 Change-Id: Ib80face38dce0345e649297d16cf8a63c5b0e8c1 Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Add section in manual title for cpg_zcb_alloc 3 Change-Id: I8c5d6af915203533c80e4eaa574e305a46d74815 Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Fix incorrect spelling of retrieve from retreive Corrected the spelling of retrieve, where it was spelled as retreive. - There were two cases of this mispelling; one upper-case and one lower-case Change-Id: Ic97fd210d8d3ae7e568e5a2e5d97c6220d2ff628 Reviewed-by: Steven Dake Reviewed-by: Jan Friesse 2016-01-05 Jan Friesse Update corosync.spec source link Update gitignore files Remove all links to old ML 2016-01-04 Ruben Kerkhof totemsrp: Fix clang warning (tautological compare) gsfrom is always >= 0 Reviewed-by: Jan Friesse configure.ac: Make location of .pc overrideable FreeBSD stores them in /usr/local/libdata/pkgconfig This allows us to remove some local hooks in the process. Reviewed-by: Jan Friesse Remove a few unused variables and functions Reviewed-by: Jan Friesse configure.ac: We don't need no C++ compiler Reviewed-by: Jan Friesse configure.ac: Remove deprecated AC_PROG_LIBTOOL AC_PROG_LIBTOOL is deprecated version of LT_INIT. Because LT_INIT is called we can remove it. Reviewed-by: Jan Friesse configure.ac: Remove AC_PROG_RANLIB It was obsoleted by libtool and we don't use ranlib standalone. Reviewed-by: Jan Friesse configure.ac: make foreign apply to all Makefiles Reviewed-by: Jan Friesse Remove unused, obsolete check From autoconf info Obsolete Macros: "These days, it is portable to assume C89, and that signal handlers return void, without needing to use this macro or RETSIGTYPE." And we indeed assume so. Reviewed-by: Jan Friesse 2015-12-16 Ruben Kerkhof Fix detection of qb_log_thread_priority_set This fixes detection of libqb function qb_log_thread_priority_set if it was installed outside of the standard library search path, in my case /opt. Reviewed-by: Jan Friesse cpghum: Fix type of recv_crc Fixes build on FreeBSD which doesn't have ulong Reviewed-by: Jan Friesse Check for fdatasync If we don't have it, fall back to fsync Fixes the build on FreeBSD Reviewed-by: Jan Friesse Fix detection of warning flags for clang Using ./configure CC=clang, the following flags are detected as supported: checking whether clang supports "-Wgnu89-inline"... yes checking whether clang supports "-Wno-strict-aliasing"... yes Which results in a lot of warnings during make: warning: unknown warning option '-Wunsigned-char' [-Wunknown-warning-option] warning: unknown warning option '-Wgnu89-inline' [-Wunknown-warning-option] Clang doesn't support these flags, but the compile check returns a warning, not an error: configure:16649: checking whether clang supports "-Wunsigned-char" configure:16662: clang -E -Wunsigned-char conftest.c warning: unknown warning option '-Wunsigned-char' [-Wunknown-warning-option] 1 warning generated. configure:16662: $? = 0 configure:16663: result: yes Use -Wunknown-warning-option -Werror if supported Reviewed-by: Jan Friesse 2015-11-27 Hideo Yamauchi quorum: Display node id as unsigned int. Reviewed-by: Jan Friesse 2015-11-23 Jan Friesse cts: InitClusterManager is now BootCluster This is forward port of flatiron-cts fbe1721e676eafd1f25f470234b646904f54e3f3. Thanks to bliu for pointing out. 2015-11-16 Christine Caulfield totemudp: Move udp bind() so that multicast works with IPv6 It seems that the IPv6 multicast parameters only take effect when bind() is called, so I've moved the mcast recv socket bind() to the bottom of totemudp_build_sockets_ip(). Reviewed-by: Jan Friesse 2015-11-13 Hideo Yamauchi cfgtool: Display nodeid as unsigned int Reviewed-by: Jan Friesse 2015-10-22 Christine Caulfield votequorum: Don't send multiple callbacks when nodes join This patch aligns the votequorum callbacks so that they are the same as the quorum ones. Previously it was quite common for votequorum to send one callback for every node in the cluster when a single new node joined (because it sent one for every nodeinfo message it received). This new system makes much more sense in itself and being consistent with the internal quorum is also an advantage! Reviewed-by: Jan Friesse 2015-09-18 Ferenc Wágner man: Add synopsis for cpg_zcb_alloc and free Reviewed-by: Jan Friesse man html index: Update index - add link to cmap_keys(8) - remove link to cpg_groups_get(3) - add missing cpg_* and votequorum_qdevice_* functions - corosync-fplay has already been removed by ab32894 Reviewed-by: Jan Friesse 2015-08-28 Ferenc Wágner votequorum: Make sure cs_error_t is defined Reviewed-by: Jan Friesse 2015-08-26 Ferenc Wágner Close Doxygen group in include/corosync/cmap.h This avoids warning: end of file while inside a group. Reviewed-by: Jan Friesse Doxygen fix for cmap_iter_next() Remove the extra cmap_ prefix of the iter_handle parameter. Reviewed-by: Jan Friesse configure: Correct help entry for logdir Reviewed-by: Jan Friesse totmesrp: Fix typo in log message Reviewed-by: Jan Friesse configure: typo in include Reviewed-by: Jan Friesse man page: Correct option letter for DBus Reviewed-by: Jan Friesse 2015-07-14 Christine Caulfield wd: fix setting of watchdog timeouts Fix setting of initial watchdog timeout, and also changing of timeout. Remove redundant starting of timer in exec_init_fn Reviewed-by: Christine Caulfield 2015-07-02 Jason HU CFG: Prevent CFG orignating messages during SYNC During SYNC, corosync-cfgtool -R/-H commands can pass through IPC then send totem messages. This may corrupts assembly_list_inuse/assembly_list_free if those messages are recedived after SYNC is done. The solution is marking related CFG APIs as CS_LIB_FLOW_CONTROL_REQUIRED. Reviewed-by: Jan Friesse 2015-06-22 Jan Friesse Don't link with libz when not needed Commit 8cc8e513633a1a8b12c416e32fb5362fcf4d65dd added check for libz resulting in linking with lib z for all libraries. This is not expected behavior. Patch solves it by making defining automake conditional so cpghum is linked only if libz is available and LIBS variable is not modified at all. Log: Add logrotate configuration file In cman era corosync was depending on logrotate file distributed by cman. It's good idea to logrotate also on systems without cman (new clusters). Reviewed-by: Fabio M. Di Nitto Add note about rrp active beeing unsupported Reviewed-by: Christine Caulfield 2015-06-18 Christine Caulfield votequorum: Fix auto_tie_breaker behaviour in odd-sized clusters auto_tie_breaker can behave incorrectly in the case of a cluster with an odd number of nodes. It's possible for a partition to have quorum while the other side has the ATB node, and both will continue working. (Of course in a properly configured cluster one side will be fenced but that becomes an indeterminate race .. just what ATB is supposed to avoid). This patch prevents ATB from running in a partition if the 'other' partition might have quorum, and also mandates the use of wait_for_all in clusters with an odd number of nodes so that a quorate partition cannot start services or fence an existing partition with the tie breaker node. Signed-Off-By: Christine Caulfield Reviewed-by: Jan Friesse 2015-06-12 Christine Caulfield totemsrp: Improve logging of left/down nodes This patch from Hideo Yamauchi improves the logging of whether nodes leave the cluster cleanly or uncleanly, making it easier to determine if a node ws shut down by the operator. There is also the possibility that a LEAVE message could get missed (due to the node being in flush state) so this can also make that clearer. The modifications are as follows. Change 1) I added the list which maintained LEAVE node to totemsrp. Change 2) I added registration, a search, the handling of to clear LEAVE node. Change 3) I added the output to log. Change 4) I changed an output level of the log. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2015-04-17 Christine Caulfield totem: Log a message if JOIN or LEAVE message is ignored As per recent email thread, this patch adds a log message if a JOIN or LEAVE message is discarded while corosync is flushing the receive queue. While ignoring a JOIN message is harmless (it will be resent), ignoring a LEAVE message can cause a longer state transition as it is treated as a node crashing rather than leaving gracefully, so the system admin might be confused as to the cause. Unfortunately, we can't (at the totemudp level) distinguish between JOIN or LEAVE messages without a lot more protocol-specific code creeping in the lower layer so the message is left ambiguous. 2015-04-10 Christine Caulfield totemconfig: Check for duplicate nodeids Having duplicate nodeids in corosync.conf can play havoc with a cluster, so (as suggested by someone on this list) here is some code to check that all nodeids are unique. Even if a nodeid is not specified it will check to be sure that the ID generated from the IP address (ipv4 only) does not clash with one that is provided. It logs all non-unique nodeids to syslog, but only the last is reported on the command-line to the user which should be enough to get them to check further. At startup this will cause corosync to fail to start. 2015-03-16 Christine Caulfield quorum: don't allow quorum_trackstart to be called twice If quorum_trackstart() or votequorum_trackstart() are called twice with CS_TRACK_CHANGES then the client gets added twice to the notifications list effectively corrupting it. Users have reported segfaults in corosync when they did this (by mistake!). As there's already a tracking_enabled flag in the private-data, we check that before adding to the list again and return an error if the process is already registered. Reviewed-by: Jan Friesse 2015-03-10 Jan Friesse Really add cpghum 2015-03-05 Christine Caulfield cpg: Add support for messages larger than 1Mb If a cpg client sends a message larger than 1Mb (actually slightly less to allow for internal buffers) cpg will now fragment that into several corosync messages before sending it around the ring. cpg_mcast_joined() can now return CS_ERR_INTERRUPT which means that the cpg membership was disrupted during the send operation and the message needs to be resent. The new API call cpg_max_atomic_msgsize_get() returns the maximum size of a message that will not be fragmented internally. New test program cpghum was written to stress test this functionality, it checks message integrity and order of receipt. Reviewed-by: Jan Friesse 2015-03-05 Andrey N. Groshev totemsrp: Format member list log as unsigned int Reviewed-by: Jan Friesse 2015-03-02 Christine Caulfield Don't allow both two_node and auto_tie_breaker in corosync.conf The two_node and auto_tie_breaker options are incompatible as they specify conflicting methods of determining the quorate half of a cluster partition. This patch detects this error in corosync.conf, issues a message and disables two_node if auto_tie_breaker is present. Signed-Off-By: Christine Caulfield Reviewed-by: Jan Friesse Votequorum: Fix auto_tie_breaker default The default for auto_tie_breaker should be 'lowest' - which is what it was before the extended ATB functionality of auto_tie_breaker_node was added, and what the documentation states. However this was broken so that if auto_tie_breaker_node was not specified then auto_tie_breaker itself was ignored. This patch fixes that. It also fixes a typo in a comment. Signed-Off-By: Christine Caulfield Reviewed-by: Jan Friesse 2015-01-21 Jan Friesse Handle adding and removing UDPU members atomically When config file is reloaded with removed UDPU member, internal icmap index of nodelist.node can change. This can result in removal and then adding back node. This, with UDPU alive filtering (where member is by default considered as not a member) makes corosync not sending messages to such members resulting in new membership creation. Solution is to properly test which members were really deleted and added (instead of relying on internal and dynamic naming of icmap hash table key name). Also trully dynamic add and remove node (via cmap) is now handled by same function so totem_config->interfaces is now updated properly. Reviewed-by: Fabio M. Di Nitto 2015-01-20 Jan Friesse corosync_ring_id_store: Use safer permissions corosync_ring_id_store should use same (safer) permissions as corosync_ring_id_create_or_load for (eventually) newly created ringid file. Credit to Sjerek for finding this problem. Reviewed-by: Christine Caulfield 2015-01-15 Jason totem: Ignore duplicated commit tokens in recovery In active rrp mode, commit tokens are treated as mcast data messages, thus, rrp directly delivers them to srp layer by active_mcast_recv(). This will result in duplicated commit tokens being received by srp from different heartbeat links. If node is in recovery state and has already sent out the initial orf token, those duplicated commit tokens will cause message_handler_memb_commit_token() to send initial orf token again! This is wrong because it resets the orf token content in instance->orf_token_retransmit, which breaks the token retransmission state. Furthermore, by sending those initial orf tokens again and again, it may lead active_token_recv() to drop some subsequent orf tokens. It is OK for rrp because srp will do token retransmission, but as said above, srp retransmission state has already been broken, so finally we meet a "token lost in recovery state" condition caused by software. If token timeout value is large, then it will takes long time to create a new ring. This can be reproduced by having two noded set to active rrp mode, with two heartbeat links. Then with one node always on, let the other one do stop/start again and again. It has a low probability to reproduce. In theory, I think, the more heartbeat links used, the more easily it can be reproduced. This problem can be resolved by letting message_handler_memb_commit_token() to ignore duplicated commit tokens in recovery state if node (the ring representation) has already sent out the initial orf token. Different from prev take, this version do not depends on stored token data but uses originated_orf_token in totemsrp_instance to remember if initial orf token has been already originated for current membership. Reviewed-by: Steven Dake Reviewed-by: Jan Friesse Reviewed-by: Christine Caulfield 2015-01-14 Jan Friesse Log auto-recovery of ring only once Make sure to log auto-recovery of ring only once. Every MESSAGE_TYPE_RING_TEST_ACTIVATE receive is logged, but with lower priority and more detailed information. Reviewed-by: Christine Caulfield 2015-01-05 Jan Friesse Set RR priority by default Experience with larger production clusters showed that setting RR priority for corosync is viable for prevent random fencing, ... Reviewed-by: Christine Caulfield automake: Check minimum automake version Corosync needs automake version at least 1.11. Patch adds minimum version check. Reviewed-by: Christine Caulfield 2014-12-08 Jason Reset timer_problem_decrementer on fault After a heartbeat link's FAULTY and its auto re-enable, active_instance->timer_problem_decrementer did not reset to zero. So in the next timer_function_active_token_expired() round, active_timer_problem_decrementer_start() will not be called. This will result in that the active_instance->counter_problems of this link can not be decreased any more. Cause rrp lose the ability to tolerate network fluctuation. This problem can be reproduced by the following sequence: 1) Set RRP in active mode, configure at least 2 heartbeat links. 2) Unplug one link till corosync-cfgtool -s shows it is FAULTY. 3) Re-plug this link then corosync-cfgtool -s shows it is active with no faults. 4) Unplug this link again but quicky re-plug it before it becomes FAULTY. 5) Finally, you can see corosync-cfgtool -s shows it is in "Incrementing problem counter" state despite it currently is physically healthy. It can be solved by not forget to reset timer_problem_decrementer to zero in active_timer_problem_decrementer_cancel(). Reviewed-by: Jan Friesse 2014-11-24 Jan Friesse config: Ensure mcast address/port differs for rrp When using multiple interfaces, it's necessary to use different multicast address/port pair for each interface to make rrp work correctly. This is now checked in parser. Reviewed-by: Christine Caulfield config: Process broadcast option consistently Broadcast option is global but in config set in interface section. When more interfaces are defined, only broadcast from last section was used. Solution is to use broadcast whenever at least one interface use broadcast. Reviewed-by: Christine Caulfield config: Make sure user doesn't mix IPv6 and IPv4 Checking code was there, sadly not correct, so it was possible to enter one bindnet addr as IPv4 and second as IPv6. Fix is trivial. Reviewed-by: Christine Caulfield 2014-10-13 Jan Friesse man page: Improve description of token timeout With introduction of token_coefficient, token timeout defined in configuration file may be no longer reflect real token timeout, what may be confusing. Enhanced description hopefully fix that. Reviewed-by: Christine Caulfield Store configuration values used by totem to cmap Some totem configuration values (like token, consensus, ...) are ether computed or default value is used. It's hard to find out, what value is really used. Solution is to store values in cmap. Reviewed-by: Christine Caulfield 2014-10-13 Christine Caulfield manpage: Fix English While I was looking at the above man page changes I thought I'd review the rest of it. So here are some more English fixes for the cmap_keys.8 man page Reviewed-by: Jan Friesse 2014-10-08 Jan Friesse init: Don't wait for ipc if corosync doesn't start Init script now checks return code of executing corosync command. If it fails, ipc_wait section is skipped, resulting in much faster failure of init script. Reviewed-by: Fabio M. Di Nitto 2014-10-01 Jan Friesse Adjust MTU for IPv6 correctly MTU for IPv6 is 20 bytes larger then IPv4. This fact was not taken into account so IPv6 packets were larger then MTU resulting in fragmentation. Solution is to substract correct IP header size. Reviewed-by: Christine Caulfield 2014-09-06 Fabio M. Di Nitto [crypto] fix crypto block rounding/padding calculation libnss is "weird" in this respect as some block sizes are hardcoded, others need to be determined dynamically. For AES we need to use the values we know since GetBlockSize would return errors, for 3des (that hopefully nobody is using) the value returned by GetBlockSize is 8, but let's use the call into libnss to avoid possible conflicts with distro patching or older versions. Now, given the correct block size, the old calculation simply added block size to the hdr_size. This is not sufficient. We use _PAD encryption methods and we need to take that into account. _PAD is calculated given the current input buf len and rounded up to block size boundary, then block_size is added. Ideally we would do that on a per packet base but current transport infrastructure doesn't allow it yet. So round up the hdr_size to double the block_size reported by the cipher. Reviewed-by: Christine Caulfield 2014-08-26 Jan Friesse totemudpu: Send msgs to all members occasionally To follow spec it's needed to send messages to all nodes (not only active members) from time to time to detect merge. This is needed in situations when totemsrp merge timer isn't running (because there is enough messages sent by processors) to detect merge. Example scenario: - 3 nodes, all of them running cpgverify - One node is isolated (iptables for example) - Node is un-isolated Without this commit, node will not merge as long as the cpgverify is running. Reviewed-by: Christine Caulfield totemudpu: Implement member_set_active Member active is used for sending "multicast" messages only to members of ring. This reduces network load if some nodes are intentionally down. Only regular multicast message load is reduced (messages sent by totemudpu_mcast_noflush_send), because special messages (like hold cancel, join message, ...) still have to be send to all members to ensure correct behavior. Reviewed-by: Christine Caulfield totemrrp: Implement *_membership_changed All *_membership_changed calls totemnet_member_set_active passing 1 as active parameter for joined nodes and 0 for left nodes. Reviewed-by: Christine Caulfield totemnet: Add totemnet_member_set_active totemnet_member_set_active together with transport specific member_set_active makes possible for totemnet (and more interestingly transport) to be informed about membership changes. Reviewed-by: Christine Caulfield totem: Inform RRP about membership changes Services are informed about membership changes, but if same information is needed inside totemrrp or totemnet, it's impossible to gather this information. Patch makes this possible for now only for RRP with empty callbacks. Reviewed-by: Christine Caulfield 2014-08-25 Jan Friesse Makefile: Do not install TODO file TODO: Remove TODO file TODO file has many problems like it's not updated regularly, it's not updated at all in already distributed tarballs, ... All relevant RFEs were filled at github as issues with flag "TODO file convert" so file can finally be removed from git. Reviewed-by: Christine Caulfield 2014-08-22 Christine Caulfield corosync-quorumtool: add sort options Adds a -o option to corosync-votequorum so that the nodes list can be sorted by Address, node Id or Name. The default remains IP address. Signed-Off-By: Christine Caulfield Reviewed-by: Jan Friesse 2014-08-18 Christine Caulfield YKD: Fix loading of YKD quorum module Although YKD is currently unsupported, untested and decprecated it's handy for testing things in the quorum module. This patch allows YKD to actually load without an error. It does not fix anything else in the service! Also remove vsftype and its reference to YKD being the preferred and default provider from the corosync.conf man page, as that hasn't been true for a considerable time. Reviewed-by: Jan Friesse 2014-08-15 Christine Caulfield quorumtool: Sort output by nodeid corosync-quorumtool prints the node listing by IP address (as passed back to it from corosync) but this can be counter-intuitive if the node IDs aren't in the same order as the IP addresses. This patch sorts the nodes by node ID so that the output is easier for humans to parse. Reviewed-By: Jan Friesse 2014-08-12 Christine Caulfield votequorum: Add cmap key to reset wait_for_all It's possible in a two_node cluster (and others but it's more likely with just two) that a node could be booted up after downtime or failure and the other node is not available for some reason. In this case it would not be allowed to proceed because wait_for_all is enforced. This patch provides a cmap key to clear this flag in the desperate situation where that becomes necessary. It should only be used with extreme caution and will be wrapped up in pcs which should also check that fencing has been run. Signed-Off-By: Christine Caulfield Reviewed-by: Jan Friesse 2014-08-12 Jason HU Cancel token holding while in retransmition When there is no other activty on ring but only retransmition, and token is in hold mode, the retransmition will become slow. More over, if the retransmition is always fail but token rotation works well, then it takes quite a lone time (fail_to_recv_const * token_hold = 2500 * 180ms = 450sec) for the retransmit requester to meet the "FAILED TO RECEIVE" condition to re-construct a new ring. This problem can be solved by checking if retransmits are present before going into hold. If a node is the retransmit requester or the resender, it set my_token_held to 0 to speed up retransmition and omit further unnecessary sending of token_hold_cancel signal. Reviewed-by: Christine Caulfield 2014-08-05 Jan Friesse votequorum: Make qdev timeout in sync configurable Configuration option quorum.device.sync_timeout is available for setting qdevice poll timeout for synchronization phase. Default value is 30 sec. Reviewed-by: Christine Caulfield testvotequorum2: Opt for polling with old ringid Option -F is added to force sending old ringid for given number of times. Option is useful for testing failure scenario during corosync synchronization phase. Reviewed-by: Christine Caulfield votequorum: Block sync until qdevice poll If qdevice is registered a alive, corosync waits in sync phase until timeout expires or qdevice votes with correct nodeid parameter. This gives qdevice time to decide to vote or not undisturbed and without time hazard. Reviewed-by: Christine Caulfield ipc: Process votequorum messages during sync This is needed for qdevice to be able to process messages during synchronization phase. Reviewed-by: Christine Caulfield votequorum: Add ring id to poll call If votequorum service receives incorrect (not current) ringid, call is ignored and CS_ERR_MESSAGE_ERROR is returned. This and previous commits makes incompatible changes in votequorum API/ABI, so library version is increased. Reviewed-by: Christine Caulfield votequorum: Return current ring id in callback Returning ring id will be used in poll function. Reviewed-by: Christine Caulfield 2014-07-25 Christine Caulfield totemconfig: Make sure join timeout is less than consensus The thesis contains this paragraph: " The Join timeout is shorter than the Consensus timeout and is used to increase the probability that Join messages from all currently working processors are received during a single round of consensus." Empirically I can confirm that making join less than consensus can cause havoc with a cluster so I think we should enforce this. Reviewed-by: Jan Friesse 2014-07-24 Christine Caulfield config: Fix typos Fix several places where 'then' is used instead of 'than' in error messages and a comment. Reviewed-by: Jan Friesse 2014-07-24 Jan Friesse corosync-keygen: Replace printf/exit call with err Calling of err makes code shorter, easier to read and eliminates problems with forgotten newline characters. Reviewed-by: Christine Caulfield 2014-07-22 Jan Friesse totemconfig: refactor nodelist_to_interface func Move finding of bindaddr in nodelist to generally usable function totem_config_find_local_addr_in_nodelist and refactor config_convert_nodelist_to_interface function to use it. Reviewed-by: Fabio M. Di Nitto totemconfig: totem_config_get_ip_version Add totem_config_get_ip_version to get user configured ip version. Make totem_config_read use this newly introduced function. Reviewed-by: Fabio M. Di Nitto totemconfig: Free ifaddrs list Reviewed-by: Fabio M. Di Nitto 2014-07-21 Vladislav Bogdanov Slightly rework corosync-keygen. Allow it to create keyfile not in the hardcoded location. Drop root checks. Minor cosmetic fixes to the man-page. Reviewed-by: Jan Friesse 2014-07-21 Fabio M. Di Nitto be consistent in using CPPFLAGS vs CFLAGS Reviewed-by: Jan Friesse cleanup after test-driver update .gitignore and make maintainer-clean target Reviewed-by: Jan Friesse 2014-07-16 Vladislav Bogdanov Implement config file testing mode Reviewed-by: Jan Friesse 2014-07-15 Vladislav Bogdanov corosync-cmapctl: Allow -p option to delete keys Reviewed-by: Jan Friesse 2014-07-09 Jan Friesse Fix compiler warning introduced by previous patch QB loop signal handler prototype differs from signal(2) prototype. Solution is to create wrapper functions. 2014-07-03 zouyu Handle SIGSEGV and SIGABRT signals SIGSEGV and SIGABRT signals are now correctly handled (blackbox is dumped and logsys is finalized). Reviewed-by: Jan Friesse fix memory leak produced by 'corosync -v' Reviewed-by: Jan Friesse 2014-07-01 Kazunori INOUE systemd: Config example for corosync wd service Reviewed-by: Jan Friesse 2014-06-27 Jan Friesse votequorum: Do not process events during reload During reload, local_node_pos is deleted and reinstation is handled in totemconfig after reload is finished. votequorum handles this events and tries to reload it's configuration. This led to logging a little scary messages (even nothing bad is happening, because after local_node_pos reinstation everything back to normal). Solution is to stop processing events during reload. Sadly, simple tracking of config.reload_in_progress doesn't work because LibQB events triggering order is undefined so votequorum reload handler can be called before totemconfig (and before local_node_pos is reinstatied). So new config.totemconfig_reload_in_progress key is defined with very similar semanthic as config.reload_in_progress but set inside totem_reload_notify function. Votequorum then use this new key. Reviewed-by: Christine Caulfield Make config.reload_in_progress key read only It's not very good idea to allow user apps changing internal key reload_in_progress. Reviewed-by: Christine Caulfield 2014-06-12 Jan Friesse Doc: Enhance INSTALL file a bit Some information in INSTALL file were pretty outdated. This patch moves them closer to current release. Reviewed-by: Christine Caulfield coroparse: More strict numbers parsing Previous safe_atoi didn't check range of input values so if for example user used -1 s token timeout, it was converted to UINT32_MAX without letting user know. Another safe_atoi problem was using strtol. This works pretty well on 64-bit systems, where long integer is usually 64-bits long, sadly on 32-bit systems, it is usually 32-bit long. And because strtol returns signed integer, it was not possible to enter 32-bit value with highest bit set. Solution is to use strtoll which is guaranteed to be at least 64-bits long and check value range. Also error message now contains also information about expected value range. Reviewed-by: Christine Caulfield 2014-06-10 Konstantin Install doc: Correct a typo Reviewed-by: Jan Friesse 2014-06-09 Lidong Zhong init: change return value when starting corosync When corosync is started by systemd, it would be considered as failed because it returns a non-zero value, even though it starts sucessfully. Reviewed-by: Jan Friesse 2014-06-02 Jan Friesse Move ringid store and load from totem library Functions for storing and loading ring id was in the totem library. This causes problem, what to do when it's impossible to load or store ring id. Easy solution seemed to be assert, but sadly this makes hard for user to find out what happened (because corosync was just aborted and logsys didn't flush) Solution is to move these functions to main.c, where is much easier to handle error. This also makes libtotem free of any file system operations. Reviewed-by: Christine Caulfield Introduce get_run_dir function Run dir (LOCALSTATEDIR/lib/corosync) was hardcoded thru whole codebase. Totemsrp was trying to create and chdir into it, but also takes into account environment variable COROSYNC_RUN_DIR creating inconsistency. get_run_dir correctly returns COROSYNC_RUN_DIR (when set) or LOCALSTATEDIR/lib/corosync. This is now used by all functions instead of hardcoded string. All occurrences of mkdir/chdir are removed from totemsrp and chdir is now called in main function. Mkdir call is completely removed, because it was not used anyway (check in main.c was called before totemsrp init, so mkdir was never called) and also make install and/or package system should take care of creating this directory with correct permissions/context. Reviewed-by: Christine Caulfield logsys: Log warning if flightrecorder init fails Reviewed-by: Christine Caulfield logsys: Log error if blackbox cannot be created Reviewed-by: Christine Caulfield 2014-05-15 Jan Friesse totemiba: Fix incorrect failed log message rdma_join_multicast failed ... message parameters was swapped. Also information about multicast join is now logged as notice. 2014-05-14 Yevheniy Demchenko totemiba: Add multicast recovery Totemiba wasn't able to survive SubnetManager handover or restart. If SM was migrated to another node, corosync logged "multicast error" and losses connectivity. Commit should solve this situation. Reviewed-by: Jan Friesse 2014-05-09 hfu Indent: Remove newline before else branch start Reviewed-by: Jan Friesse Indent: Remove space in negation of expression Reviewed-by: Jan Friesse 2014-05-09 Kazunori INOUE upstart: Make job conf file configurable Reviewed-by: Jan Friesse 2014-05-07 Jan Friesse config: Allow dynamic change of token_coefficient token_coefficient change in cmap didn't triggered change. So only way how to change token_coefficient was editing config file and reload. Patch let's key totem.token_coefficient to be processed so token_coefficient can be dynamically changed. Reviewed-by: Christine Caulfield 2014-04-11 Jan Friesse init: Make init script configurable Init script loads /etc/sysconfig/corosync (or /etc/defaults/corosync) by default, but it didn't existed by default and also no options was defined. Patch adds COROSYNC_INIT_TIMEOUT (how many seconds to wait for ipc initialization) with default value 1 minute (instead of previous 10 seconds, what may be too small value for some productions) and COROSYNC_OPTIONS (by default empty) containing options directly passed to corosync executable. Specfile template is also modified to install example of init file configuration. Reviewed-by: Christine Caulfield 2014-03-25 Jan Friesse Add token_coefficient option Token coefficient is used only when nodelist is specified and contains at least 3 nodes. If so, real token timeout is then computed as token + (number_of_nodes - 2) * token_coefficient. This allows cluster to scale without manually changing token timeout every time new node is added. This value can be set to 0 resulting in effective removal of this feature. Reviewed-by: Christine Caulfield totemconfig: Log errors on key change and reload When volatile key was changed (cmap set or reload) and checks fails, nothing was logged. Values are now checked and error string is logged on problems. Also totem_config is dumped to log (DEBUG level) after every volatile key change and every reload. Reviewed-by: Christine Caulfield totemconfig: Key change process dependencies When key with dependency was changed, dependant keys were not recomputed. Nice example is consensus timeout. If token timout was changed, consensus timeout was not recomputed correctly (nether via cmap change of key nor via cfg reload). Solution is almost complete refactor of handling volatile defaults. totem_volatile_config_read now handles not only storing cmap key to totem_config structure, but also checking of existence, comparing with zero value and properly storing defaults. totem_set_volatile_defaults is gone. It's function was splitted into totem_volatile_config_read and totem_volatile_config_validate functions. Reload callback and change of key callback are now mostly same functions and both calls totem_volatile_config_read. Patch also fixes small memory leak. totem.vsftype key is not used for long time and original totem_volatile_config_read wasn't freeing allocated memory returned by icmap_get_string. Whole reading of totem.vsftype is removed. Reviewed-by: Christine Caulfield Really clear totemconfig nodes on reload When reload was called nodes were constantly added to totemconfig nodelist. So simple corosync-cfgtool -R resulted very quickly in filling whole array and segfault. Solution is to clear member_count. Clearing is also moved directly to put_nodelist_members_to_config to make sure it's always processed. Reviewed-by: Christine Caulfield Log: Make reload of logging work When reload was called multiple times (~20), logging to file stopped working. Main problem was hidden in the fact, that log file was opened multiple times, because even target_id was shared via subsystem loggers, file name was not. Solution is to ALWAYS set proper log file name into subsystem logger (copy is stored). This will not only fix problem but also removes small leak. Also if filename didn't changed, function can return sooner. Reviewed-by: Christine Caulfield 2014-03-17 Jan Friesse config: Handle totem_set_volatile_defaults errors When totem_set_volatile_defaults is called from totem_config_validate return code is unchecked. It's then perfectly possible to set (for example) join timeout to very small value (1) and consensus value is then set to 0 making corosync unable to create membership. Reviewed-by: Christine Caulfield 2014-02-26 Jan Friesse votequorum: Properly initialize atb and atb_string icmap_get_* behavior is to NOT modify passed variable when it doesn't success. So we must initialize variable before icmap_get_* call. Reviewed-by: Fabio M. Di Nitto 2014-02-25 Jan Friesse mon: Make monitoring work Reviewed-by: Christine Caulfield mon: Pass correct pointer to inst Reviewed-by: Christine Caulfield mon: Fix comparsion typo Reviewed-by: Christine Caulfield mon: Make mon compilable with libstatgrab ver 0.9 Reviewed-by: Christine Caulfield 2014-02-19 Jan Friesse cpg: Make sure left nodes are really removed When node is paused and other nodes has in meantime exited cpg process, paused node after resume doesn't update it's membership correctly so on previously paused node exited cpg process is still visible. Solution is to compare join list with cpd and remove all pids which are not included in join list. Reviewed-by: Christine Caulfield cpg: Make sure nodid is always logged as hex num Also number is prefixed by 0x so it's easier to spot that number is hexadecimal. Reviewed-by: Christine Caulfield cpg: Refactor mh_req_exec_cpg_procleave Most of functionality is moved to do_proc_leave function to make it reusable. Reviewed-by: Christine Caulfield 2014-02-18 Jan Friesse totemsrp: Fix typo with cont gather Patch f3ffd3da5c71a10e1783a38e50bafc61192854f6 introduced named states of state-machine, but sadly contains logical problem causing stats.continuous_gather increasing even when it shouldn't. Problem is not critical, because continuous_gather is set to 0 on successful membership creation. Reviewed-by: Christine Caulfield 2014-02-17 Christine Caulfield votequorum: Add extended options to auto_tie_breaker This patch adds more flexibility to the auto_tie_breaker feature of votequorum. With this, not only can the lowest nodeid be used as a tie breaker, but also the highest, or a node from a nominated list. If there is a list of nodes, the first node in the list that was not part of the previous partition is used. This allows the user to specify a preferred set of nodes but prevents a split-brain if the cluster divides evenly with a node in each half. Reviewed-by: Jan Friesse 2014-01-23 Masatake YAMATO Free object allocated at quorum_register_callback Memory object allocated with malloc at quorum_register_callback is not freed. The object is linked to internal_trackers_list. The object is unlinked at quorum_unregister_callback. However, it is not freed at the function. Reviewed-by: Jan Friesse 2014-01-14 Jan Friesse Properly check result of symlink Error message is displayed when it's impossible to create symlink to fdata file. Reviewed-by: Christine Caulfield Fix cppchecks warning Reviewed-by: Christine Caulfield Close devnull file handler Reviewed-by: Christine Caulfield 2014-01-14 Christine Caulfield votequorum: Add missing man pages Man pages for votequorum_qdevice_update and votquorum_qdevice_master_wins were missing from the last commit. 2014-01-13 Jason totem: Drop invalid join msg in operational state According to the totem paper, if a processor receives a join message in the operational state and if the receivers identifier is in the join messages fail list, then join message should be ignored. By applying this validation of join messages, we can avoid unnecessary switching from operational state to gather state(or even lead to rings can not be merged) like the following to happen. 1. Initially, there is only one ring contains three nodes, say ring(A,B,C). 2. A and B network partition, "in the same time", C is down. 3. Node A sends join message with proclist:A,B,C. faillist:NULL. Node B sends join message with proclist:A,B,C. faillist:NULL. 4. Both A and B consensus timeout due to network partition. 5. A and B network remerged. 6. Node A sends join message with proclist:A,B,C. faillist:B,C. and create ring(A). Node B sends join message with proclist:A,B,C. faillist:A,C. and create ring(B). 7. Say join message with proclist:A,B,C. faillist:A,C which sent by node B is received by node A because network remerged. 8. Node A shifts to gather state and send out a modified join message with proclist:A,B,C. faillist:B. Such join message will prevent both A and B from merging. 9. Node A consensus timeout (caused by waiting node C) and sends join message with proclist:A,B,C. faillist:B,C again. Same thing happens on node B, so A and B will dead loop forever in step 7, 8 and 9. As the paper also said: "If a processor receives a join message in the operational state and if the sender's identifier is in the receiver's my_proclist and the join message's ring_seq is less than the receiver's ring sequence number, then it ignores the join message too." So these patch applying these validations of join messages altogether. Reviewed-by: Steven Dake Reviewed-by: Jan Friesse 2014-01-13 Jan Friesse systemd unit: Make sure network is really up Change network.target to network-online.target to make sure network is really up and running when starting corosync. Reviewed-by: Christine Caulfield 2014-01-13 Christine Caulfield votequorum: Improve/add documentation for quorum device API Improve the man pages for the votequorum qdevice API and include them in the build. Also improve the testvotequorum2 test program. Reviewed-by: Jan Friesse 2014-01-07 Christine Caulfield votequorum: Add persistent expected_votes tracking. This patch adds the option to store expected_votes to persistent storage. This is needed to allow_downscale to operate properly. 2013-11-26 Jan Friesse cfgtool: return error on reload failure If reload fails, return code is set to value >0 to indicate error. Reviewed-by: Christine Caulfield 2013-11-08 Christine Caulfield man pages: Note that votequorum's allow_downscale is unsupported Reviewed-by: Fabio M. Di Nitto 2013-11-04 Jan Friesse logsys: Make logging of totem work again Because of change in libqb (9abb686) logging of TOTEM subsystem stopped working. Instead of rely on previous behavior (implicit substring match), all totem files are now explicitly given. Also QB subsystem now uses comma separated filelist instead of previous function calling. Reviewed-by: Christine Caulfield 2013-10-24 Masatake YAMATO totemsrp: Show English message when memb_state_gather_enter is called The reason why memb_state_gather_enter is invoked was printed in integer code. This patch introduces human readable English messages for the code. Reviewed-by: Jan Friesse 2013-09-20 Yevheniy Demchenko totemiba: Check if configured MTU is allowed by HW Solution use aproximation of totem structures. This needs to be rewritten in proper way. Also MTU checking should be implemented for IP transports. Reviewed-by: Jan Friesse totemiba: Fix parameters position for poll_add Parameters in functions like mcast_cq_send_event_fn, ... were defined in incorrect order. Also their names were weird. Reviewed-by: Jan Friesse totemiba: Del channel fd from poll before destroy Corosync freezes after several peer node connects/disconnects. The freeze happens in recv_token_cq_recv_event_fn in ibv_get_cq_event call. The problems is in fact, that after each peer node connect, recv_token_accept_destroy is called, which tries to call poll_dispatch_delete _after_ freeing of completion_channel. As completion_channel contains fd, handlers are not disconnected from poller properly. This leads to complete inconsistency in subsequent calls to handlers. Reviewed-by: Jan Friesse totemiba: Properly allocate RDMA buffers 1. In UD mode receivnig side of RDMA application should have enough space in buffer to hold data and GRH. Also, sge.length on the receiving size should be set to max_msg_size + sizeof (struct ibv_grh). Current corosync doesn't take grh in the account and does not work if mtu is set to the real mtu of IB port (it works if netmtu is set to < 2048-40). 2. ibv_wc.byte_len is the actual lentgh of the received packet, i.e. msg_len + GRH. GRH length should be substracted in further proceeding. If not, it might cause problems when messages get retransmitted, as their apparent size will constantly grow. 3. Current corosync will not work with rdma and mtus > 2048. Most modern IB HW supports 4096 mtu. Reviewed-by: Jan Friesse 2013-09-12 Christine Caulfield Reload: document config.reload_in_progress in man page Reload: Add atomic reload to log config When a reload is in progress, wait until it has all finished before re-reading all of the logging parameters Reviewed-by: Jan Friesse Reload: Add atomic reload to totemconfig When a reload is in progress, wait until the whole thing has finished before setting parameters Reviewed-by: Jan Friesse Reload: Add reload code to cfg Add the code to do the actual corosync.conf reload to cfg, along with a corosync-cfgtool -R command to trigger it Reviewed-by: Jan Friesse Reload: Make coroparse use a designated icmap hash table Pass an icmap hashtable into coroparse so we can load it into a temporary one during reload Reviewed-by: Jan Friesse 2013-09-10 Jan Friesse icmap: Add func to test equality of two key values Reviewed-by: Christine Caulfield 2013-09-10 Christine Caulfield [PATCH] Replace freopen with open/dup2 when daemonizing This patch replaces the existing freopen method of forcing stdin/out/err to /dev/null with the more usual system of open/dup2. While I don't like posting patches I don't fully understand, this patch seems to fix a problem where stdout/err get assigned to a socket causing double logging output on systemd. Reviewed-by: Jan Friesse 2013-09-03 Christine Caulfield Add log message to exit signal handler I've seen a few instances where corosync has shut down for apparently 'no reason'. In fact most of the time the shutdown has been caused by an external source (often an init script) but it's not been obvious what has happened and people implicate the deamon This patch simply adds a log message to the signal handler when it is called so that the cause of the shutdown is obvious. Reviewed-by: Jan Friesse 2013-08-29 Jan Friesse icmap: Add map copy function Reviewed-by: Christine Caulfield icmap: Add function to return item data pointer icmap_get_r is now implemented using this function. Function is not very safe tho defined as static. Reviewed-by: Christine Caulfield icmap: Fix value len checking for strings Implementation should allow pass only parts of string (shorten string) and must prohibit reading of uninitialized memory. Reviewed-by: Christine Caulfield icmap: Add function to return global icmap Reviewed-by: Christine Caulfield 2013-08-27 Jan Friesse icmap: Allow multiple icmap instances Patch adds reentrant version of most of functions (with exception of RO flags support and tracking) to allow multiple icmap instances existence inside corosync. Reviewed-by: Christine Caulfield 2013-08-19 Michael Chapman Fix scheduler pause-detection timeout qb_loop_timer_add expects the timeout to be in nanoseconds, but we were passing the value in milliseconds. Scale the timeout appropriately. Reviewed-by: Jan Friesse 2013-07-10 Jan Friesse Remove dir pragma for xml2conf.xsl in specfile Reviewed-by: Fabio M. Di Nitto 2013-07-09 Jan Friesse cts: Update DC_IDLE pattern 2013-07-08 Kazunori INOUE Use restart policy in the corosync-notifyd unit Reviewed-by: Jan Friesse 2013-07-04 David Vossel ipc_glue: proper ref counting during service connection iteration Reviewed-by: Jan Friesse ipc_glue: Remove connection unref with no matching reference. We don't reference the connection object on creation, so there is on reason to dereference it on disconnect. Reviewed-by: Jan Friesse ipc_glue: Fixes connection ref count leak Reviewed-by: Jan Friesse 2013-07-01 Kazunori INOUE systemd: fix typo in unit file Reviewed-by: Jan Friesse notifyd: fix handle dispatch functions results Reviewed-by: Jan Friesse 2013-06-27 Christine Caulfield The corosync message "A processor joined or left the membership" is vague and unhelpful. People have to look for the following quorum message and try to deduce which nodes have joined or left from that and past membership messages, even though the routine printing the message already has this information to hand. This patch fixes that message so that it prints the nodeids of the nodes that have joined/left the cluster. Signed-Off-By: Christine Caulfield Reviewed-By: Jan Friesse 2013-06-21 Jan Friesse Log: Output parse errors to syslog When corosync was started in daemon mode and there was parse error, no way existed how to find out what happened (this is usual situation with systemd enabled systems). Solution seems to be output to syslog by default. Also redundant line with setting logsys is removed because it's no longer needed, because FORK and THREADED mode options has no longer effect. FORK is handled by libqb by default and THREADED mode is forced by calling logsys_thread_start. Reviewed-by: Christine Caulfield totemconfig: Prevent leak of cluster_name str Reviewed-by: Christine Caulfield service: Fix memleak in service_unlink_and_exit Reviewed-by: Christine Caulfield 2013-06-20 Eric Raymond Fix patch for corosync.conf.5 he markup around an example is impossible to lift to XML or HTML cleanly. Simplifying it fixes the problem. Reviewed-by: Jan Friesse 2013-06-18 Jan Friesse cpg: Set umask in memory_map function Reviewed-by: Christine Caulfield ipc_glue: Check service name len Reviewed-by: Christine Caulfield ipc_glue: Introduce constant for service name len Reviewed-by: Christine Caulfield cfg: Check interface status and name length Reviewed-by: Christine Caulfield cfg: Check number of interfaces Reviewed-by: Christine Caulfield cfg: Introduce CFG_MAX constants Instead of magic numbers, use constant. Reviewed-by: Christine Caulfield totemrrp: Make status string shorter Status string should be same lenght as needed for cfg ringstatusget function. Reviewed-by: Christine Caulfield totem: Don't leak instance variable on crypto fail Reviewed-by: Fabio M. Di Nitto totemudpu: Handle fd leak in totemudpu Reviewed-by: Fabio M. Di Nitto totemconfig: Check length of rrp_mode string Reviewed-by: Fabio M. Di Nitto coroparse: Ensure that config items fits into cmap Reviewed-by: Fabio M. Di Nitto cpg: Check cpg zc buffer path name length Reviewed-by: Fabio M. Di Nitto 2013-06-17 Jan Friesse votequorum: Prevent leak in qdevice_is_configured Also LEAVE from function is now properly logged. Reviewed-by: Fabio M. Di Nitto 2013-06-13 Jan Friesse ipc_cfg: Make coverity happy Reviewed-by: Fabio M. Di Nitto Initialize error variable in ykd_init Reviewed-by: Fabio M. Di Nitto Initialize node_found in nodelist_to_interface fun Reviewed-by: Fabio M. Di Nitto Initialize item in cmap_mcast_send Reviewed-by: Fabio M. Di Nitto cmapctl: Remove unnecessary access check Reviewed-by: Fabio M. Di Nitto votequrorum: Assert sender nodeid is known Reviewed-by: Fabio M. Di Nitto quorumtool: Properly check nodeid cli param Return value of strtol can be negative, but result was assigned to unsigned integer. To make check correct, result is first assigned to signed variable, checked, and then assigned to unsigned variable. Reviewed-by: Fabio M. Di Nitto Handle errors when getting SC_PAGESIZE Reviewed-by: Fabio M. Di Nitto Check result of logsys_subsys_create Reviewed-by: Fabio M. Di Nitto Check logsys_format_set result in logsys setup Reviewed-by: Fabio M. Di Nitto Use proper totem_ip_address size in memset Reviewed-by: Fabio M. Di Nitto Free icmap strings in logconfig Reviewed-by: Fabio M. Di Nitto Properly break MAIN_CP_CB_DATA_STATE_QDEVICE state Reviewed-by: Fabio M. Di Nitto Do not dereference format_buffer when it's NULL Reviewed-by: Fabio M. Di Nitto Check icmap str get for clustername Even this check is really not needed, it's nice to have it and on fault ensure that cluster_name is really NULL. Reviewed-by: Fabio M. Di Nitto Handle dispatch functions results On error, exit corosync-notifyd properly. Reviewed-by: Fabio M. Di Nitto Properly check result of stat func in coroparse Reviewed-by: Fabio M. Di Nitto testcpg: Check length of input group name Reviewed-by: Fabio M. Di Nitto common ta: Close client sockets Reviewed-by: Fabio M. Di Nitto common ta: Close listener socket Reviewed-by: Fabio M. Di Nitto test sam: Free temp str allocated by cmap Reviewed-by: Fabio M. Di Nitto sam test agent: Assert results of send func Reviewed-by: Fabio M. Di Nitto votequorum test agent: Assert results of send func Reviewed-by: Fabio M. Di Nitto cpg test agent: Test len of name for cpg_join Reviewed-by: Fabio M. Di Nitto cpg test agent: Cfg shutdown flag is not bitfield Reviewed-by: Fabio M. Di Nitto cpg test agent: Assert results of send function Reviewed-by: Fabio M. Di Nitto cpg test agent: Fix typo in assert Assert should compare rc, instead of setting it. Reviewed-by: Fabio M. Di Nitto Rename make target coverity Makefile target "coverity" is renamed to coverity-aggressive, and target coverity is defined as a little less aggressive. Reviewed-by: Fabio M. Di Nitto 2013-05-24 Michael van der Westhuizen Allow corotypes.h to be included from C++ code. 2013-05-21 Jan Friesse Remove unnecessary mmap in cpg Code for zero-copy in cpg does following mmaps: - Mmap anonymous, private memory to some address (-> malloc) - Mmap shared memory of fd to address returned by first mmap (effectively shadows first mapping) This is not necessary and only one mapping is needed. Reviewed-by: Steven Dake Reviewed-by: Fabio M. Di Nitto 2013-04-16 Jan Friesse Install sysconfig/corosync-notifyd in specfile Reviewed-by: Fabio M. Di Nitto Improve corosync-notifyd example Example now contains default option -d, so corosync-notifyd init script don't fall. Also description is improved a little bit. Reviewed-by: Fabio M. Di Nitto 2013-04-12 Masatake YAMATO Fix a typo in README.recovery Fix a typo. Reviewed-by: Jan Friesse 2013-04-10 Kazunori INOUE Add Upstart job configuration file Reviewed-by: Fabio M. Di Nitto 2013-04-08 Jan Friesse Detect big scheduling pauses Add poll timer scheduler to be called 3 times per token timeout. If poll timer was not called for more then 0.8 * token timeout, it means corosync process was not scheduled and ether token_timeout should be increased or load should be reduced (useful for VM, where host is overcommitted so VM is not scheduled as expected). Reviewed-by: Fabio M. Di Nitto 2013-04-03 Andrei Belov Added checks for "--as-needed" and "--version-script" linker flags. This makes possible to build Corosync from sources on SunOS 5.11, Mac OS X 10.8.3 and probably other systems with non-GNU linker. Reviewed-by: Fabio M. Di Nitto 2013-04-02 Jan Friesse Support for numerical uid/gid Reviewed-by: Fabio M. Di Nitto 2013-04-02 Yuichi SEINO build: pass enable options to "make rpm" from configure Reviewed-by: Fabio M. Di Nitto 2013-03-28 Andrei Belov Improved POSIX-compliant handling of getpwnam_r() and getgrnam_r(). Reviewed-by: Jan Friesse 2013-03-27 Jan Friesse Make cts work with pacemaker 1.1.9 This is counterpart of adcc21a30c70a40861736bc9d902c2ef2d4b42c4 in pacemaker. 2013-03-21 Jan Friesse totempg: Make iov_delv local variable Reviewed-by: Fabio M. Di Nitto cfgtool: Retry shutdown on CS_ERR_TRY_AGAIN It may be nice to deliver macro cs_repeat as default in some include file. Reviewed-by: Fabio M. Di Nitto 2013-03-20 Jan Friesse cts: Output nodeid consistently as unsigned int Reviewed-by: Fabio M. Di Nitto 2013-03-19 Xia Li Convert the nodeid byte order to be aligned with network order When using corosync with clear_node_high_bit setting to yes, the highest bit is cleared. When all the cluster nodes are in one subnet, we probably configure the IP addresses as follows: node1: 147.2.207.64 node2: 147.2.207.192 If the byte order of the nodeid is little endian, wiping off the highest bit will make the two nodes have the same nodeid! This patch fixes this by converting the nodeid to network order. Reviewed-by: Jan Friesse 2013-03-08 Jeremy Fitzhardinge Handle ERANGE from getpwnam_r / getgrnam_r These functions return ERANGE if the supplied buffer is too small to fit a line. Try doubling the buffer a few times until it works. 2013-02-26 Michael Chapman build: make --disable-testagents work The --disable-testagents option sets enable_testagents to "no". This variable should always be explicitly tested against "yes", not just that it is non-empty. Reviewed-by: Jan Friesse 2013-01-31 Jan Friesse Handle unexpected closing brace in config file If configuration file contains closing brace before opening brace at top level, configuration parsing is stopped and file is not completely parsed. Solution is to detect extra closing brace and display error. Reviewed-by: Fabio M. Di Nitto Handle colon in configuration file If colon was entered as part of value on end of value, it is deleted. This makes impossible to enter (legal) IPv6 address ending with :: (like fed0::). Also when line contains both brace and colon, it is parsed twice (first as key = value and second as start of section). This is handled by continue in if section. Reviewed-by: Fabio M. Di Nitto 2013-01-31 Fabio M. Di Nitto votequorum: port to sync API (take 2) Reviewed-by: Jan Friesse 2013-01-14 Fabio M. Di Nitto crypto config: update man pages and examples Reviewed-by: Jan Friesse totemconfig: enforce hmac config when crypto is enabled Reviewed-by: Jan Friesse 2013-01-14 Kazunori INOUE log: move Corosync started log messages "Corosync Cluster Engine ... started" message is shown after logsys is full configured. Reviewed-by: Jan Friesse 2013-01-14 Fabio M. Di Nitto crypto: drop < 2.3 protocols and onwire compat Reviewed-by: Jan Friesse totemcrypto: fix hmac key initialization Reviewed-by: Jan Friesse 2012-12-12 Jan Friesse Move qb_loop creation after daemonization Creating qb_loop before daemonization is not problem for poll or epoll type loops, but it's problem for kqueue, because kqueue is not shared in child with parent after fork. Reviewed-by: Fabio M. Di Nitto 2012-12-06 Jan Friesse cmap: Handle NULL params in few more functions Reviewed-by: Fabio M. Di Nitto 2012-12-03 Jan Friesse Add option to specify ip version Default is ipv4. Reviewed-by: Fabio M. Di Nitto 2012-11-22 Jan Friesse Add waiting_trans_ack also to fragmentation layer Patch for support waiting_trans_ack may fail if there is synchronization happening between delivery of fragmented message. In such situation, fragmentation layer is waiting for message with correct number, but it will never arrive. Solution is to handle (callback) change of waiting_trans_ack and use different queue. Reviewed-by: Fabio M. Di Nitto Handle segfault in backlog_get If instance->memb_state is not OPERATION or RECOVERY, we was passing NULL to cs_queue_used call. Reviewed-by: Fabio M. Di Nitto 2012-11-22 Steven Dake Fix problem with sync operations under very rare circumstances This patch creates a special message queue for synchronization messages. This prevents a situation in which messages are queued in the new_message_queue but have not yet been originated from corrupting the synchronization process. Reviewed-by: Jan Friesse Reviewed-by: Fabio M. Di Nitto 2012-11-22 Jan Friesse Fix handling of NULL parameters in cmap Reviewed-by: Fabio M. Di Nitto 2012-11-22 Fabio M. Di Nitto totemcrypto: implement crypto packet format 2.2 and crypto_compat: config opt Reviewed-by: Jan Friesse Update .gitignore files Untracked files: (use "git add ..." to include in what will be committed) compile init/corosync init/corosync-notifyd test/ploadstart Reviewed-by: Jan Friesse 2012-11-21 Evgeny Barskiy corosync to start in infiniband + redundant ring active/passive mode Corosync now works with infiniband transport in any redundant ring mode Reviewed-by: Jan Friesse 2012-11-20 Fabio M. Di Nitto votequorum: fix handling of expected_votes/votes changes from cmapctl and allow natural selection to take place.... Reviewed-by: Jan Friesse quorum-tool: use option to generate machine parsable output Reviewed-by: Jan Friesse 2012-11-08 Jan Friesse Add support for selecting IPC type Reviewed-by: Fabio M. Di Nitto Check successful initialization of IPC Reviewed-by: Fabio M. Di Nitto 2012-11-07 Jan Friesse Enahnce manpages a little bit Reviewed-by: Fabio M. Di Nitto 2012-11-07 Angus Salkeld Try reduce the number of sprintf's Reviewed-by: Jan Friesse Override the link_all_deplibs=no in ubuntu but allow the user to disable this. Reviewed-by: Fabio M. Di Nitto 2012-11-06 Jan Friesse Merge pull request #2 from dfcluster/master Update corosync man page 2012-11-05 Jan Friesse If failed_to_recv is set, consensus can be empty If failed_to_recv is set (node detect itself not able to receive message), we can end up with assert, because my_failed_list and my_member_list are same list. This is happening because we are not following specification and we allow to mark node itself as failed. Because if failed_to_recv is set and we reached consensus across nodes, single node membership is created (ignoring both fail list and member_list), we can skip assert. Reviewed-by: Fabio M. Di Nitto 2012-11-05 Fabio M. Di Nitto quorumtool: add local nodeid to global quorum info section Reviewed-by: Jan Friesse quorumtool: add (local) next to the nodename when displaying node data Reviewed-by: Jan Friesse quorumtool: change default command from -h to -s default run will show status instead of help text Reviewed-by: Jan Friesse 2012-10-30 dfcluster Update man/corosync.conf.5 2012-10-29 Jacek Konieczny link libtotem_pg to libqb The libtotem_pg library uses symbols from libqb, so it should be explicitely linked with it. This doesn't cause problems for corosync binary itself, as it is linked to both libraries, but can cause problems if anything else links to libtotem_pg.so and automated checkers can show this as a library problem. Reviewed-by: Jan Friesse Fix dbus configuration install The corosync-signals.conf DBus configuration file was not installed even if DBus support was enabled because of a configure test error. Reviewed-by: Jan Friesse 2012-10-17 Jan Friesse Correctly check if service was unloaded my_processing_idx is pointer to received service list, instead of global service number. If we check state of service we should use service_id instead of my_processing_idx. Reviewed-by: Fabio M. Di Nitto Define AES_*_KEY_LENGTH if not defined Reviewed-by: Fabio M. Di Nitto 2012-10-16 Andreas Gruninger Missing space in man/Makefile.am Reviewed-by: Jan Friesse 2012-10-15 Fabio M. Di Nitto totemcrypto: add support for different encryption methods (backport from nsscrypto kronosnet code) Reviewed-by: Jan Friesse 2012-10-11 Jan Friesse Change specfile URL and Source Reviewed-by: Fabio M. Di Nitto Document config_version option Reviewed-by: Fabio M. Di Nitto 2012-10-10 Jan Friesse Use systemd-rpm macros in specfile Reviewed-by: Fabio M. Di Nitto 2012-10-09 Jan Friesse Enhance spec file Weird construct buildtrunk is gone. Instead of that, we use bcond feature. Also buildtrunk is renamed to runautogen, because SVN era is gone. Reviewed-by: Fabio M. Di Nitto 2012-10-08 Jan Friesse Make totemiba compile again Return back "Totem is unable to form..." message This patch returns back SUBJ functionality. It rely on fact, that sendmsg will return error, and if such error is returned for long time, it's probably because of firewall. Reviewed-by: Fabio M. Di Nitto Move "Totem is unable to form..." message to main Reviewed-by: Fabio M. Di Nitto Use unix socket for local multicast loop Instead of rely on multicast loop functionality of kernel, we now use unix socket created by socketpair to deliver multicast messages to local node. This handles problems with improperly configured local firewall. So if output/input to/from ethernet interface is blocked, node is still able to create single node membership. Dark side of the patch is fact, that membership is always created, so "Totem is unable to form a cluster..." will never appear (same applies to continuous_gather key). Reviewed-by: Fabio M. Di Nitto 2012-10-04 Fabio M. Di Nitto man page: fix quorum references 2012-10-03 Jan Friesse Store config_version of other nodes Config version of other nodes is stored in runtime.totem.pg.mrp.srp.members.NODEID.config_version key. Also when local config_version is changed, all nodes are informed. Reviewed-by: Fabio M. Di Nitto 2012-10-02 Jan Friesse Support for check of config version on start Config version is requested from other nodes. If our config version is not 0 and differes from highest config version of other nodes, corosync quits. Reviewed-by: Fabio M. Di Nitto Make cmap_mcast_send return correct error code Reviewed-by: Fabio M. Di Nitto Make service_build contain correct number of msgs Reviewed-by: Fabio M. Di Nitto Align items in cmap_mcast_send Aligning function (kernel style magic) MAR_ALIGN_UP is used for aligning of items in req_exec_cmap_mcast message. Reviewed-by: Fabio M. Di Nitto Support for flt and dbl in mcast_endian_convert Reviewed-by: Fabio M. Di Nitto Add support for swab float and double This uses general swabbin function which is able to swab every byte in array. Reviewed-by: Fabio M. Di Nitto Add support for sending cmap values to wire Function is little more complex, but it is designed to be used in future without big changes. Reviewed-by: Fabio M. Di Nitto Parse config_version as 64-bit uint Reviewed-by: Fabio M. Di Nitto 2012-09-27 Jan Friesse Don't access invalid mem in totemconfig interfaces When ringnumber in config file was set to value bigger or equal to INTERFACE_MAX, we are using this big value as index to totemconfig interfaces array, resulting to access to invalid memory and segfault. Instead of that, ringnumber is now checked and proper error message is printed if value is too big. Reviewed-by: Fabio M. Di Nitto 2012-09-19 Jan Friesse Move some totem and cpg messages to trace level Messages which are flow messages, rather then lifecycle are now logged in trace level. Reviewed-by: Fabio M. Di Nitto Add support for debug level trace in config file Reviewed-by: Fabio M. Di Nitto 2012-09-12 Fabio M. Di Nitto icmap: fix mapping return codes Reviewed-by: Angus Salkeld 2012-09-11 Fabio M. Di Nitto build: fix indirect linking vs rpath by linking --as-needed libtotem_pg links against libnss/nspr and correctly sets RPATH corosync links against libtotem_pg, but libtool (via .la) enforces an extra layer of linking against libnss/nspr without setting RPATH. corosync final binary can't resolve the second linking and fails to load. This issue is visible only on NetBSD that enforces a much stricter use of rpath (vs other OS/distros). Using --as-needed avoids that and it's generally safe to use on other OS'es. Reviewed-by: Christine Caulfield 2012-09-10 Fabio M. Di Nitto build: make secure build optional apparently some versions of gcc accepts the pie/relro bits but fails to produce a working binary (freebsd9) Reviewed-by: Angus Salkeld build: fix regression with handling fPIC and DPIC Reviewed-by: Angus Salkeld 2012-09-07 Fabio M. Di Nitto build: add support for relro and bindnow Reviewed-by: Jan Friesse build: autodetect if compiler support -fPIE and -pie for linking Reviewed-by: Jan Friesse build: clean AM_CFLAGS and AM_CPPFLAGS usage around also set commont include dirs. fPIC and DPIC are automatically detected and added as required by libtool. We don't need to carry it around. Reviewed-by: Jan Friesse totemconfig: drop unnecessary includes Reviewed-by: Jan Friesse 2012-09-06 Jan Friesse Remove newline in logsys_config_file_set_unlocked Also remove commented leftover. Reviewed-by: Fabio M. Di Nitto Make threaded log work Previous two log releated patches tried to solve few problems with threaded libqb, but introduced regressions when running in daemon mode. This patch takes bigger hammer and hopefully solves all problems. Reviewed-by: Fabio M. Di Nitto 2012-09-05 Jan Friesse Ensure qb_log thread is started Reviewed-by: Fabio M. Di Nitto 2012-09-03 Jan Friesse Ensure no garbage left in msghdr for sendmsg call Reviewed-by: Steven Dake Use uint8_t in setsockopt when needed Reviewed-by: Steven Dake OpenBSD getifaddrs returns netmask without sa_family So we relax netmask check and set to same family as ipaddr if needed Reviewed-by: Steven Dake Add header files when needed Reviewed-by: Steven Dake Make use of EBADMSG conditional Reviewed-by: Steven Dake 2012-08-31 Angus Salkeld Fix cpg_membership_get() The wrong size was getting set in exec/cpg.c Reviewed-by: Fabio M. Di Nitto 2012-08-30 Fabio M. Di Nitto build: drop OS detection Reviewed-by: Jan Friesse build: bring SOLARIS up to the same standard as other OSes drop all SOLARIS specific ifdefs and replace them with feature checks Reviewed-by: Jan Friesse build: drop TS_CLASS definition, used nowhere Reviewed-by: Jan Friesse build: drop COROSYNC_BSD out of configure Reviewed-by: Jan Friesse totemip: clean up headers a lot more getifaddrs is always available if there is freeifaddr. all BSD and openindiana have it defined in ifaddr.h. drop a bunch of obsoleted headers. Reviewed-by: Jan Friesse build: drop MAP_ANONYMOUS check from configure define it only in case it's not there Reviewed-by: Jan Friesse build: drop COROSYNC_DARWIN definition not referenced anywhere in the code Reviewed-by: Jan Friesse build: drop completely linux detection from now on there are no unsupported OS'es... Reviewed-by: Jan Friesse build: make libstatgrab the facto default for monitoring service drop duplicate code and remove the last COROSYNC_LINUX ifdefs around Reviewed-by: Jan Friesse totemip: add missing include Reviewed-by: Jan Friesse build: use MADV_NOSYNC only when it's defined so far only FreeBSD defines it. Reviewed-by: Jan Friesse build: make exec/totemip os detection free Reviewed-by: Jan Friesse build: drop _SEM_SEMUN_UNDEFINED not referenced anywhere in the code Reviewed-by: Jan Friesse 2012-08-30 Jan Friesse Log: Use threaded mode for syslog and file log Syslog and file log can block, so it's good idea to use libqb threaded mode to prevent it. Reviewed-by: Fabio M. Di Nitto Use native IPC mechanism Instead of hardcoded SHM, we should use NATIVE, so libqb is able to find out what is best/availiable mechanism. Reviewed-by: Fabio M. Di Nitto Add la, lo and .libs files/directory to gitignore Reviewed-by: Fabio M. Di Nitto 2012-08-30 Fabio M. Di Nitto build: fix library version export in ELF header Reviewed-by: Jan Friesse 2012-08-29 Fabio M. Di Nitto build: fix spec file creation hopefully once and for all... Reviewed-by: Jan Friesse spec: cleanup spec file to be slightly smarter move all the conditionals in 2 variables to make it easier to read and maintain and fix install of dbus-signal file Reviewed-by: Jan Friesse build: fix do_snmp conditionals Reviewed-by: Jan Friesse 2012-08-28 Fabio M. Di Nitto build: fix make rpm remove .la files from binary rpm Reviewed-by: Jan Friesse build: cleanup configure.ac for non-linux OS'es libstatgrab ships with pkg-config file. Use it. watchdog is implemented only on linux. Error out if necessary. Reviewed-by: Jan Friesse build: drop PATH_MAX definition from dark ages Reviewed-by: Jan Friesse build: drop redefine of NAME_MAX since nothing references it anylonger Reviewed-by: Jan Friesse build: drop last reference to OS_CPPFLAGS and use AC EXTENSIONS instead Reviewed-by: Jan Friesse build: fix build on openindiana 151a openindiana toolchain is rather messy. This is the first cut only Reviewed-by: Jan Friesse build: remove bashism in cc support check this is required for all systems that don't use bash for /bin/sh Reviewed-by: Jan Friesse build: drop SOLARIS_OPTS and DARWIN_OPTS SOLARIS was unused DARWIN needs verification Reviewed-by: Jan Friesse build: minor cleanup and final removal of OS_LDFLAGS Reviewed-by: Jan Friesse build: rework snmp library detection and setting of CFLAGS this allows to drop more OS_* specific bits Reviewed-by: Jan Friesse build: drop more dlopen leftovers from dinosaur era... Reviewed-by: Jan Friesse build: make monitoring optional in corosync exec Reviewed-by: Jan Friesse build: update .gitignore files Reviewed-by: Jan Friesse build: fix make distcheck Reviewed-by: Jan Friesse build: make path to bash configurable at build time Reviewed-by: Jan Friesse build: order library install to make sure libsam can relink against libcmap Reviewed-by: Jan Friesse build: fix usage of sed and drop build-aux/genman "sed -i" is a GNU specific extention. Replace with more portable version and drop completely genman in favour of a make rule. Reviewed-by: Jan Friesse test: fix testcpg build on FreeBSD9 HOST_NAME_MAX is intentionally NOT defined on BSD. Users of HOST_NAME_MAX should be using sysconf or use very conservative values. limits.h still defines _POSIX_HOST_NAME_MAX. use that instead. Reviewed-by: Jan Friesse build: respect watchdog conditional when building corosync exec Reviewed-by: Jan Friesse common_lib: make it build on FreeBSD 9 and Mac OS X Reviewed-by: Jan Friesse build: use libtool for linking Reviewed-by: Jan Friesse build: cleanup configure.ac sort different sections in more logical way and add check for sed plus a few missing headers/functions Reviewed-by: Jan Friesse 2012-08-21 Tim Beale Remove redundant default-config code We were checking 'hold_timeout == 0' in 3 different places when setting up the default totem config. Reviewed-by: Jan Friesse 2012-08-21 Tim Beale Remove unused structure Nowhere in the corosync codebase references this structure. Reviewed-by: Jan Friesse man: corosync.conf seqno_unchanged_const description incorrect seqno_unchanged_const is used to determine when the rep should hold the token. The merge detection timeout is started after any idle rotation of the token. Reviewed-by: Jan Friesse 2012-08-16 Jan Friesse Make logging of WD and MON service correct MON and WD services are using fsm.h, which calls log function. Such messages were incorrectly logged as SERV (or random service) which made debugging hard. Solution is to add callback parameter to fsm functions and do actual logging there. Handling of failure states is also done in calback now. Reviewed-by: Fabio M. Di Nitto Fix dbus part of corosync-notifyd Function dbus_connection_read_write which causes block for 0.5 sec is replaced by correct dispatching of input and flushing of output buffer. Reviewed-by: Fabio M. Di Nitto 2012-08-14 Jan Friesse example conf: Remove Duplicate "debug" statement Reviewed-by: Fabio M. Di Nitto 2012-08-14 Fabio M. Di Nitto build: fix libsam dependencies when using make -j tested on linux (can't verify solaris) Reviewed-by: Jan Friesse 2012-08-13 Jan Pokorny Example config files: fix a typo Reviewed-by: Jan Friesse 2012-08-09 Jan Friesse IPC: Call lib function only when it's possible send_ok was incorrectly tested as boolean, even it's errno type variable. Reviewed-by: Fabio M. Di Nitto Close sockets after deleting from poll This will remove (non critical) debug message from QB about polling on closed FD. Reviewed-by: Fabio M. Di Nitto cpg: Check input param name_t length IPC is using buffer of CS_MAX_NAME_LENGTH for name. If user calls function with longer string, such string can be passed to service incomplete. Solution is to not allow string larger then CS_MAX_NAME_LENGTH and return error. Same applies to cpg service. Reviewed-by: Fabio M. Di Nitto Handle sync and service unload correctly When sync started and service is unloaded in meantime, it can happen that sync will call sync_* functions on unloaded service. Reviewed-by: Fabio M. Di Nitto service: remove leftovers from mt corosync Multithreaded corosync used to use many ugly workarounds. One of them is shutdown process, where we had to solve problem with two locks. This was solved by scheduling jobs between service exit_fn call and actual service unload. Sadly this can cause to receive message from other node in that meantime causing corosync to segfault on exit. Because corosync is now single threaded, we don't need such hacks any longer. Reviewed-by: Fabio M. Di Nitto cmap: Check input param name_t length IPC is using buffer of CS_MAX_NAME_LENGTH for name. If user calls function with longer string, such string can be passed to service incomplete. Solution is to not allow string larger then CS_MAX_NAME_LENGTH (what is same as ICMAP_KEYNAME_MAXLEN) and return error. Reviewed-by: Fabio M. Di Nitto 2012-08-09 Fabio M. Di Nitto quorumtool: fix display when nodenames or reverse lookup is missing when requesting nodename in ring0_addr, and reverse dns lookup is not available, quorumtool output becomes inconsistent. quorum { provider: corosync_votequorum } nodelist { node { ring0_addr: fedora-master-node1 nodeid: 1 } node { ring0_addr: fedora-master-node2 nodeid: 2 } } [fabbione@daikengo corosync]$ nslookup fedora-master-node1 .. Address: 192.168.2.193 [fabbione@daikengo corosync]$ nslookup 192.168.2.193 .. ** server can't find 193.2.168.192.in-addr.arpa.: NXDOMAIN [root@fedora-master-node1 tools]# corosync-quorumtool -s ... Membership information ---------------------- Nodeid Votes Qdevice Name 1 1 NR fedora-master-node1.int.fabbione.net 2 1 NR 192.168.2.194 (similar on the other node) With this patch, when nodelist is available, we simply return ring0_addr name for a node, fixing the output to be: Membership information ---------------------- Nodeid Votes Qdevice Name 1 1 NR fedora-master-node1 2 1 NR fedora-master-node2 that also removes possible inconsistencies between nodename, FQDN and so on, by using what user requested in corosync.conf In case ring0_addr is not available or numeric output is requested, behavior remains as before. Reviewed-by: Jan Friesse 2012-08-08 Fabio M. Di Nitto votequorum: change init/clean up to deal with exit races Reviewed-by: Jan Friesse 2012-08-07 Fabio M. Di Nitto quorumtool: make output more meaningful there is really no point to have a per node view of (vote)quorum since all the info are always there. drop the -n option for status/display nodes and improve the output to provide a full cluster view at any given time. Old format: [root@fedora-master-node2 ~]# corosync-quorumtool -s Quorum information ------------------ Date: Mon Aug 6 10:22:27 2012 Quorum provider: corosync_votequorum Nodes: 2 Ring ID: 8 Quorate: Yes Votequorum information ---------------------- Node ID: 3254954176 Node state: Member Node votes: 1 Qdevice votes: 1 Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Qdevice Membership information ---------------------- Nodeid Votes Name 3238176960 1 fedora-master-node1.int.fabbione.net 3254954176 1 fedora-master-node2.int.fabbione.net 0 1 QDEVICE (Alive/Voting/NoMasterWins) New format: [root@fedora-master-node1 tools]# ./corosync-quorumtool -s Quorum information ------------------ Date: Mon Aug 6 15:50:03 2012 Quorum provider: corosync_votequorum Nodes: 2 Ring ID: 48 Quorate: Yes Votequorum information ---------------------- Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Qdevice Membership information ---------------------- Nodeid Votes Qdevice Name 3238176960 1 A,V,MW fedora-master-node1.int.fabbione.net 3254954176 1 NR fedora-master-node2.int.fabbione.net 0 1 QDEVICE Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: make the last QDEVICE define name consistent with everything else Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: bump soname Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: display qdevice votes Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: add missing return call Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: make master_wins check stricter Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: add ENTER/LEAVE for consistency Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: fix library checks on qdevice name and readd qdevice_update for some odd reasons qdevice_update was just gone.. totally... Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: delegate qdevice_master_wins setting to qdevice votequorum has no business to device if master_wins setting is correct or not. only the qdevice can decide and should set the value for votequorum. Logic is: - user requests master_wins from config - corosync starts - qdevice starts - qdevice reads cmap values / register with votequorum - qdevice decides if the node can support master_wins or not and tells votequorum - at this point votequorum can check if an unquorate node is part of the master_wins partition it is the qdevice responsibility to keep that value up to date in votequorum and the value can be changed at runtime. this commit also exchange per node master_wins information to lay down the infrastructure to verify discrepancies in node config for master_wins (coming next on this channel). Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: drop votequorum_qdevice_getinfo and collapse data into getinfo it's really pointless to have basically a duplicated API call to transfer one value and one name. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: external defines should all be prefixed with VOTEQUORUM_ Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: drop _FLAG_ from defines those are all info flags.. it's redudant and inconsistent Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: fix define name to match reality Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse qdevice: implement master_wins partition in previous incarnation of qdisk + cman, master_wins was restricted to 2 node only. In this new version it is possible to use master_wins for any cluster size. Let's assume a 4 node cluster. Each node votes 1, qdevice votes 3. node 1 becomes qdevice master node 2/3/4 no In case of a split (let's assume 2/2): partition 1: {4, 1} partition 2: {1, 1} node 2 in partition 1 would normally be unquorate, leaving effectively only node 1 active. master_wins allows node 2 to recognize to be part of a quorate partition (since node1 is broadcasting that qdevice is voting) and retain quorum. node1 has never lost quorate status since qdevice is voting there. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: fix flag check for qdevice votes propagation and cleanup similar code to make it more readable Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: remove last instance of state and rename it to cast_vote also align naming of vote to cast_vote for info calls Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: several major bug fixes and code cleanup - add a protection check to avoid spurious messages on membership change - greately simplify processing of nodeinfo, since the only data that we send for qdevice over nodeinfo is the number of votes - fix a flag check to trigger quorum calculation that would leave a cluster unquorate under certain conditions Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: move to the new flag structure simplify different code path as checks are simpler, separate ALIVE and CAST_VOTE Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: simplify getinfo data and protect against call against quorum node Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: use REGISTERED flag consistently Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: simply internal qdevice_getinfo function as data are moving around we can drop lots of special cases Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: add qdevice CAST_VOTE status/flag this is a preparation commit for the next changes. right now it is no more than an alias to ALIVE. CAST_VOTE is required to support master/slave feature from qdevice. Effectively a quorum device can be: Not registered / registered (connected to API but nothing else is happening) if registered: Not alive / alive (quorum device is petting the API via poll and timer is running) if alive: Not voting (slave) / voting (master) Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: rename NODE_FLAGS_QDEVICE_STATE to NODE_FLAGS_QDEVICE_ALIVE STATE is confusing and overloaded term in votequorum as it's used for nodes and other bits. make the name unique and ALIVE means that the qdevice is heartbeating to votequorum. improve display of the status in tools and tests. Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: rename NODE_FLAGS_QDEVICE to NODE_FLAGS_QDEVICE_REGISTERED make the flag name explicit Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse votequorum: re-enable qdevice api Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse quorum devices: add support to build system Reviewed-by: Christine Caulfield Reviewed-by: Jan Friesse 2012-08-04 Steven Dake Add groff as a BuildRequires to spec file According to Fedora packaging guidelines, groff is not on the list of package exceptions for BuildRequires. A recent change in the Fedora build system has triggered breakage in building rpm packages and it is likely this package won't build for Fedora 18. Reference: http://fedoraproject.org/wiki/Packaging:Guidelines#Exceptions_2 Reviewed-by: Fabio Di Nitto 2012-08-02 Jan Friesse Don't call sync_* funcs for unloaded services When service is unloaded, sync shouldn't call sync_init|process|activate and abort functions. It happens very rare, but in process of unloading all services, totem can recreate membership and bad things can happen (service is unloaded, so there may be access to already freed memory, ...) Solution is to fetch services sync handlers in every time when we are building service list instead of using precreated one. Reviewed-by: Steven Dake Introduce SERVICES_COUNT_MAX macro Sync/service was using maximal number of services in ehter numberic form (magic constant) or inconsistently, this means using SERVICE_HANDLER_MAXIMUM_COUNT which means maximal number of handlers. New macro solves this. Reviewed-by: Steven Dake 2012-07-30 Jan Friesse cmap_keys: Document few more runtime statistics Reviewed-by: Steven Dake cts: Delete shm blacbox after corosync kill This makes SHM Audit pass in test CpgCfgChgOnExecCrash. Reviewed-by: Fabio M. Di Nitto cpg: Be more verbose for procjoin message Reviewed-by: Steven Dake 2012-07-12 Jan Friesse cts: Change DC_IDLE pattern Reviewed-by: Fabio M. Di Nitto cts: Make shm_leak_audit run Reviewed-by: Fabio M. Di Nitto Correctly free state string in wd Reviewed-by: Fabio M. Di Nitto cts: Change local_start[ing|ed] pattern in CTS Previous pattern is no longer send to syslog. Use first pattern which is. Reviewed-by: Fabio M. Di Nitto Support for crypto_ and nodelist in lenses Reviewed-by: Fabio M. Di Nitto 2012-07-11 Jan Friesse Revert "Free state variable allocated in wd_resource_state_is_ok" This reverts commit 01c63ca17ca5b5a780cff0dd96d7d432b3e980a3. 2012-06-14 Jan Friesse cpg: Enhance downlist selection algorithm Let's say we have 2 nodes: - node 2 is paused - node 1 create membership (one node) - node 2 is unpaused Result is that node 1 downlist is selected, so it means that from node 2 point of view, node 1 was never down. Patch solves situation by adding additional check for largest previous membership. So current tests are: 1) largest (previous #nodes - #nodes know to have left) 2) (then) largest previous membership 3) (and last as a tie-breaker) node with smallest nodeid Reviewed-by: Steven Dake cpg: Print cpg name to debug informations In downlist and joinlist debug output group was printed in nonsense format of integer to pointer to array. Now it's printed by full name. Reviewed-by: Steven Dake cpg: Process join list after downlists let's say following situation will happen: - we have 3 nodes - on wire messages looks like D1,J1,D2,J2,D3,J3 (D is downlist, J is joinlist) - let's say, D1 and D3 contains node 2 - it means that J2 is applied, but right after that, D1 (or D3) is applied what means, node 2 is again considered down It's solved by collecting joinlists and apply them after downlist, so order is: - apply best matching downlist - apply all joinlists Reviewed-by: Steven Dake cpg: Never choose downlist with localnode Test scenario is follows: - node 1, node 2 - node 1 is paused - node 2 sees node 1 dead - node 1 unpaused - node 1 and 2 both choose same dowlist message which includes node 2 -> node 2 is efectivelly disconnected Patch includes additional test if left_node is localnode. If so, such downlist is ignored. Reviewed-by: Steven Dake 2012-06-11 Jerome FLESCH When flushing, discard only memb_join messages Patch solves problem when 1 ring out of 2 went up/down quite often. The simplest setup to reproduce bug is following: - 2 VMs, connected by 2 network interfaces - OS: Linux - On one of the VMs, a test program sending some CPG messages (see the script "test_corosync.sh" joined to this mail for example) Here are the Corosync logs we get when we do this setup: Jun 06 16:23:40 corosync [TOTEM ] A processor joined or left the membership and a new membership was formed. Jun 06 16:23:40 corosync [CPG ] chosen downlist: sender r(0) ip(192.168.56.104) r(1) ip(192.168.57.104) ; members(old:1 left:0) Jun 06 16:23:40 corosync [MAIN ] Completed service synchronization, ready to provide service. Jun 06 16:24:37 corosync [TOTEM ] Marking ringid 1 interface 192.168.57.105 FAULTY Jun 06 16:24:38 corosync [TOTEM ] Automatically recovered ring 1 Jun 06 16:25:33 corosync [TOTEM ] Marking ringid 1 interface 192.168.57.105 FAULTY Jun 06 16:25:34 corosync [TOTEM ] Automatically recovered ring 1 Jun 06 16:26:35 corosync [TOTEM ] Marking ringid 1 interface 192.168.57.105 FAULTY Jun 06 16:26:36 corosync [TOTEM ] Automatically recovered ring 1 (...) The second ring goes down about every 2 minutes and automatically back up right after. We spent some times looking for the commit that introduced this bug, and it appears it's due the following one: Corosync 1.3.3 -> 1.3.4: e27a58d93d0d3795beb550f87b660c9c04f11386 Corosync 1.4.1 -> 1.4.2: be608c050247e5f9c8266b8a0f9803cc0a3dc881 Commit message: Ignore memb_join messages during flush operations I had a look at this commit, and it seems to me it's dropping too many packets: Because of this commit, while totemrrp_recv_flush() is called, Corosync drops memb_join packets, but also ORF tokens. In the end, it seems that sometimes, we drop so many of them that Corosync marks the ring as faulty. To fix that, only memb_join messages are dropped now. Reviewed-by: Steven Dake Reviewed-by: Jan Friesse 2012-06-05 Jan Friesse Store fdata with timestamp and pid in name This should allow easier handling of various blackbox dumps. Original fdata name is now symlink to latest created dump. Reviewed-by: Fabio M. Di Nitto Remove corosync-fplay Libqb now ships with qb-blackbox command doing same job as corosync-fplay. It doesn't make sense to maintain two versions of same utility so corosync-fplay can go. corosync-blackbox command now calls directly qb-blackbox. Reviewed-by: Steven Dake 2012-06-01 Kazunori INOUE notifyd: handle addition of a members key to CMAP When new key (totem.pg.mrp.srp.members) was added to CMAP, we would like to receive the trap of this time. Reviewed-by: Jan Friesse 2012-06-01 Fabio M. Di Nitto testcpg: fix build warning Reviewed-by: Jan Friesse 2012-05-31 Jan Friesse totemudpu: Bind sending sockets to bindto address Reviewed-by: Steven Dake 2012-05-29 Jan Friesse snmp MIB: Remove unnecessary comma Thank Hideo Yamauch for pointing this bug. 2012-05-29 Kazunori INOUE notifyd snmp: fix a function name This fixes the bug to which snmp trap of rrp_faulty_event is not sent. Reviewed-by: Jan Friesse 2012-05-29 Fabio M. Di Nitto rename mainconfig to logconfig Reviewed-by: Jan Friesse mainconfig: allow mainconfig logic to be used both internally and externally corosync logging configuration logic is rather complex and in order to make it simpler to reuse (at least within corosync/ tree) we need to be able to use both icmap and cmap. the patch might seem controversial, but it reduces heaps of code around from qdevices (coming next). It might be useful to consider moving this to a common shared library but there aren't enough users yet and a shared lib would force corosync to link with cmap (that we do not want at all costs) Reviewed-by: Steven Dake 2012-05-29 Angus Salkeld LOG: make sure the log target is enabled. Reviewed-by: Fabio M. Di Nitto LOG: handle closing unused logfiles better This fixes a bug where having a second log file will close the previous one. Reviewed-by: Fabio M. Di Nitto LOG: be more explict about the qb file names else we can get messages been put in the wrong subsys. Reviewed-by: Fabio M. Di Nitto LOG: drop the number of logging subsystems from 64 to 32 Currently 14 are used, 64 seems like a waste of memory. Reviewed-by: Fabio M. Di Nitto 2012-05-24 Barney Desmond Correct the description of bindnetaddr config parameter in manpage bindnetaddr has been wrongly described in the past, and did not document that fact that it will also accept exact address matches. Reviewed-by: Jan Friesse 2012-05-24 Jan Friesse totemip: Support bind to exact address Logic for binding now works in following way: - Try to find exact match - If not exact match is found, use first found network address This allows set concrete IP even if network settings contains two IPs on same network. Reviewed-by: Steven Dake totemip: insert items in correct order list_add_tail is used instead of list_add so ip addresses are inserted in same order as returned by getifaddrs. Reviewed-by: Steven Dake 2012-05-21 Fabio M. Di Nitto init: major cleanup - rename generic.in and notifyd.in to corosync.in and corosync-notifyd.in (makes build simpler) - fix sysvinit corosync.in sleep time to include a check for when IPC are ready and drop cman bits (there is no cman with corosync 2.0) - corosync-notifyd.service should always start after corosync.service - corosync.service should always start after network - corosync.service uses init script wrapper - install/ship sysvinit as wrappers for systemd in /usr/share/corosync when necessary - change the build system to deal with all of the above Reviewed-by: Jan Friesse 2012-05-17 Jan Friesse Include ringid in processor joined log message This should help correlate syslog entires with their blackbox counterparts. Reviewed-by: Andrew Beekhof 2012-05-15 Jan Friesse Update TODO file Reviewed-by: Fabio M. Di Nitto Reviewed-by: Steven Dake 2012-04-26 Dan Clark <2clarkd@gmail.com> Improve testcpg to handle change of node identity Reviewed-by: Jan Friesse 2012-04-24 Fabio M. Di Nitto icmap: don't leak memory when changing ro/rw status on a key Reviewed-by: Jan Friesse icmap: fix a valgrind errors (pass 1) clean up a lot of allocated blocks at exit. those changes has no runtime effects, but it makes valgrind output a bit more useful by dropping over 700 errors/warnings to skip over every single run. there are still a few icmap related valgrind errors but those need some more complex and timeconsuming investigation. pre patch: ==21844== HEAP SUMMARY: ==21844== in use at exit: 1,229,321 bytes in 1,516 blocks ==21844== total heap usage: 7,191 allocs, 5,675 frees, 3,819,853 bytes allocated ==21844== LEAK SUMMARY: ==21844== definitely lost: 3,617 bytes in 11 blocks ==21844== indirectly lost: 21,960 bytes in 11 blocks ==21844== possibly lost: 1,080,101 bytes in 131 blocks ==21844== still reachable: 123,643 bytes in 1,363 blocks ==21844== suppressed: 0 bytes in 0 blocks ==21844== ERROR SUMMARY: 136 errors from 136 contexts (suppressed: 0 from 0) post patch: ==25793== HEAP SUMMARY: ==25793== in use at exit: 1,185,870 bytes in 808 blocks ==25793== total heap usage: 9,427 allocs, 8,619 frees, 4,156,841 bytes allocated ==25793== LEAK SUMMARY: ==25793== definitely lost: 3,697 bytes in 12 blocks ==25793== indirectly lost: 22,248 bytes in 13 blocks ==25793== possibly lost: 1,079,655 bytes in 113 blocks ==25793== still reachable: 80,270 bytes in 670 blocks ==25793== suppressed: 0 bytes in 0 blocks ==25793== ERROR SUMMARY: 119 errors from 119 contexts (suppressed: 0 from 0) Reviewed-by: Jan Friesse 2012-04-20 Fabio M. Di Nitto crypto init: release *_slot resource after init Those are only used at init phase and we can free some memory for the system. Reviewed-by: Angus Salkeld 2012-04-16 Fabio M. Di Nitto ipcs: allow connections only after all services are ready this fixes a rather annoying race condition at startup where a client connects to corosync "too fast" before the service is ready to operate and client gets some random data during initialization phase. With this fix, we allow connections to ipc only after the main engine is operational and configured (and after the first totem transition). Reviewed-by: Angus Salkeld 2012-04-10 Jan Friesse Always allocate totemrrp stats array This prevents segfault when rrp mode is set with only one ring. Reviewed-by: Fabio M. Di Nitto Properly parse uidgid files Full path to key is now tested rather then key name only. Reviewed-by: Fabio M. Di Nitto 2012-04-10 Fabio M. Di Nitto build: improve systemd service file handling this solves the issue of having to special case before and after usrmove Reviewed-by: Jan Friesse 2012-04-06 Jan Friesse Remove info pages see also from cmapctl man Corosync doesn't have documentation in info format, so information is corosync-cmapctl was not true. Reviewed-by: Steven Dake Add man page with CMAP keys created by corosync Reviewed-by: Steven Dake 2012-04-05 Angus Salkeld Check before making a reference to __start___verbose 2012-04-03 Fabio M. Di Nitto conf: add quorum section to example config document only the provider option since all the others (votes/expected_votes/etc) are provider specific. Reviewed-by: Jan Friesse 2012-04-03 Angus Salkeld Only call qb_ipcc_disconnect when the instance is fully dereferenced. Sometimes calling xyz_finilize() within a dispatch would cause a crash because the qb_ipcc_disconnect actually disconnects immediatly and frees it't memory. whereas the corosync structure is reference counted. So this makes use of the reference counting to only call qb_ipcc_disconnect when it is fully dereferenced. Reviewed-by: Fabio M. Di Nitto 2012-03-27 Jan Friesse Convert udpu example to use nodelist Reviewed-by: Fabio M. Di Nitto 2012-03-27 Fabio M. Di Nitto totemcrypt: fix build warning (unused variable) Reviewed-by: Jan Friesse totemcrypto: major code cleanup (no functional or onwire changes) - cleanup include list - reorder code and functions (crypto then hash) - split crypt/decrypt/hash functions - some micro optimizations by dropping a few memcpy - make the code more readable (better var names and buffers mapping) - improve exit paths on error (return codes and free) - store crypto header size instead of recalculating it per packet Reviewed-by: Jan Friesse 2012-03-26 Jan Friesse Make ifaces_get work with dynamic no_rings Commit which added number of addresses to srp_address structure didn't count with totemsrp_ifaces_get where whole structure was copied instead of addresses only. This is now fixed. Also to make API totempg forward compatible, size of interfaces array must be passed to ifaces_get like functions to prevent memory overwrite. Reviewed-by: Fabio M. Di Nitto 2012-03-22 Jan Friesse Add no_addrs field in srp_addr structure This should allow us future change to dynamic number of rings without breaking wire compatibility. Reviewed-by: Steven Dake 2012-03-16 Jan Friesse Reflect config changes for crypto in examples Reviewed-by: Fabio M. Di Nitto Mark few more icmap keys as read only Also most of the key settings are now centralized in one function, so it's easier to audit. Reviewed-by: Fabio M. Di Nitto 2012-03-15 Jan Friesse Make common_lib version independand on totem_pg Reviewed-by: Fabio M. Di Nitto crypto: Remove sha224 and add md5 hash SHA224 is not supported on RHEL6 and also it's kind of weird. Instead of that, md5 can now be configured. Reviewed-by: Fabio M. Di Nitto Update crypto_set API Also few leftovers from cfg is removed and version of totempg is increased to 5 to reflect all changes we made Reviewed-by: Fabio M. Di Nitto 2012-03-15 Fabio M. Di Nitto crypto: allocate padding in crypto_header while it might seem a waste of space by using 2 extra bytes in the crypto_config_header, it actually gives us the option to grow "unknown at this time" features without hopefully breaking onwire compat Reviewed-by: Jan Friesse crypto: add new hashing methods and fix config defaults add support for sha224/256/384/512 change config defaults to match coroparse and totemconfig Reviewed-by: Jan Friesse 2012-03-15 Jan Friesse Document crypto_hash and crypto_cipher options Reviewed-by: Fabio M. Di Nitto 2012-03-14 Fabio M. Di Nitto crypto: change network packets and add dynamic crypto header/data The new network packet will look: struct crypto_config_header * that provides info on crypto/hashing hash_block[size based on hashing function] (if hash is selected) salt[SALT_SIZE] (if crypto is selected) ...data... and we kill the concept of crypto_security_header completely since values are now dynamic for hash_block_size. the reason why hash_block needs to be there, is because we do hash salt in case both hashing and crypto are selected. the crypto_config_header is totally transparent to totem and to any underlaying crypto functions. as we go cleaning, also use HASH_BLOCK_SIZE to generate hash_block. the input buffer and output buffer size are dependent on the algo used to hash. we can now determine the real header size and adjust net_mtu properly at startup. This will allow in future to use any algorithm since size is dynamic. some part of the code still needs some polishing to make it more readable (specially the mapping of pointers into the packet is still a bit obscure). Reviewed-by: Jan Friesse totem: don't send garbage onwire if we fail to crypt Reviewed-by: Jan Friesse crypto: add crypto config to network data this add 2 bytes at the end of the each packet to propagate config info. in case there is a config mismatch packet must be rejected. Reviewed-by: Jan Friesse crypto: drop secauth and make crypto none work again keep totem.secauth config key for compatibility if the key is NOT set, crypto will default to aes256/sha1 if the key is set to "off", crypto is disabled. this reflects pretty much old behavior keywords totem.crypto_cipher and totem.crypto_hash can override secauth individually. Reviewed-by: Jan Friesse 2012-03-13 Jan Friesse Parse and use hash and crypto from config file Reviewed-by: Fabio M. Di Nitto Rename totemcrypto Reviewed-by: Fabio M. Di Nitto 2012-03-13 Fabio M. Di Nitto crypto: mask the crypto operations from totem packet size management totem doesn't need to understand what crypto does. totem needs to be able to tell crypto: "those are data, play with them" and crypto needs to return: "here are your scrambled data and the new size" similar to decrypt/verify. this way we add enough dynamic within crypto to change header size and all at any given time (for different hash algorithm for example) without affecting on wire compat. Reviewed-by: Jan Friesse 2012-03-13 Jan Friesse onecrypt: move encryption code to crypto.c This will remove duplicity of code. Reviewed-by: Fabio M. Di Nitto cfg: remove crypto_set Reviewed-by: Fabio M. Di Nitto corosync-cfgtool: Remove set of cryptography Reviewed-by: Fabio M. Di Nitto Remove libtomcrypt Tomcrypt in corosync is for long time not updated. Because we have support for libnss, libtomcrypt can be removed. Also few leftovers (AES is 256 bits, not 128, ...) are removed. Reviewed-by: Steven Dake 2012-03-12 Fabio M. Di Nitto drop evs service there are several reasons for this: 1) evs is only partially implemented with no plans to complete it typedef enum { EVS_TYPE_UNORDERED, /* not implemented */ EVS_TYPE_FIFO, /* same as agreed */ EVS_TYPE_AGREED, EVS_TYPE_SAFE /* not implemented */ } evs_guarantee_t; 2) evs has no users in any upstream distribution and no search engine can find any other upstream using it. 3) the only reason (I was told) to carry around evs was that evs receives the full ring_id struct from totem. This is only partially correct because while the structures are prepared to carry around those data, they are never transmitted from corosync engine down the IPC line to the user. CPG ring_id contains the exact same information and it's actually less buggy (due to prototying of the info). worst case scenario where a user really absolutely need libevs, it can be easily reimplemented as libcpg wrapper and avoid lots of code duplication. Reviewed-by: Steven Dake build: drop another leftover from the past Reviewed-by: Steven Dake build: drop obsoleted SOCKETDIR option yet another leftover from the past that can go away Reviewed-by: Steven Dake build: drop last LCRSO references Reviewed-by: Steven Dake pload: make it a test service and not a public one pload is a performance benchmark that measures the onwire speed of corosync. problem is that once pload has been executed, the cluster is basically dead. turn pload into a test tool, by removing corosync-pload tool and user library. cleanup pload code to make it more readable and drop lots of unnecessary stuff. add test/ploadstart tool that can configure and start pload via cmap calls. Reviewed-by: Steven Dake 2012-03-10 Fabio M. Di Nitto totem: drop crypt_accept: concept/option this was another old onwire compat mode that is not useful anylonger. we can safely move the new model by default. According to Honza (real hardware 1 node testing) there are no performance impact. My tests (8 nodes VM cluster), there is up to 10/12% performance improvements up to 1M packet size where old and new models are equal. As a side note, nss still shows to be a performance loss on both real and virtual hw (without any kind of nss hw acceleration). Reviewed-by: Steven Dake 2012-03-09 Angus Salkeld Fix typo in stats key name. Reviewed-by: Fabio M. Di Nitto Remove unused function logsys_priority_name_get() Reviewed-by: Fabio M. Di Nitto Add pid, hostname and process name to the logfile Note this is only for file targets not stderr or syslog. https://bugzilla.redhat.com/show_bug.cgi?id=789925 Reviewed-by: Fabio M. Di Nitto 2012-03-09 Fabio M. Di Nitto drop last references to compatibility: whitetank Reviewed-by: Jan Friesse Reviewed-by: Angus Salkeld utils: cleanup main daemon exit codes some of them are not in use anymore and can be dropped. Reviewed-by: Steven Dake Reviewed-by: Jan Friesse sync: kill evil and syncv1 in one shot this change breaks onwire compatibility. cpg is the only user of sync_* interface and it's the only service that will require extra testing. Reviewed-by: Steven Dake Reviewed-by: Jan Friesse 2012-03-06 Jan Friesse man: Add cmap pages to index.html Reviewed-by: Steven Dake man: Add description of cpg_iteration_* functions Reviewed-by: Steven Dake man: Fix cmap_iter_finalize typo Reviewed-by: Steven Dake 2012-03-05 Angus Salkeld Treat ENOMSG as TRY_AGAIN. ENOMSG is returned by the ringbuffer when you attempt to read a message and there is nothing there to read. Reviewed-by: Steven Dake Add common IPC errors. Reviewed-by: Steven Dake 2012-03-05 Fabio M. Di Nitto quorumtool: improve display of status data always display membership data from the local node display when a node is unknown to the local node instead of an error from IPC. Reviewed-by: Christine Caulfield votequorum: move last malloc/alloca buf to static this should guarantee that votequorum won't fail under high memory pressure. Price is 3500 bytes extra preallocated at startup. Reviewed-by: Christine Caulfield votequorum: fix node allocation memory leak stop using malloc for each new node, because we cannot free the memory easily. Move to a static allocated buffer that can contain PROCESSOR_MAX + qdevice cluster_node instead. We can never have more than PROCESSOR_MAX nodes anyway and the memory footprint is small enough compared to memory leaks (those can effectively happen only in very dynamic clusters with tons of different nodes joining/leaveing with different nodeids). Reviewed-by: Christine Caulfield 2012-03-02 Fabio M. Di Nitto votequorum: rename leave_remove to allow_downscale pointed out that leave_remove can be easily confused with the old cman leave_remove behavior. The two are substantially different and we need to avoid confusion both for users and our support team. Reviewed-by: Christine Caulfield votequorum: fix handling of config updates cmap changes are local to the node only and should not be broadcasted as configuration changes. if any change has happened to us, we will inform other nodes via send_nodeinfo. Reviewed-by: Christine Caulfield votequorum: free our data and lists on exit this is mostly to avoid valgrind errors on exit and make the output more readable. Reviewed-by: Christine Caulfield votequorum: disallow special features vs qdevice simply taking the safest path here since integration of qdevice is not fully complete Reviewed-by: Christine Caulfield votequorum: fix node check based on reconfig parameter Reviewed-by: Christine Caulfield votequorum: make a common function to calculate votes and cluster members Reviewed-by: Christine Caulfield votequorum: incorporate static config into dynamic no functional changes or extra features yet Reviewed-by: Christine Caulfield votequorum: move all configuration in votequorum_readconfig Reviewed-by: Christine Caulfield votequorum: start moving from static to fully dynamic config Reviewed-by: Christine Caulfield votequorum: disallow wait_for_all and qdevice operations The problem here is that user expectations, when using both modes at the same time, have not been set yet. There are 2/3 options that need investigation. Reviewed-by: Christine Caulfield votequorum: improve debugging output Reviewed-by: Christine Caulfield 2012-03-02 Jan Friesse Always set interface_up in totemip_iface_check Reviewed-by: Steven Dake 2012-02-29 Fabio M. Di Nitto votequorum: fix node->flags type when receiving nodeinfo messages old_flags was set to uint16_t but it needs to be uint32_t. Reviewed-by: Jan Friesse votequorum: fix segfault in wfa status update this is a regression introduced by cb5fd775 when reading static config us->flags does not exists yet and therefor setting it will cause a segfault. Move the settings after cluster_node *us is created, with the long term plan to simply kill the whole _static readconfig bits in favour of dynamic (runtime changeable) bits. Reviewed-by: Jan Friesse 2012-02-28 Fabio M. Di Nitto quorumtool: improve Membership information output align nodeid, votes and name to make it all more readable Reviewed-by: Christine Caulfield quorumtool: make output more human friendly and retain machine parsable bits Reviewed-by: Christine Caulfield quorumtools: fix typo in man page Reviewed-by: Christine Caulfield quorumtools: drop unused option parsing Reviewed-by: Christine Caulfield quorumtool: fix version display info we don't need that on every run Reviewed-by: Christine Caulfield 2012-02-27 Fabio M. Di Nitto quorumtool: swap node state and node votes output there is no point to show the votes if the node is dead Reviewed-by: Jan Friesse votequorum: fix votequorum_getinfo man page and align struct name Reviewed-by: Jan Friesse quorumtool: update man page and help text improve error output since this is more than a debugging tool now Reviewed-by: Jan Friesse votequorum: major rework to fix qdevice API and integration with core qdevice is a very special node in the cluster and it adds a certain amount of complexity and special cases across the code. most of the qdevice data are shared across the cluster (name/votes) but effectively each node has a different view of the qdevice (registered/unregistered/voting/etc.) with this change, we align the qdevice view across the node, exchanging more data between nodes and we fix how qdevice behaves and it is configured. The only side effect is that the amount of data transmitted on wire is slightly higher. The qdevice API is still disabled by default. This means that the amount of real changes in current code are a lot smaller than it appears by this patch. TODO: documentation/man pages needs to be updated once this change is in (and behavior finalized). User visible changes: - configuration (coroparse, exec/votequorum): the quorum device section is now standalone within the quorum. quorum { provider: corosync_votequorum device { model: (name) timeout: (millisec) votes: } } the keyword "model:" is mandatory to enable qdevice in configuration and should express the name of the script/daemon that will provide the qdevice. Looking into the future, an init script or systemd service will look for that name in /path/to/be/decided/name and start/stop qdevice. timeout: defines the maximum interval the qdevice implementation has available between poll (see votequorum_qdevice_poll.3) before the device is considered dead and votes discarded votes: is now a configuration parameter and not an API call. quorum devices don't care what they need to vote. votes is autocalculated when a nodelist is available and all nodes in the list vote 1. Otherwise this parameter is mandatory. - configuration (exec/votequorum): startup and runtime configuration changes have been improved. errors at startup are considered fatal. errors at runtime have different exit paths. startup: * quorum.two_node and qdevice are incompatible. * quorum.expected_votes requires quorum.device.votes. * quorum.expected_votes - quorum.device.votes cannot be lower than 2. * qdevice and last_man_standing are mutually exclusive. * qdevice and auto_tie_breaker are mutually exclusive. runtime config changes: * quorum.two_node and qdevice are incompatible: if quorum device is alive, two_node is disabled. if quorum device is not alive and node count is 2, two_node is enabled, and quorum device cannot be registered * if either last_man_standing or auto_tie_breaker were enabled at startup, and at runtime quorum device is configured, quorum device registration will be blocked. * if quorum.expected_votes is configured but not quorum.device.votes, quorum device registration will be blocked. * if quorum.device.votes is not configured and we cannot automatically calculate it, quorum device registration will be blocked. * An error in configuring quorum.expected_votes and quorum.device.votes will block quorum device registration. blocking quorum device registation, also means dropping the votes. quorum.device.votes (either set or automatically calculated) is now used to determine current expected_votes in the cluster. - logging (exec/votequorum): all errors from configuration are treated as WARNING/CRITICAL. lots of extra DEBUG output is added (see internal changes too). - corosync-quorumtool (tools/corosync-quorumtool): * added option to forcefully kick out a quorum device from the local node. This is for emergency recovery only and it is only available when qdevice API is built-in. * Improved status output, specifically add node state and qdevice information [root@fedora-master-node2 coro]# corosync-quorumtool -s Version: 1.99.4.12-9c7d-dirty Quorum type: corosync_votequorum Nodes: 2 Ring ID: 132 Quorate: Yes Node votes: 1 Node state: Member Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Qdevice Nodeid Votes Name 1 1 fedora-master-node1.int.fabbione.net 2 1 fedora-master-node2.int.fabbione.net 0 1 QDEVICE (Voting) * allow to print status for any node in the cluster known to local node. [root@fedora-master-node1 coro]# corosync-quorumtool -s Version: 1.99.4.12-9c7d-dirty Quorum type: corosync_votequorum Nodes: 2 Ring ID: 144 Quorate: Yes Node votes: 1 Node state: Member Expected votes: 3 Highest expected: 3 Total votes: 2 Quorum: 2 Flags: Quorate Nodeid Votes Name 1 1 fedora-master-node1.int.fabbione.net 2 1 fedora-master-node2.int.fabbione.net [root@fedora-master-node1 coro]# corosync-quorumtool -s -n 2 Version: 1.99.4.12-9c7d-dirty Quorum type: corosync_votequorum Nodes: 2 Ring ID: 144 Quorate: Yes Node votes: 1 Node state: Member Expected votes: 3 Highest expected: 3 Total votes: 3 Quorum: 2 Flags: Quorate Qdevice Nodeid Votes Name 1 1 fedora-master-node1.int.fabbione.net 2 1 fedora-master-node2.int.fabbione.net 0 1 QDEVICE (Voting) Internal changes: - change qdevice timer to not run all time, but only when necessary. - change votequorum_nodeinfo on wire data to use flags instead of uint8_t and add QDEVICE status. - allocate nodeid 0 to qdevice since it's the only real nodeid that be reserved. - change send_nodeinfo to allow to send nodeinfo for any node so that we can share qdevice info across the cluster (and this might be useful in future if we need to sync internal cluster view). - add votequorum api call to update qdevice name - add runtime data if quorum device has been forcefully disabled by config error - add qdevice votes to expected_votes calculation (this is probably the biggest difference vs cman) - change votequorum_read_nodelist_configuration so that we can autocalculate votes for qdevice (we need the nodecount vs votes). - add all checks for startup/runtime config (see above). - do not make qdevice part of the membership_list received from totem. None of our users care about it and it is not a real node. - change onwire message handlers to deal with "data for this node from any node" case and undersand nodeid 0 for qdevice info - always allocate qdevice at startup. this simplifies code a lot. - dispatch qdevice nodeinfo on membership changes. - inform libvotequorum users when a qdevice is registered - improve substantially qdevice api and add a simple barrier based on qdevice name. - add qdevice API barrier at cluster level. This feature allow only one qdevice name to be active in the cluster at any time. - qdevice getinfo can now report status for qdevice on any node. - change slightly the way the qdevice API is built-in/out: only the libvotequorum calls are #ifdef'out now. Doing so in the core is too complex and would make the code unreadable with the risk of missing a bit or two effectively introducing an on-wire incompatibility if we will ever turn the API on. - probably added some bugs on the way... TODO: update qdevice_* API once the above is settled and test qdevice integration with other features. Reviewed-by: Christine Caulfield Reviewed-by: Steven Dake (only second part) 2012-02-22 Fabio M. Di Nitto build: fix fallout from swithing to common shared lib when building corosync on a clean system or for the very first time, corosync_common needs to be visible both via -L for link and for the LD_PATH, otherwise the linker cannot resolve normal library dependencies. This issue does NOT affect corosync users, but it's confined to internal corosync only. Reviewed-by: Jan Friesse 2012-02-21 Jan Friesse Document SAM_RECOVERY_POLICY_CMAP Also all irelevant references for SAM_RECOVERY_POLICY_CONFDB are corrected. Reviewed-by: Steven Dake Tweak nodeid warning Nodeid warning now appears only when both totem.nodeid and nodelist nodeid exists. When nodelist nodeid is not defined, totem.nodeid is used. Reviewed-by: Steven Dake spec: Add optional xmlconf Reviewed-by: Fabio M. Di Nitto iba: Use configured node id Corosync was ignoring nodeid for iba transport and always used autogenerated one. Original patch by: Jason Dillaman Reviewed-by: Fabio M. Di Nitto 2012-02-21 Angus Salkeld Convert the common lib into a shared lib. Reviewed-by: Fabio M. Di Nitto 2012-02-16 Jan Friesse Allow autoconfiguration of interface section Thanks to totemip_getifaddrs infrastructure it's now possible to use nodelist informations to autoconfigure interface bindnetaddr. Together with cluster_name, interface section can be completely omitted. Reviewed-by: Steven Dake totemconfig: ensure suffix for ringX_addr Patch makes sure, that ringX_addr key has really _addr suffix. Previously, it was possible to enter ringXanything and it was interpreted as ringX_addr. Reviewed-by: Steven Dake cmap: Handle NULL in [i]cmap_set_string value Reviewed-by: Steven Dake Create solaris specific getifaddrs This not only makes possible to use generic totemip_iface_check, but also fixes some problems with previous implementation (fixed mask, not very well supported ipv6, ...) Tested on OpenIndiana 151a Reviewed-by: Steven Dake Add totemip_iface_check based on totemip_getifaddrs Also Linux and BSD/Darwin specific bits are no longer needed, so they are gone. Reviewed-by: Steven Dake Add generic implementation of getifaddrs Reviewed-by: Steven Dake 2012-02-14 Fabio M. Di Nitto build: fix make dist to include xml man pages Reviewed-by: Jan Friesse 2012-02-14 Angus Salkeld Change the IPC TIMEOUT to block. This is to make sure that we properly wait for responses from corosync. I have made a fix to libqb to properly handle the case when corosync exits/crashes between a send and receive. Reviewed-by: Jan Friesse CPG: fix membership_get() 1) remove BUSY loop from membership get Note only cpg_join and cpg_leave ever set the BUSY error code. 2) set the size correctly 3) copy the name in correctly Reviewed-by: Steven Dake TEST: remove unused code. Reviewed-by: Steven Dake Move hdb_error_to_cs to corotypes.h Reviewed-by: Steven Dake TEST: add logging to testcpg and testevs Reviewed-by: Steven Dake TEST: Use pacemaker repeat macro This is to simulate the way pacemaker uses the cpg api. With this you can run testcpg directly after corosync starts and it should initialise ok. Reviewed-by: Steven Dake 2012-02-14 Steven Dake Remove a reference to openais that is present in corosync.conf.5 Reviewed-by: Angus Salkeld Update corosync_overview.8 man page Move forward 5 years on our main man page ;) Reviewed-by: Angus Salkeld Remove empty testquorum.c file Reviewed-by: Angus Salkeld Update copyright header dates in exec directory Reviewed-by: Angus Salkeld Update copyright dates on include/totem files Reviewed-by: Fabio Di Nitto Remove jhash.h since it is not used We would use libqb for hashing now if we needed hashing. cpg no longer uses jhash.h. Reviewed-by: Fabio Di Nitto Updated copyright dates in include directory Reviewed-by: Fabio Di Nitto Update copyright dates in tools directory Reviewed-by: Fabio Di Nitto Update copyright dates in util directory Reviewed-by: Fabio Di Nitto Remove unused or unimplemented CFG apis Remove: cfg_statetrack cfg_statetrackstop cfg_administrativestateste cfg_administrativestateget cfg_serviceload cfg_serviceunload Rev SO to 5.0.0 Reviewed-by: Angus Salkeld 2012-02-13 Fabio M. Di Nitto votequorum: cleanup all man pages sort and reference man pages in typical usage order update some structures/defines clean formatting to be consistent don't ship qdevice API man pages for now Reviewed-by: Angus Salkeld 2012-02-10 Fabio M. Di Nitto quorum: cleanup all man pages sort and reference man pages in typical usage order update some structures/defines clean formatting to be consistent Reviewed-by: Christine Caulfield 2012-02-09 Fabio M. Di Nitto cpg: drop dead code not used/referenced anywhere Reviewed-by: Steven Dake coverity: increase aggressiveness of the test and fix build Reviewed-by: Steven Dake votequorum: fix variable init Reviewed-by: Steven Dake quorumtool: fix some var init and checks Reviewed-by: Steven Dake votequorum: fix possible memory corruption nodeid = 0 is a valide nodeid and node associated with it should not be freed Reviewed-by: Steven Dake quorum: don't leak memory on error Reviewed-by: Steven Dake testvotequorum: fix test loop to break if votequorum goes away Reviewed-by: Steven Dake quorumtool: fix return code Reviewed-by: Steven Dake testquorum: check for quorum_dispatch return code Reviewed-by: Steven Dake quorumtools: check for quorum_dispatch return code Reviewed-by: Steven Dake specfile: ship new man pages Reviewed-by: Steven Dake man: add *quorum_track* devel man pages Reviewed-by: Steven Dake quorum: drop dead code spotted while writing man pages. There are no users for this struct Reviewed-by: Steven Dake man: add quorum_overview.8 man page Reviewed-by: Steven Dake man: hook quorum and votequorum devel man pages with genman script Reviewed-by: Steven Dake man: rename all devel man pages to .3.in tidy up man/Makefile.am a bit in the process Reviewed-by: Steven Dake man: add build infrastructure to generate devel man pages this is useful to include ipc_common errors into all man pages Reviewed-by: Steven Dake 2012-02-09 Angus Salkeld move cs_strerror() to common_lib Reviewed-by: Steven Dake Treat ENOBUFS as TRY_AGAIN Reviewed-by: Steven Dake move hdb_error_to_cs to common_lib Note the previous inconsistent implementation. Reviewed-by: Steven Dake Add a common library that can be shared between libs and corosync We have always had this problem and worked around it by coping code or using inline functions. Both not good IMO. Reviewed-by: Steven Dake 2012-02-08 Steven Dake Remove cs_config.h from global header install Reviewed-by: Jan Friesse Remove include/engine/quorum and integrate it into exec/engine.h Reviewed-by: Jan Friesse Remove swab.h from global headers Reviewed-by: Jan Friesse Remove list.h from global header install Reviewed-by: Jan Friesse Remove mar_gen.h from global header install since it is not needed Reviewed-by: Jan Friesse 2012-02-08 Jan Friesse Add CS_DISPATCH_ONE_NONBLOCKING dispatch type Add missing option for dispatch, which fills gap in combination of block/nonblock and one/all dispatch types. New type doesn't mask CS_ERR_TRY_AGAIN, and it means "no message was processed". Reviewed-by: Steven Dake 2012-02-08 Fabio M. Di Nitto corotype: drop deprecated CPG_ defines the only user of those obsoleted defines is dlm master (already ported) to use CS_ and cmirror (that needs full porting to new corosync either way). Reviewed-by: Steven Dake corotypes: drop deprecated QUORUM_ defines neither corosync or any of the dependencies use it. Reviewed-by: Steven Dake corotypes: drop deprecated EVS_ defines none of our current dependencies use it. Reviewed-by: Steven Dake 2012-02-07 Steven Dake Free state variable allocated in wd_resource_state_is_ok Reviewed-by: Jan Friesse Remove leaked resource error from wd_resource_state_is_ok Reviewed-by: Jan Friesse Remove use after free and free of uninit value in mainconfig error path Reviewed-by: Jan Friesse Remove use after free in corosync_main_config_set in error path Reviewed-by: Jan Friesse Remove dead code in sam test agent Reviewed-by: Jan Friesse 2012-02-07 Fabio M. Di Nitto votequorum: fix quorum_ringid setting before any delivery occours Reviewed-by: Christine Caulfield 2012-02-07 Angus Salkeld Make sure ipc functions return CS_ERR_TRY_AGAIN and not CS_ERR_TIMEOUT This is because most applications that use corosync do not test for TIMEOUT but only for TRY_AGAIN. Reviewed-and-Tested-by: Fabio M. Di Nitto Remove deprecated function qb_util_set_log_function() Use the standard qb_log api. Reviewed-by: Steven Dake LOG: add libqb as a "subsys" So we can see libqb internal logs Reviewed-by: Steven Dake 2012-02-06 Jan Friesse cmap: Check RO flag in adjust int function Reviewed-by: Steven Dake CMAP man pages Reviewed-by: Steven Dake 2012-02-06 Jiaju Zhang CPG: Send CPG_REASON_PROCDOWN when really needed This patch fixes the issue that in some cases where cpg_finalize() was called just after cpg_leave() was called, CPG_REASON_PROCDOWN might also be sent while CPG_REASON_LEAVE had already been sent. This behavior is not aligned with what the man page has described: "CPG_REASON_PROCDOWN - the process left a group without calling cpg_leave()." And it will confuse CPG's clients in that one process left results in two different reasons being sent. The root cause of this issue is cpg_leave() will return after adding the LEAVE message to the sending queue, but the cpg's group name has not been cleared yet. Just at that time, cpg_finalize() is being called, then it determines if there is the calling of cpg_leave() happened only by the checking of cpg's group name, so this method is not sufficient. Reviewed-by: Steven Dake 2012-02-03 Fabio M. Di Nitto quorumtool: fix return codes for show_status and monitor correct return codes should be: 1 if node is quorate 0 if node is not quorate -1 if there is any error gather info on the node Reviewed-by: Christine Caulfield quorumtools: fix nodes display on status Reviewed-by: Christine Caulfield votequorum: fix expected votes manual override from quorumtools votequorum internal quorum/expected_vote check was slightly too conservative and was not done correctly when leave_remove feature is enabled. this fix allows admins to effectively override expected_votes and drive ev_barrier as expected. Reviewed-by: Christine Caulfield 2012-02-03 Jan Friesse Better checks of integer values in coroparse Instead of atoi, strtol is used. This allows detection of typical problems like empty value of key and incorrectly entered numbers. Reviewed-by: Fabio M. Di Nitto Reviewed-by: Steven Dake 2012-02-02 Fabio M. Di Nitto votequorum: add runtime internal data to icmap runtime.votequorum.* specifically ev_barrier, two_node, lowest_node_id and wait_for_all_status are values that change internally at runtime and keeping track of those can make debugging rather easy, specially when LOG_DEBUG is not set. Also track our node id. Reviewed-By: Christine Caulfield 2012-02-02 Jan Friesse Wait for corosync-notifyd exit in init script Without wait for real exit of corosync-notifyd it can happen, that new corosync-notifyd is killed. To prevent such condition, stop now wait for process to die, before exit of stop function. Reviewed-by: Steven Dake Show correct error when open of logfile failed Reviewed-by: Steven Dake Store error str if can't open logfile Reviewed-by: Steven Dake 2012-02-02 Angus Salkeld IPC: reference count the connection whilst flushing the outq Reviewed-by: Steven Dake 2012-02-01 Fabio M. Di Nitto build: fix make dist and make rpm do some cleanup around to include all files that need to be shipped and honor conditional builds properly Reviewed-by: Angus Salkeld 2012-01-31 Angus Salkeld IPC: allow for failures in the connection_created callback Reviewed-by: Fabio M. Di Nitto 2012-01-31 Fabio M. Di Nitto votequorum: add leave_remove option this also cleanup NODESTATE for good. JOINING was never used Reviewed-by: Christine Caulfield votequorum: honor onwire node flags change internal flags were not propagated correctly in the node status Reviewed-by: Jan Friesse quorum: fix load/unload priority for quorum services all main services are loaded at priority 1. vfs_quorum and votequorum did not specify a priority and automatically defaulting to 0, that has a special meaning of being loaded last and unloaded last. this is not correct behavior and limits what votequorum can do at shutdown, for example notify other nodes that it is leaving (something that cannot be gathered by totem membership change callback). fix vsf_quorum to load at priority 1 as the other default services and bump votequorum to 2 (needs to unload before everything else currently known). Reviewed-by: Jan Friesse service: fix service unload regression introduced by lcrso dropping service exec_exit_fn was not honored because the loop was looking into the wrong icmap key Reviewed-by: Jan Friesse votequorum: fix possible string overflow (-1) in qdevice_register Reviewed-by: Jan Friesse votequorum: drop unnecessary flags code inspection shows that those internal flags are never used Reviewed-by: Jan Friesse 2012-01-31 Angus Salkeld CTS: cleanup the cpg test agent improve the diagnostic log messages Reviewed-by: Fabio M. Di Nitto CTS: make the systemd logic more reliable rely on positive logic as there can be multiple failure reasons. 2012-01-30 Steven Dake Honor exec_init_fn call exec_init_fn now either returns NULL (success) or a string which indicates the error that occured during service engine initialization. If an error occurs, corosync will exit. This patch adds ykd and makes other suggestions from Fabio Di Nitto. Reviewed-by: Fabio Di Nitto Return an exit code of 1 if an interface is faulty in corosync-cfgtool Reviewed-by: Fabio Di Nitto 2012-01-30 Angus Salkeld cmap: add iterator finalize Reviewed-by: Fabio M. Di Nitto cmap: add -D option to getopt Reviewed-by: Fabio M. Di Nitto 2012-01-27 Fabio M. Di Nitto votequorum: rename qdisk to qdevice a quorum device is not necessarely a disk and this also aligns various names to be generic Reviewed-By: Christine Caulfield quorum: drop quorum.quorate config option it's unused / unnecessary Reviewed-By: Christine Caulfield 2012-01-27 Angus Salkeld CTS: add test VoteQuorumWaitForAll Reviewed-by: Fabio M. Di Nitto CTS: remove test service config Reviewed-by: Fabio M. Di Nitto augeas: update the lense (rm amf & add update quorum options) Reviewed-by: Fabio M. Di Nitto CTS: be consistent with the cpg group name Reviewed-by: Fabio M. Di Nitto CTS: make the status command more accurate Reviewed-by: Fabio M. Di Nitto CTS: remove SamTestQuorum as there is not test_quorum anymore Reviewed-by: Fabio M. Di Nitto CTS: ignore blackbox shm (only whilst running as it is still visable) Reviewed-by: Fabio M. Di Nitto CTS: delete resourses recursively Reviewed-by: Fabio M. Di Nitto CTS: init votequorum by default Reviewed-by: Fabio M. Di Nitto CTS: account for change in sam resource path. This was: process_name:pid now: pid Reviewed-by: Steven Dake CTS: handle socket exceptions better Reviewed-by: Steven Dake CTS: fix shell script variable name Reviewed-by: Steven Dake 2012-01-26 Fabio M. Di Nitto update TODO list Reviewed-by: Christine Caulfield votequorum: fix expected_votes propagation it is not correct to randomly accept expected_votes from any node in the cluster. We can only allow expected_votes from quorate nodes. A quorate cluster is "always" right and have the correct expected_votes. One of the different bug triggers: quorum { expected_votes: 8 auto_tie_breaker: 1 last_man_standing: 1 } start all 8 nodes. clean shut down 2 nodes. wait for lms to kick in. kill 3 nodes with highest nodeid (we want to retain a quorate partition of 3 nodes) start one node again -> cluster will be unquorate This happens because the node rebooting/rejoining with non current cluster status will propagate an expected_votes of 8, while in reality the cluster is down to expected_votes: 3. 4 nodes are still < 5 (quorum for 8 nodes/votes). In order to avoid this condition, we need to exchange expected_votes information among nodes but we cannot randomly trust everybody. 1) Allow expected_votes to be changed cluster-wide only if the information is coming from a quorate node. 2) Fix node->expected_votes based on quorate status 3) allow a joining node to decrease quorum and expected_votes if the node is not yet quorate, but it's joining a quorate cluster Reviewed-by: Christine Caulfield votequorum: fix auto_tie_breaker design and simplify code a lot auto_tie_breaker requires to know the lowest node id in the currently quorate partition and not of the whole cluster. this allow us to determine the lowest node id as soon as we are quorate and remove the complexity to read it from WFA or nodelist. Add the same time it adds the flexibility for dynamic nodeids in a cluster. drop requirement on WFA if nodelist is not specified update man page Reviewed-by: Christine Caulfield votequorum: drop NODESTATE_LEAVING this is another leftover from cman compatibility layer Reviewed-by: Christine Caulfield 2012-01-25 Fabio M. Di Nitto update TODO list Reviewed-by: Christine Caulfield votequorum: add documentation and man pages fix a few typos on the way and separate config / library bits Reviewed-by: Christine Caulfield votequorum: change quorum.expected_votes override behavior as agreed on the mailing list, quorum.expected_votes should override automatically calculated expected_votes from nodelist. Also simplify the code to handle expected_votes. "silly defaults" is now unnecessary because votequorum does config sanity checks upfront. Reviewed-by: Christine Caulfield votequorum: two_node should enable wait_for_all by default This avoids fencing races at startup of a cluster. It is still possible to override WFA by explicitly setting wait_for_all: 0 Reviewed-by: Angus Salkeld 2012-01-25 Angus Salkeld CTS: make basic tests config-generic Reviewed-by: Steven Dake CTS: fix starting/stopping of test_agents Reviewed-by: Steven Dake CTS: tidy up the shutdown of cpg_test_agent it is not neccessary to close the fd and remove it from the mainloop Reviewed-by: Steven Dake CTS: temp comment out quorum tests Reviewed-by: Steven Dake CTS: fix quourm command Reviewed-by: Steven Dake CTS: fix up the formt strings Reviewed-by: Steven Dake Add debug log messages to corosync for join/leave This is needed by cts. Reviewed-by: Steven Dake LOG: make sure that debug works to syslog Reviewed-by: Steven Dake 2012-01-24 Jan Friesse totemiba: Remove unused wthread.h include Reviewed-by: Angus Salkeld Make xmlconf in SPEC conditional Reviewed-by: Angus Salkeld 2012-01-23 Angus Salkeld Change the last references from objctl to cmapctl Reviewed-by: Fabio M. Di Nitto 2012-01-23 Fabio M. Di Nitto Update TODO list Reviewed-by: Jan Friesse votequorum: add support for nodelist config bits expected votes is now calculated automatically and quorum.expected_votes can be used to override nodelist calculation. The highest of the two value is used for runtime. quorum_votes can be specified either in the node list or in quorum.votes. The node list has priority over global. propagate votequorum initalization errors (due to config inconsistencies) back to vsf_quorum. Reviewed-by: Jan Friesse 2012-01-23 Angus Salkeld Remove all unneccessary "\n" from log messages These look ugly, are inconsistently done and just have to be removed later in libqb before calling syslog. Reviewed-by: Steven Dake Shorten some really long lines in main.c Reviewed-by: Steven Dake cmap: add a delete with prefix (needed by cts) Reviewed-by: Steven Dake cmap: change -t and -T around (capital == with prefix) I want to add a prefic delete option and then these will not be consistent. Reviewed-by: Steven Dake cmap: tweek the usage text 1) It wasn't obvious to me what -b did 2) -a has been removed Reviewed-by: Steven Dake cmap: add a load option for cts "-p" Reviewed-by: Steven Dake CTS: convert the test agents to use qb logging Reviewed-by: Steven Dake CTS: fix the corosync start/stop settings Reviewed-by: Steven Dake CTS: set the syslog restart commands up correctly Reviewed-by: Steven Dake 2012-01-20 Jan Friesse Add nodelist informations to manual page Reviewed-by: Steven Dake Make local_node ring0 address read-only Reviewed-by: Steven Dake Support for dynamic nodelist udpu member change Reviewed-by: Steven Dake Use nodeid provided in nodelist Reviewed-by: Steven Dake Support udpu members in nodelist Reviewed-by: Steven Dake Add local_node_pos icmap key Key contains local node position in nodelist Reviewed-by: Steven Dake Parse nodelist in coroparse Reviewed-by: Steven Dake 2012-01-19 Jan Friesse mon: Remove leftover print of debug output to err Reviewed-by: Angus Salkeld Set default multicast port if not specified Reviewed-by: Steven Dake 2012-01-19 Fabio M. Di Nitto votequorum: drop protocol versioning in favour of extra space on the wire protocol needs to stay compatible across a corosync MAJOR release. Implementing internal protocol version compat is at best suicidal. Add extra space to the net struct and we can use flags to determine feature sets. Reviewed-by: Christine Caulfield 2012-01-19 Angus Salkeld autobuild: make sure systemd is enabled on f15+ Reriewed-by: Steven Dake autobuild: ssh into node as root Reviewed-by: Steven Dake CTS: remove the test service agent Reviewed-by: Steven Dake 2012-01-18 Fabio M. Di Nitto votequorum: ifdef qdiskd API out as agreed, the API has not been tested yet. Adding later is better than removing it. Reviewed-by: Steven Dake votequorum: be slightly more efficent and consistent reduce req_exec_quorum_nodeinfo from 40 to 16 bytes (onwire) add 4 bytes to req_exec_quorum_reconfigure to be consisent with feature/version checking (onwire data) make all nodeid definition "unsigned int" instead of some random mix. reduce size of different vars remove lots of unnecessary swab due to reducing size of data drop join_time from cluster_node, it's never used fix printing of nodeids from random mix to uint for consistency Reviewed-by: Christine Caulfield 2012-01-18 Jan Friesse Update TODO with recent mcast addr changes Reviewed-by: Steven Dake Store auto generated mcast addr and port to icmap Reviewed-by: Steven Dake Add cluster_name option Option is used for automatic generating of multicast address. If both cluster_name and mcastaddr options are specified, mcastaddr takes precedence. Reviewed-by: Steven Dake 2012-01-17 Fabio M. Di Nitto quorum: fix votequorum service initialization the problem is that votequorum was listed as part of default services. At service_link_and_init, votequorum library and exec were being made available, even when votequorum was not in used at all, creating all kind of problems. By changing the service_link_and_init to be clever, we restore the original and wanted behavior to link the service only when required. This also fixed N*votequorum API calls segfaults, init segfaults and a few dozen other small issues... Reviewed-by: Christine Caulfield quorumtool: fix node display regression in monitoring option make display_nodes code common with show_nodes Reviewed-by: Christine Caulfield votequorum: fix include to match definition name (cosmetic) Reviewed-by: Angus Salkeld quorum: integrate votequorum and ykd correctly the problem is mostly in votequorum here, where votequorum_exec is initialized with or without votequorum being configured as quorum provider. re-establish init order (regression from dropping lcrso) and make sure we init correctly only the module configured. ykd changes are for consistency only at this point in time. Reviewed-by: Angus Salkeld build: fix distcheck regression introduced from ykd binding Reviewed-by: Angus Salkeld votequorum: fix standalone build Reviewed-by: Angus Salkeld main: drop unrequired vars Reviewed-by: Angus Salkeld quorum: link ykd back into quorum and fix build warning Reviewed-by: Angus Salkeld votequorum: check for parameters and return proper error Reviewed-by: Angus Salkeld vsf_quorum: fix potential memory leak Reviewed-by: Angus Salkeld coroparse: fix include path after drop lcrso merge Reviewed-by: Angus Salkeld update .gitignore Reviewed-by: Angus Salkeld 2012-01-17 Steven Dake Silent a warning from coverity about handle being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a coverity warning about a variable being uninit when it actually is Reviewed-by: Angus Salkeld Silent a coverity warning about handle being unset (when it really is) Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Silent a warning from coverity about icmap_track being used without assign Reviewed-by: Angus Salkeld Add break where one was missing Reviewed-by: Angus Salkeld Remove unchecked coverity error Reviewed-by: Angus Salkeld 2012-01-16 Steven Dake Fix missing rebase problem that causes make rpm to fail Reviewed-by: Fabio Di Nitto Add missing votequorum.h file from previous commit Reviewed-by: Fabio Di Nitto Remove main_get_config_modules since it is no longer needed Reviewed-by: Fabio Di Nitto Finish up quorum integration Reviewed-by: Fabio Di Nitto Reviewed-by: Steven Dake Remove some lcr ifdef'ed code in service.c Reviewed-by: Fabio Di Nitto Remove services directory from loc command Reviewed-by: Fabio Di Nitto Get rid of external config loader in include/engine/config.h Reviewed-by: Fabio Di Nitto Remove service.d directory since plugins are gone Reviewed-by: Fabio Di Nitto Remove lcr directory, files, and references since it is no longer needed Reviewed-by: Fabio Di Nitto Initial removal of plugins Quorum is broken in this patch. service.h needs to be cleaned up significantly Reviewed-by: Fabio Di Nitto Move cs_error into global header so that third party applications can use it Reviewed-by: Andrew Beekhof 2012-01-16 Fabio M. Di Nitto votequorum: fix name and version Reviewed-by: Christine Caulfield votequorum: drop unused define Reviewed-by: Christine Caulfield votequorum: rearrange code this commit has no functional changes or bugfixes. Simply reorganize the code in more logical way and change function names to be more consistent. Reviewed-by: Christine Caulfield votequorum/quorum-tools: drop unnecessary includes Reviewed-by: Christine Caulfield votequorum: network data should be packed Reviewed-by: Christine Caulfield 2012-01-13 Jan Friesse Use fast inc for service statistics Reviewed-by: Steven Dake icmap: Add fast version of inc and dec operation Biggest difference between fast and standard inc/dec operation is in fast that fast doesn't do malloc/memcpy, but also it means that tracking events doesn't have old value set. Reviewed-by: Steven Dake 2012-01-13 Fabio M. Di Nitto Fix spec file to reflect documentation changes Reviewed-by: Reviewed-by: Jan Friesse man: improve index.html a bit add tools/daemon section and developers section also add links to other API docs Reviewed-by: Jan Friesse man: sort interfaces alphabetically Reviewed-by: Jan Friesse man: cosmetic index.html changes makes it slightly more consistent and readable Reviewed-by: Jan Friesse man: drop confdb from man pages Reviewed-by: Jan Friesse update TODO list Reviewed-by: Steven Dake quorum: extend initialize man page add QUORUM_FREE/QUORUM_SET and fix a typo Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_getquorate) Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_context_set) Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_context_get) Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_dispatch) Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_fd_get) Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_finalize) Reviewed-by: Steven Dake quorum: libquorum API documentation (quorum_initialize) Reviewed-by: Steven Dake votequorum: update man pages Reviewed-by: Steven Dake votequorum: lower quorum change logging vfs_quorum already does logging at INFO level Reviewed-by: Steven Dake update TODO list Reviewed-by: Steven Dake votequorum: drop votequorum_leave this was a compatibility function for cman_tool only. Reviewed-by: Steven Dake votequorum: add missing new line Reviewed-by: Steven Dake votequorum: display flags for all features Reviewed-by: Steven Dake quorumtool: improve monitoring output some more this avoid printing some static data more than once Reviewed-by: Steven Dake votequorum: drop HASSTATE/SETSTATE this is a leftover from killing DISALLOWED Reviewed-by: Steven Dake quorumtool: make data display more generic this improves the monitoring option a ton Reviewed-by: Steven Dake quorumtool: drop redundant init calls to votequorum this is taken care of in initall Reviewed-by: Steven Dake quorumtools: update copyright header Reviewed-by: Steven Dake cmapctl: initialize more variables and kill the last gcc warnings Reviewed-by: Steven Dake cmapctl: initialize bit_value and check if it's set more gcc warnings... Reviewed-by: Steven Dake mainconfig: check error return codes from logsys_format_set and avoid yet another gcc warning Reviewed-by: Steven Dake main: drop unrequired call to totem_get_stats and shut up another gcc warning Reviewed-by: Steven Dake icmap: make sure variable is initialized shut up gcc warning Reviewed-by: Steven Dake 2012-01-12 Steven Dake unshare exec/icmap.so Reviewed-by: Fabio Di Nitto Change all ais references to corosync Reviewed-by: Fabio Di Nitto 2012-01-11 Jan Friesse cmapctl: Print all keys by default Also remove option -a, because there is no need to hide internal_configuration. Reviewed-by: Steven Dake Update TODO with notifid changes Reviewed-by: Steven Dake Store rrp faulty status of ring in cmap New key with faulty status of ring is created in cmap as name runtime.totem.pg.mrp.rrp.$ring_number.faulty Reviewed-by: Steven Dake 2012-01-10 Fabio M. Di Nitto quorum: more TODO items Reviewed-by: Steven Dake quorum: update TODO Reviewed-by: Steven Dake votequorum: fix votes/quorum recalculation in auto_tie_breaker this is necessary when switching from 2 nodes to 1 one in auto_tie_breaker Reviewed-by: Steven Dake votequorum: improve wait_for_all reset handling when merging parititions this change allow a node to rejoin a cluster that has already seen wait_for_all and reset the flag if the partition that the node is joining is quorate. Also propagate current wait_for_all_status and quorate info via nodeinfo. Reviewed-by: Steven Dake votequorum: fix another regressions introduced by 05b4e99a6e (dispatch notifications only once) left_member_entries is never set when totem config change is regular. Reviewed-by: Steven Dake votequorum: fix regression introduced by 05b4e99a6e (dispatch notifications only once) Effectively there are 2 kind of quorum notifications that cannot be merged into 1. config_change: when the quorum membership changes, triggered by totem/membership changes (node join/leave) quorum_status_changes: same membership node becomes quorate or not. A quorum status change does not necessarely match a membership change, hence it needs to be dispatched separately. An example is a cluster that is not quorate, user changes the amount of votes in a node to regain quorum. No membership changes happen at this point, but votequorum will effectively broadcast the votes: XX change and recalculate quorum. In turn we need to notify quorum users. Reviewed-by: Steven Dake votequorum: switch two_node from flag to int TWO_NODE was the last flag using quorum_flags. Reviewed-by: Steven Dake votequorum: drop kill_reason leftovers (part of disallowed) Reviewed-by: Steven Dake votequorum: missed one comment to cleanup ;) Reviewed-by: Steven Dake votequorum: clean up coding style first pass to bring votequorum at corosync codying style. fix whitespaces, add missing {}, fix comments, be consistent with ENTER/LEAVE usage, be consistent with some functions variable names and some more cosmetic changes Reviewed-by: Steven Dake votequorum: update copyright/authors Reviewed-by: Steven Dake votequorum: dispatch notifications only once Reviewed-by: Steven Dake votequorum: add last_man_standing support (default: off) this flag (0|1) can be configured via quorum.last_man_standing and when enabled, it allows expected_votes to be dynamically recalculated. Assuming an 8 nodes cluster, every node votes 1 (mandatory requirement for this feature). In the first event, 3 nodes are lost. The remaining partition of 5 is barely quorate. After a configurable timeout (quorum.last_man_standing_window, default 10sec) the quorate partition is allow to recalculate expected_votes based on the remaining nodes. This operation will bring expected_votes to 5 and quorum to 3. Repeating the above loop, in the next event, 2 more nodes are allowed to die. etc. etc. Reviewed-by: Steven Dake votequorum: drop concept of DISALLOWED this is a very old leftover from the RHEL5 timeframe, not used in RHEL6. Also change votequorum soname since this change implies an ABI change. Reviewed-by: Steven Dake quorum: bump soname for libquorum to reflect API change Reviewed-by: Steven Dake votequorum: fix quorum_flags values Reviewed-by: Steven Dake votequorum: transmit wait_for_all info in node info message this is necessary to reset the wait_for_all data when a node is joining a cluster that has already seen all nodes once. Reviewed-by: Steven Dake votequorum: add auto_tie_breaker support (default: off) this flag (0|1) can be configured via quorum.auto_tie_breaker and when enabled, support for perfect even split is on. In case of a 50% of votes loss in one single transition, the partition with the node that has the lowest node id will remain quorate. Reviewed-by: Steven Dake votequorum: add wait_for_all support (default: off) this flag (0|1) can be configured via quorum.wait_for_all and changes behavior when granting quorum for the first time. Normal behavior (default / 0) grants quorum as soon as enough nodes are available in a cluster. Setting this value to 1 will grant quorum only after all cluster memembers are part of the cluster at the same time. Reviewed-by: Steven Dake votequorum: always dispatch quorum notifications Resolves: rhbz#768144 Reviewed-by: Steven Dake quorum: change API to return quorum type at initialization time corosync internal theory of operation is that without a quorum provider the cluster is always quorate. This is fine for membership free clusters but it does pose a problem for applications that need membership and "real" quorum. this change add quorum_type to quorum_initialize call to return QUORUM_FREE or QUORUM_SET. Applications can then make their own decisions to error out or continue operating. The only other way to know if a quorum provider is enabled/configured is to poke at confdb/objdb, but adds an unnecessary burden to applications that really don't need to use an entire library for a boolean value. Reviewed-by: Steven Dake 2012-01-09 Angus Salkeld IPC: don't block forever on a recv msg as corosync might be gone. This at least will not make the client hang forever. Reviewed-by: Steven Dake 2012-01-09 Jan Friesse Add rrp faulty event to notifyd Reviewed-by: Steven Dake Add usage text to cmapctl Reviewed-by: Steven Dake Ability to display binary data type in cmapctl Reviewed-by: Steven Dake Ability to store binary key Reviewed-by: Steven Dake 2012-01-09 Angus Salkeld Fix last corosync/engine/coroapi.h Reviewed-by: Steven Dake 2012-01-08 Steven Dake Add Requires: libxslt if BUILD_XMLCONF is defined Reviewed-by: Angus Salkled Improve make rpm to work properly Reviewed-by: Fabio Di Nitto Move coroapi out of external headers Reviewed-by: Angus Salkled 2012-01-07 Steven Dake Move logsys.c into corosync binary instead of a shared object Our preferred shared logging system is exported via the libqb library. As a result, the corosync project no longer needs to export logsys.so and the code can be directly included in the binary. The header file can also be removed. Reviewed-by: Jan Friesse Allow make rpm to complete with recent changes in cmap and xmlproc Reviewed-by: Jan Friesse Fix make dist relating to xmlconf conditional Reviewed-by: Fabio Di Nitto 2012-01-06 Angus Salkeld Fix some iterator based mem leaks Reviewed-by: Steven Dake 2012-01-06 Steven Dake Remove libqb issues reference 1 since that isn't really a problem 2012-01-03 Fabio M. Di Nitto ipc: make less noise switch from LOG_INFO to LOG_DEBUG for some basic operations Reviewed-by: Steven Dake 2011-12-20 Jan Friesse Add topic-xmlschema to TODO Also topic-xmlconfig is removed. Reviewed-by: Steven Dake Man pages for corosync-xml Reviewed-by: Steven Dake Convert xml config file Included are following parts: - XSLT template with actual conversion - simple wrapper on top of xsltproc called corosync-xmlproc - example XML file Reviewed-by: Steven Dake Remove deprecated options from corosync.conf page Reviewed-by: Steven Dake Remove deprecated options from conf examples Reviewed-by: Steven Dake Align --with-snmp in help output Reviewed-by: Steven Dake 2011-12-15 Jan Friesse Updated TODO to reflect cmap inclusion Remove objdb and confdb Reviewed-by: Steven Dake Move wd service to use icmap Reviewed-by: Steven Dake Move mon service to use icmap Reviewed-by: Steven Dake Move SAM to use CMAP service Reviewed-by: Steven Dake Move quorumtool to use cmap service Reviewed-by: Steven Dake Move notifyd to use cmap service Reviewed-by: Steven Dake Add cmapctl tool corosync-cmapctl is direct replacement for corosync-objctl Reviewed-by: Steven Dake Move cfg service to use icmap Reviewed-by: Steven Dake Move votequorum to use icmap Reviewed-by: Steven Dake Move testquorum to icmap Reviewed-by: Steven Dake Move corosync core to use icmap Reviewed-by: Steven Dake Add user library to use cmap service Reviewed-by: Steven Dake Add cmap service Cmap service is application developer interface to icmap and it is direct replacement for confdb. Reviewed-by: Steven Dake Add icmap Icmap is replacement for objdb, based on libqb map (trie). Reviewed-by: Steven Dake 2011-12-15 Angus Salkeld TODO: remove "message/queue size" todo's Check for the correct message size in totempg_groups_joined_reserve() Currently: - send_reserve() adds to the reserve - msg_count_send_ok() tests ((avail - totempg_reserved) > msg_count) So essentially we are checking to see if 2 * msg_count can fit in the q. So instead I am using byte_count_send_ok (size) to see if the message will fit then calling send_reserve() Reviewed-by: Steven Dake Fix cpgbench (large message sizes) To allow async cpg messages of 1M we need to: 1) increase the totem queue size 4 times 2) align the critical level to one large message free There are a number of reasons for doing this: We can't let cpg_mcast_joined() fail because the user will not see it and will assume is has succeded. The reason we are getting good performance is by providing a negative feedback loop from the totem q to the IPC/poll system. This relies on 4 q states low/med/high/crit. With messages of size 1M you now have a q of size one and now go from level low to crit instantly then back to low as messages are put on and taken off. I don't think this is the best behaviour. By having a q size of 4 allows the system to utilize the q better and give us time to respond to changes in the q level. To effectively achieve flow control with a q of size 1 would require all the clients to request the space on the q like is done in totempg_groups_joined_reserve() but probably in shared memory This would take quite a bit of re-work. LOG: get the logging to work from loaded quorum modules Reviewed-by: Steven Dake Tweek the increment in cpgbench so the message size gets to 1M Reviewed-by: Steven Dake 2011-12-14 Angus Salkeld Be more flexible (correct) with flowcontrol. Many functions do not require flowcontrol and are two-way so they can get failures from corosync. Only cpg_mcast_joined() _really_ needs the current level of flowcontrol. Reviewed-by: Steven Dake 2011-12-13 Fabio M. Di Nitto quorum-tools: add quorum monitoring option Reviewed-by: Steven Dake quorum-tool: reduce amount of init/finalize Reviewed-by: Steven Dake quorum-tools: change internal get_quorum_type don't leak memory, better error reporting and improve status output when there is no quorum configured also fix some coding style based on review input Reviewed-by: Steven Dake quorum-tool: add return codes to show status -1 indicates an error communicating with corosync/quorum/votequorum service 0 node is not quorate 1 node is quorate also add more error reporting and a couple of missing calls to finalize Reviewed-by: Steven Dake quorum-tool: update copyright date Reviewed-by: Steven Dake quorum-tools: fix options/help text Reviewed-by: Steven Dake 2011-12-13 Angus Salkeld LOG: Fix a crash in the shutdown. Reviewed-by: Steven Dake 2011-12-06 Steven Dake Change mailing list in configure.ac to discuss@lists.corosync.org Reviewed-by: Jan Friesse Add silent rules to corosync make to more easily find warnings Reviewed-by: Jan Friesse 2011-12-01 Jan Friesse hdb* functions already returns -error value So it's wrong to define hdb_error_to_cs and pass -error value, because this creates --error = error = CS_OK. Reviewed-by: Steven Dake 2011-11-30 Yunkai Zhang Correct nodeid in memb_state_commit_token_send function Reviewed-by: Steven Dake 2011-11-29 Steven Dake From: Yunkai Zhang: Today, I have observed one of the reason that corosync running into FAILED TO RECEIVE state. There was five nodes(A,B,C,D,E) in my testing, and I limited the UDP transmission rate of C nodes by iptables command: iptables -A INPUT -i eth0 -p udp -m limit --limit 10000/s --limit-burst 1 -j ACCEPT iptables -A INPUT -i eth0 -p udp -j DROP After one hour later, C node had been missing some MCAST messages, it's state described as following: ==state of C node== my_aru:0x805 my_high_seq_received:0xC2C my_aru_count:7 =>receved MCAST message with seq:806 from B nodes =>enter *message_handler_mcast* =>add this message to regular_sort_queue ... =>enter *update_aru* function => range = (my_high_seq_received - my_aru) = (0xC2C - 0x805) = 1063 => if range>1024, do nothing and and return directly. ==END== According this logic, after (my_high_req_received-my_aru)>1024, my_aru will not be updated though corosync can receive MCAST messages retransmitted by other nodes. But at that timte, my_aru_count was only 7. So the corosync at C node would keep in this status until my_aru_count increased to fail_to_recv_const(the default value is 2500). This was a long time for corosync, but we wasted it. To solve this issue, maybe we can enlarge the range condition in update_aru function? Or we just ingnore the checking of range value, it seems no harmfull, because we have been using fail_to_recv_const to control the things. Reviewed-by: Jan Friesse 2011-11-28 Yunkai Zhang Correct nodeid of token when we retransmit it Although incorrect nodeid will not affect program's logic, but it will make us confused when we add some logs to record the transmission path of token in debug mode. Reviewed-by: Steven Dake 2011-11-26 Yunkai Zhang Fixed bug when corosync receive JoinMSG in OPERATIONAL state Accordig the totem protocal, nodes should enter GATHER state when it receive JoinMSG in OPERATIONAL state. If we discard it in OPERATIONAL state, the nodes sending this JoinMSG could not receive the response untill other nodes reach token lost timeout. This bug will cause nodes having entered GATHER state spend more time to rejoin the ring, and then it will make nodes reach token expired timeout more easily. Reviewed-by: Steven Dake 2011-11-26 Steven Dake Remove unchecked return error in test code Remove unused variable from latest cpg work that merged all config changes Signed-off-by: Steven Dake Remove unchecked return problem in test code Remove unchecked return warning Remove use of NULL in test agent Remove unchecked return error Correct typing in memory_map function in lib/cpg.c 2011-11-14 Angus Salkeld Fix last warnings so we can build with --enable-fatal-warnings Reviewed-by: Steven Dake 2011-11-10 Angus Salkeld TOTEM: better clean up on exit Reviewed-by: Steven Dake OBJDB: free up resources on exit Reviewed-by: Steven Dake LOG: cleanup logging resources at exit Reviewed-by: Steven Dake Clean up the poll loop resourses on exit Reviewed-by: Steven Dake Add calls to missing object_find_destroy() to fix mem leaks Reviewed-by: Steven Dake Free mem allocated by getaddrinfo Reviewed-by: Steven Dake 2011-10-31 Yunkai Zhang Send one confchg event per CPG group to CPG client We found that sheepdog will receive more than one confchg msg when network partition occur. For example, suppose the cluster has 4 nodes: N1, N2, N3, N4, and they form a single-ring initially. After a while, network partition occur, the single-ring divide into two sub-ring: ring(N1, N2, N3) and ring(N4). The sheepdog in the ring(N4) will receive the following confchg messages in turn: Memb: N2,N3,N4 Left:N1 Joined:null memb: N3,N4 Left:N2 Joined:null memb: N4 Left:N3 Joined:null This patch will fixed this bug, and the client will only receive one confchg event in this case: memb: N4 Left:N1,N2,N3 Joined:null Reviewed-by: Angus Salkeld 2011-10-28 Anton Jouline Adding support for dynamic membership with UDPU transport Add a new object called totem.interface.dynamic to allow creation/deletion of new child objects using the corosync-objctl utility: to add new member: linux# corosync-objctl -c totem.interface.dynamic.10-211-55-12 to delete an existing member: linux# corosync-objctl -d totem.interface.dynamic.10-211-55-12 Corosync will dynamically add these members to the configuration and start communicating with those nodes. Reviewed-by: Steven Dake 2011-10-25 Jan Friesse Remove unused buf and len variables in log_printf Reviewed-by: Steven Dake 2011-10-24 Jan Friesse api: Change some of totempg definitons Recent changes in patch "Get rid of hdb usage in totempg.h interface" caused incompatibility between corosync API and totempg. Reviewed-by: Steven Dake totemmrp: Allow compilation without warnings Reviewed-by: Steven Dake Allow compilation of totempg without warnings Reviewed-by: Steven Dake logsys.h: Properly define LEAVE macro Reviewed-by: Angus Salkeld 2011-10-22 Angus Salkeld Set the size of the blackbox to the size on flatiron Reviewed-by: Steven Dake CTS: remove dead code in sam_test_agent Reviewed-by: Steven Dake don't log an error if exiting with 0 Reviewed-by: Steven Dake LOG: update the log defines Reviewed-by: Steven Dake 2011-10-21 Steven Dake add wait-for-license to cov-analyze Reviewed-by: Angus Salkeld res could return an undefined value if there was no error in totempg_groups_initialize Reviewed-by: Angus Salkeld Remove default from cpg_model_initialize - atm there is only one model Reviewed-by: Angus Salkeld Remove dead code in evs service Reviewed-by: Angus Salkeld Remove dead code in votequorum Reviewed-by: Angus Salkeld 2011-10-21 Angus Salkeld TEST: make cpgbench go to 1M Reviewed-by: Steven Dake Remove references to README.devmap Reviewed-by: Steven Dake 2011-10-21 Steven Dake Remove dead code in cfg.c 2011-10-21 Angus Salkeld Remove old README.devmap Reviewed-by: Steven Dake MAN: remove unused man pages Reviewed-by: Steven Dake LOG: use libqb facility conversion functions Reviewed-by: Steven Dake LOG: get logging to file working correctly Reviewed-by: Steven Dake LOG: Fix debugging Reviewed-by: Steven Dake 2011-10-20 Steven Dake Updated TODO with feedback from community defining our Needle 2.0/2.1 goals Revieweed-by: Jan Friesse Add --concurrency to coverity make target Reviewed-by: Jan Friesse 2011-10-10 Masatake YAMATO Remove cloned lines in main of main.c 2011-09-22 Steven Dake Deliver all messages from my_high_seq_recieved to the last gap This patch passes two test cases: ------- Test #1 ------- Two node cluster - run cpgbench on each node modify totemsrp with following defines: Two test cases: ------- Test #2 ------- 5 node cluster start 5 nodes randomly at about same time, start 5 nodes randomly at about same time, wait 10 seconds and attempt to send a message. If message blocks on "TRY_AGAIN" likely a message loss has occured. Wait a few minutes without cyclng the nodes and see if the TRY_AGAIN state becomes unblocked. If it doesn't the test case has failed Reviewed-by: Reviewed-by: Jan Friesse 2011-09-08 Jan Friesse totemconfig: change minimum RRP threshold RRP threshold can be lower value then 5. Reviewed-by: Fabio M. Di Nitto 2011-09-05 Steven Dake Allow conditional rpmbuilds of NSS feature NSS is currently non-conditional. Allow nss to be build conditonally. Reviewed-by: Angus Salkeld 2011-09-02 Steven Dake Ignore memb_join messages during flush operations a memb_join operation that occurs during flushing can result in an entry into the GATHER state from the RECOVERY state. This results in the regular sort queue being used instead of the recovery sort queue, resulting in segfault. Reviewed-by: Jan Friesse 2011-09-01 Jan Friesse rrp: Higher threshold in passive mode for mcast There were too much false positives with passive mode rrp when high number of messages were received. Patch adds new configurable variable rrp_problem_count_mcast_threshold which is by default 10 times rrp_problem_count_threshold and this is used as threshold for multicast packets in passive mode. Variable is unused in active mode. Reviewed by: Steven Dake rrp: Handle endless loop if all ifaces are faulty If all interfaces were faulty, passive_mcast_flush_send and related functions ended in endless loop. This is now handled and if there is no live interface, message is dropped. Reviewed by: Steven Dake 2011-08-24 Steven Dake Get rid of hdb usage in totempg.h interface hdb has some expense and is not necessary in the totempg.so runtime. This patch removes the dependence on hdb and instead uses a direct pointer. Reviewed-by: Angus Salkeld Remove hdb.h header includes from unnecessary files The files in this patch do not use the hdb.h header. Reviewed-by: Angus Salkeld 2011-08-23 Steven Dake Use qb_hdb instead of mutex based hdb code Rid ourselves of the mutex usage still in the code base Reviewed-by: Angus Salkeld Add totempg_threaded_mode_enable() api This API allows totem to operate as a multithreaded library. Performance is better without threads but some library users may only have multithreaded systems. In the corosync case where we have removed threads, this reduces cpu utilization by ~10% by removing about 50% of the mutex lock and unlock calls that occur during typical operation. Since the latest corosync is nearly thread free, there is no need for mutex operations. Reviewed-by: Angus Salkeld Move cs_queue.h from include directory to exec directory This file is only used by totemsrp.c. Move out of general include directory. Reviewed-by: Angus Salkeld use va version of external log function This removes a sprintf operation in the totem and ipc logging operations Reviewed-by: Angus Salkeld 2011-08-18 Tim Beale A CPG client can sometimes lockup if the local node is in the downlist In a 10-node cluster where all nodes are booting up and starting corosync at the same time, sometimes during this process corosync detects a node as leaving and rejoining the cluster. Occasionally the downlist that gets picked contains the local node. When the local node sends leave events for the downlist (including itself), it sets its cpd state to CPD_STATE_UNJOINED and clears the cpd->group_name. This means it no longer sends CPG events to the CPG client. Reviewed-by: Jan Friesse 2011-08-17 Tim Beale Display ring-ID consistently in debug Ring ID was being displayed both as hex and decimal in places. Update so it's displayed consistently (I chose hex) to make debugging easier. Reviewed-by: Angus Salkeld Add code comment mapping for message handler defines As a corosync-newbie it can be hard to bridge the gap between where a particular message is sent and where the receive handler processes it, and vice versa. Reviewed-by: Angus Salkeld 2011-08-15 Steven Dake Remove -lcoroipcc from tools/Makefile.am notifyd Reviewed-by: Angus Salkeld properly define rec_token_cq_send_event_fn Reviewed-by: Angus Salkeld Define totemiba_log_printf properly Reviewed-by: Angus Salkeld Fix problem in totemiba where incorrect define is used (and also not defined) Reviewed-by: Angus Salkeld 2011-08-09 Jan Friesse Allow compile master on RHEL 6 corosync_timer_handle_t is know conditionally defined to prevent double definition causing compile fault on RHEL 6 systems. Reviewed-by: Angus Salkeld 2011-08-09 Angus Salkeld Make realtime scheduling optional not the default. Reviewed-by: Steven Dake Update TODOs Reviewed-by: Steven Dake libqb: logging & trace Reviewed-by: Steven Dake libqb: Add libqb dependency in the rpm & pc file Reviewed-by: Steven Dake Fix some compiler warnings Reviewed-by: Steven Dake Use PATH_MAX for file path size Reviewed-by: Steven Dake libqb: Improve IPC dispatch and async handling Reviewed-by: Steven Dake CPG: downgrade some log messages Reviewed-by: Steven Dake CTS: make test agent shutdown more gracefully Reviewed-by: Steven Dake CTS: add an audit to check for leaking shared memory Reviewed-by: Steven Dake CTS: get GenStopAllBeekhof working a bit better Reviewed-by: Steven Dake CTS: log bind() errors better Reviewed-by: Steven Dake CTS: log cfg results Reviewed-by: Steven Dake CTS: rename flatiron to needle Reviewed-by: Steven Dake CTS: add exit handler to test_agents Reviewed-by: Steven Dake CTS: add "Too many open files" to the BadNews pattern Reviewed-by: Steven Dake CTS: impove debug during msgSend test Reviewed-by: Steven Dake CTS: add logging to test agent Reviewed-by: Steven Dake CTS: increse wait for node to reboot Reviewed-by: Steven Dake CTS: support new pacemaker-cts Reviewed-by: Steven Dake AUGEAS: fix "tags" log field Reviewed-by: Steven Dake TEST: fix the print out when cpg_finalize() fails Reviewed-by: Steven Dake libqb: use the new cs_strerror() to print out the error message. Reviewed-by: Steven Dake libqb: fix iov_len in pcmk_test Reviewed-by: Steven Dake libqb: fix valgring warnings in mon/wd Reviewed-by: Steven Dake libqb: change pause_timestamp to uint64_t Reviewed-by: Steven Dake libqb: rip out objdb & serialize locks Reviewed-by: Steven Dake libqb: only init IPC on service engines that need it. Reviewed-by: Steven Dake libqb: remove the lib init/exit from the test service agent Reviewed-by: Steven Dake libqb: use the main loop to shutdown Reviewed-by: Steven Dake libqb: remove tsafe.c Reviewed-by: Steven Dake libqb: remove worker thread - keep to one thread. Reviewed-by: Steven Dake libqb: make timer api a wrapper around qb_loop timers. - change timeout value to nano seconds - fix timer handles (don't alloc on stack) Reviewed-by: Steven Dake libqb: change ipc -> qb_ipc IPC: return 0/-ENOBUFS from message handler IPC: use the new rate_limit API to improve perf. CPG: add send_async API & hook up flow control IPC: Fix flow control getting stuck. IPC: Port the remaining libs to use libqb IPC IPC: remove libqb flowcontrol API TEST: put cpg_dispatch() in it's own thread IPC: cleanup ipc_glue.c name everything cs_ipcs_*() IPC: add back statistics IPC: remove coroipcc_ symbols from lib*.versions IPC: init each se's IPC as it is loaded. IPC: use the new connection_closed() event to free the context. IPC: re-add zero copy functionality back IPC: remove cpg_mcast_joined_async() and make it the default -> now cpg_mcast_joined() == cpg_mcast_joined_async() libqb: expose a libqb error converter libqb: add missing error conversions libqb: remove repeat try loop in lib/cpg.c CPG: fix zero copy mcast CPG: use newer return codes Add ENOTCONN to qb_to_cs_error() libqb: fix error conversion from errno to cs_error_t in confdb libqb: change errno_to_cs to qb_to_cs_error libqb: add a cs_strerror() to get a more meaningful message libqb: fix some confusing error conversions. libqb: set the timeout on recv's to -1 (wait forever) Reviewed-by: Steven Dake libqb: convert coropoll calls to qb_loop calls. Reviewed-by: Steven Dake Add systemd unit files for corosync and corosync-notifyd Reviewed-by: Steven Dake 2011-08-07 Florian Haas corosync.conf.example: add note about host addresses in bindnetaddr https://lists.linux-foundation.org/pipermail/openais/2011-July/016563.html Jan Friesse pointed out that bindnetaddr should be set to a host address (as opposed to a network address) on hosts where multiple NICs live on the same subnet. Add a comment to that effect to the example configuration file. Reviewed-by: Steven Dake corosync.conf.example: include comments It's nice to say people should read the man page. It's also naive to assume that they always do. Include comments in the example config file itself. Reviewed-by: Dan Frincu Reviewed-by: Jan Friesse Reviewed-by: Steven Dake corosync.conf.example: change mcastaddr Change suggested mcastaddr to one in the 239.255.0.0/16 pseudo-subnet. Multicast addresses outside 239.x.x.x may be IANA registered and can clash with other services present on the network. Suggest an address defined as part of the multicast IPv4 Local Scope in RFC 2365. Reviewed-by: Dan Frincu Reviewed-by: Jan Friesse Reviewed-by: Steven Dake corosync.conf.example: change bindnetaddr Change the example configuration file so "bindnetaddr" has a value that more obviously looks like a network address. So as not to have people think they need to set an existing IP address here (and hence, have non-identical corosync.conf files between nodes). Reviewed-by: Dan Frincu Reviewed-by: Jan Friesse Reviewed-by: Steven Dake 2011-07-26 Jan Friesse main: let poll really stop before totempg_finalize Reviewed-by: Steven Dake Revert "totemsrp: Remove recv_flush code" This reverts commit 1a7b7a39f445be63c697170c1680eeca9834de39. Reversion is needed to remove overflow of receive buffers and dropping messages. 2011-07-24 MORITA Kazutaka totemsrp: fix buffer overflows for large clusters (> 100 nodes) Reviewed-by: Steven Dake 2011-07-21 Jan Friesse specfile: Install corosync-signals.conf for dbus Reviewed-by: Steven Dake specfile: use _datadir as var expansion not exec Reviewed-by: Steven Dake specfile: Correct URL and source0 Reviewed-by: Steven Dake 2011-07-19 Tim Beale Add some more stats for debugging + overload - number of times client is told to try again + invalid_request - message contained invalid paramter, e.g. invalid size + msg_queue_avail - messages currently available at the Totem layer + msg-queue_reserved - messages currently reserved at the Totem layer Reviewed-by: Steven Dake 2011-07-18 Jan Friesse rrp: Handle rollower in passive rrp properly Reviewed-by: Steven Dake rrp: handle rollover in active rrp properly Reviewed-by: Steven Dake totemconfig: Change default FAIL_TO_RECV_CONST Previous default (50) was too low for most modern switch hardware. This may trigger abort because the aru doesn't increase for 50 token rotations combined with a defect in how failed to recv conditions are handled. By increasing this tunable, the condition should no longer trigger the errant code. Reviewed-by: Steven Dake 2011-07-15 Steven Dake Correct missing poll funtions from service handler struct needed for confdb APIs Reviewed-by: Jan Friesse Fix problem where corosync will segfault if there are gaps in recovery queue Fixes a problem where there are gaps in the recovery queue. Example my_aru = 5, but there are messages at 7,8. 8 = my_high_seq_received which results in data slots taken up in new message queue. What should really happen is these last messages should be delivered after a transitional configuration to maintain SAFE agreement. We don't have support for SAFE atm, so it is probably safe just to throw these messages away. Without this change, the new message queue on a new configuraton change is out of sync. Tested-by: Tim Beale Reviewed-by: Jan Friesse 2011-07-08 Jan Friesse totemiba: free send_buf on ibv_reg_mr failure Reviewed-by: Steven Dake 2011-07-06 Florian Haas build: disable RDMA support in RPMs by default Rather than curiously disable RDMA support by default in configure and enable it by default in RPM builds, streamline the default configuration to always turn RDMA support off. It can be enabled in RPM builds with "--with rdma". Reviewed-by: Steven Dake build: set RDMA related _LIBS and _CFLAGS only if building with RDMA support Having to force {ibverbs,rdmacm}_{LIBS,CFLAGS} looks positively odd; so this may warrant further review. However, they are definitely not needed if building without RDMA support. Reviewed-by: Steven Dake build: make RDMA support an RPM build conditional Enable RDMA in RPM builds by default to maintain the previous behavior (which always included --enable-rdma in the %configure invocation). Reviewed-by: Steven Dake build: force LC_ALL=C correctly for dates Failure to force "C" dates will have RPM et al. complain about invalid dates and timestamps. Reviewed-by: Steven Dake 2011-07-06 Tim Beale Fix compile/runtime issues for _POSIX_THREAD_PROCESS_SHARED < 1 For the case where _POSIX_THREAD_PROCESS_SHARED < 1, the code doesn't compile for corosync v1.3.1. And when it does compile, it crashes on our system - our version of uClibc seems to always expect a 4th arg. The man pages suggests the 4th arg is optional, but does say: 'For greater portability it is best to always call semctl() with four arguments', which is what this patch does. Also removed semop as it's an unused variable. Reviewed-by: Steven Dake getpwnam_r()/getgrnam_r() returns ERANGE for some systems On our system the expected buffer length is 256. This means calls to getpwnam_r()/getgrnam_r() return ERANGE error and corosync fails to startup. These 2 functions return ERANGE when insufficient buffer space is supplied. Judging by the man page for getpwnam_r, the correct way to determine the buffersize on any given system is to use sysconf(). Reviewed-by: Steven Dake 2011-07-05 Jiaju Zhang RRP: redundant ring automatic recovery This patch automatically recovers redundant ring failures. Please note that this patch introduced rrp_autorecovery_check_timeout in totem config hence breaks internal ABI. The internal ABI users of totem.h need to rebuild their binaries. Tested-by: Jan Friesse Tested-by: Florian Haas Tested-by: Jiaju Zhang 2011-07-04 Tim Serong Correct mailing list address in corosync_overview manpage Reviewed-by: Steven Dake 2011-06-29 Masatake YAMATO fix typos in cpg_mcast_joined.3 and cpg_zcb_mcast_joined.3 2011-06-29 Steven Dake Add coverity target to corosync makefile.am Allow a make coverity target for those developers with coverity tools available to them. Reviewed-by: Angus Salkeld 2011-06-29 Jan Friesse coroipcc: Test _SC_PAGESIZE result Reviewed-by: Steven Dake Remove spinlocks Spinlocks are now removed, because even spinlock can improve speed is some special cases, in most cases it makes corosync CPU usage much more intensive and less responsive then if only mutexes are used. What we were doing is: pthread_mutex_lock pthread_spin_lock pthread_spin_unlock pthread_mutex_unlock what is not safe. Reviewed-by: Steven Dake votequorum: free newly allocated node if nodeid==0 Reviewed-by: Steven Dake 2011-06-28 Jerome Flesch Fix usage of strerror_r()/perror() Reviewed-by: Angus Salkeld 2011-06-23 Steven Dake sched_params log message incorrect The sched_params parameter was set before being printed. Reviewed-by: 2011-06-22 Jan Friesse configure.ac: Align --enable-* options description Reviewed-by: Steven Dake configure.ac: change edefault to default Reviewed-by: Fabio M. Di Nitto Reviewed-by: Steven Dake CTS: Test for confdb dispatch deadlock Test is disabled by default because it depends on SMP and about 2GB RAM. It's also testing race, so test is unreliable. Reviewed-by: Steven Dake confdb: Resolve dispatch deadlock Following situation could happen: - one thread is waiting for finish write operation (line 853), objdb is locked - flush (done in objdb_notify_dispatch) is called in main thread, but this call will never appear because main thread is waiting for objdb lock. In this situation deadlock appears. Commit solves this by: - setting pipe to non-blocking mode - pipe is used only as trigger for coropoll - dispatch messages are stored in list - main thread is processing messages from list Reviewed-by: Steven Dake objdb: save copy of handles in object_find_create Following situation could happen: - process 1 thru confdb creates find handle - calls find iteration once - different process 2 deletes object pointed by process 1 iterator - process 1 calls iteration again -> object_find_instance->find_child_list is invalid pointer -> segfault Now object_find_create creates array of matching object handlers and object_find_next uses that array together with check for name. This prevents situation where between steps 2 and 3 new object is created with different name but sadly with same handle. Also good to note that this patch is more or less quick hack rather then proper solution. Real proper solution is to not use pointers and rather use handles everywhere. This is big TODO. Reviewed-by: Steven Dake 2011-06-17 Jiaju Zhang RRP: Fix ring initialization issue for UDPU mode Redundant ring has some problem in the UDP unicast mode. The problem is the second ring has not been successfully initialized, that is, the second time iface_changes happens, the member list for that interface has not been added, which results in that ring cannot transmit normal message. So the second ring cannot take over the work if the first ring is down. This patch fixes this issue. comments from review: More work is needed probably in totemnet where totemnet maintains the the of node list and an iterator for them, and totemudpu_member_add adds state information to a context for the iteration. In any regard, that is somewhat difficult to test, so I'll merge this patch for now - keep in mind interface changes on the bindnetaddr will cause problems with udpu after this patch has been commmitted. Reviewed-by: Steven Dake 2011-06-10 Jan Friesse coroipcc: check recvmsg result in socket_recv According specification recvmsg can return 0, which means that connection is closed. We had this check, but limited only for systems other then Linux. recvmsg can return 0 even on Linux, so check is now applied on all systems. Reviewed-by: Angus Salkeld confdb: Properly check result of object_find_create in confdb_object_iter result of object_find_create is now properly checked. object_find_create can return -1 if object doesn't exists. Without this check, incorrect handle (memory garbage) was directly passed to object_find_next. Reviewed-by: Angus Salkeld crypto: rng_make_prng prevent buf overflow with bits set to 1023, buf of 256 bytes was filled by rng_get_bytes up to 257 bytes. Buf is now 258 bytes so it's no longer problem. Reviewed-by: Steven Dake 2011-06-06 Jan Friesse mainconfig: Check retval of logsys_format_set Reviewed-by: Steven Dake 2011-06-03 Jan Friesse testcpgzc: fgets buffer to really allocated size Reviewed-by: Steven Dake cpg: do_proc_join change list_slice to list_add In this concrete case result is equivalent but makes coverity happy. Reviewed-by: Steven Dake totemudp: memset of proper size In totemudp_mcast_thread_state_constructor memset to sizeof(struct totemudp_mcast_thread_state) instead of size of pointer. Reviewed-by: Steven Dake coroipcs: init buf in coroipcs_handler_dispatch Reviewed-by: Steven Dake coroparse: don't leak dirent Reviewed-by: Steven Dake logsys: _logsys_wthread_create never returns != 0 Reviewed-by: Steven Dake notifyd: Check retval of corosync_cfg_initialize Reviewed-by: Steven Dake totemconfig: discard check of objdb_get_string ret Reviewed-by: Steven Dake coroipcc: proper path size in coroipcc_zcb_alloc memory_map function internally limits maximum path size to PATH_MAX but coroipcc_zcb_alloc passed smaller buffer. Reviewed-by: Steven Dake libquorum: memset/memcpy proper size of callbacks Reviewed-by: Steven Dake 2011-05-30 Jan Friesse iazc: Reduce number of mem alloc and memcpy X86 processors are able to handle unaligned memory access. Improve performance by using that feature on i386 and x86_64 compatible processors, and use old aligning code on different processors. Reviewed-by: Steven Dake 2011-05-27 Jerome Flesch logsys: When corosync is compiled with --enable-small-memory-footprint, also reduce the size of the logsys SHM Reviewed-by: Steven Dake coroipcc_dispatch_get(): Fix --enable-small-memory-footprint support Reviewed-by: Jan Friesse coroipcs_handler_dispatch(): Fix conn_info->service security value: -1 is not a good security value since it's equal to SOCKET_SERVICE_INIT Reviewed-by: Jan Friesse coroipcc: Fix unhandled BSD EOF in coroipcc_dispatch_get() Reviewed-by: Steven Dake Corosync: Fix build when done with --enable-fatal-warnings Reviewed-by: Jan Friesse 2011-05-08 Russell Bryant logsys.c: Use snprintf() instead of sprintf(). Change a couple of string functions to use the the output length limiting counterpart. 2011-05-13 Jan Friesse corosync-objctl: Option to display binary data Reviewed-by: Steven Dake 2011-05-05 Angus Salkeld cpg: fix sync master selection when one node paused. If one node is paused it can miss a config change and thus report a larger old_members than expected. The solution is to use the left_nodes field. Master selection used to be "choose node with": 1) largest previous membership 2) (then as a tie-breaker) node with smallest nodeid New selection: 1) largest (previous #nodes - #nodes know to have left) 2) (then as a tie-breaker) node with smallest nodeid CTS: fix some tests that didn't handle been called more than one CTS: sort the configuration - prevent duplicates in the config file CTS: fix syntax error in log message CTS: bump up log messages of failed RPC CTS: don't force all-once (breaks random tests) autobuild: improve messages CTS: add -l to keygen (normal keygen struggles to run on VMs) CTS: send with correct number of iovecs Else payload won't be sent CTS: timer should not be on the stack 2011-05-05 Jan Friesse totemsrp: Enhance mcast failure detection memb_state_gather_enter increase stats.continuous_gather only if previous state was gather also. This should happen only if multicast is not working properly (local firewall in most cases) and not if many nodes joins at one time. Reviewed-by: Angus Salkeld 2011-04-15 Jan Friesse coroipcs: Deny connect to service without initfn If library connect to service with no init function, coroipcs will try to dereference NULL pointer. Now we correctly return error code CS_ERR_NOT_EXIST. Reviewed-by: Steven Dake 2011-04-15 Tim Serong Add ipc_refcnt to message_handler_req_{exec, lib}_cfg_ringreenable() Without refcounting the conn pointer here, corosync will segfault if one kills a running instance of "corosync-cfgtool -r" (rhbz#695191) Reviewed-by: Steven Dake 2011-04-15 Steven Dake Align ipc on 8 byte boundaries Align all ipc messages on 8 byte boundaries. This alignment will remove bus errors on systems that can't access non-byte aligned data and should improve performance. Reviewed-by: Angus Salkeld Fix problem where unaligned totemip address access would result in bus error on non-unaligned-safe architectures. Reviewed-by: Angus Salkeld 2011-04-15 Greg Walton Clean up ENDIAN ifdef tests Reviewed-by: Steven Dake 2011-04-11 Tim Serong Fix tyop in RRP faulty error messages Reviewed-by: Russell Bryant 2011-04-13 Angus Salkeld IPC: place calls to stats functions outside of mutexes This is to prevent nasty deadlocks between IPC and objdb. Reviewed-by: Steven Dake 2011-04-12 Zane Bitter Provide better checking of the message type A negative value for the message type (on systems where char is signed) would cause a crash. This is highly probable if the cluster is, for example, misconfigured to have encryption enabled on some nodes but not others. Reviewed-by: Steven Dake 2011-04-08 Zane Bitter Fix uninitialised memory errors found by valgrind Reviewed-by: Steven Dake 2011-03-29 Angus Salkeld Fix shutdown when a confdb client is still connected If you are connected to corosync and registered for object notifications then corosync is asked to shutdown the IPC server will get stuck. This is because the pipe is closed and the refcount is increased. This leaves ipcs with a connection that it can't destroy. Solution: 1) if a write to the pipe fails (pipe closed) decrement the refcounter. 2) fix the object_track_stop() - it was not working as the functions did not match up. (this caused the late callbacks). 3) in ipcs call exit_fn() then stats_destroy_connection() so that the service engine can have time to call object_track_stop() before the object gets destroyed. Reviewed-by: Steven Dake STATS: add the service name to the connection name. This helps to quickly identify what service the application is connected to. The object will now look like: runtime.connections.corosync-objctl:CONFDB:19654:13.service_id=11 runtime.connections.corosync-objctl:CONFDB:19654:13.client_pid=19654 etc... This also makes it clearer to receivers of the dbus/snmp events what is going on. Reviewed-by: Steven Dake NOTIFYD: prevent duplicate quorate events. Reviewed-by: Steven Dake NOTIFYD: fix retrieving the application's parent name. Reviewed-by: Steven Dake 2011-03-24 Jan Friesse cfgtool: print list of IP with space between items Reviewed-by: Steven Dake cpgtool: print list of IP with space between items Reviewed-by: Steven Dake cfg_get_node_addrs: Return correct addresses Zero element array behavior is very different from normal array or pointer. This behavior is root of problem in not returning correctly filled array of addresses. This appeared only in rrp mode, where more then one address is returned. All memcpy's are now correctly converted to copy pointer to char. Reviewed-by: Steven Dake 2011-03-24 Steven Dake totemsrp: free messages originated in recovery rather then rely on messages_free Relying on messages_free may seem like it should work, but it leads to a situation where every node has released the messages, yet some nodes think messages are missing. The output then looks like "Retransmit: #" in repitition. This patch frees those messages immediately during the transition to the OPERATIONAL state and sets the internal variables totemsrp depends upon to the proper values. Reviewed-by: Jan Friesse totemsrp: Only restore old ring id information one time The current code stores the current ring information every time a commit token is generated. This causes the old ring id used for comparison purposes to increase if a token is lost in commit or recovery, resulting in failure of totem. This patch changes the behavior to only store the old ring id one time when the commit token is received, and then further commit token ring id saves are not done until OPERATIONAL is reached. Reviewed-by: Jan Friesse totemsrp: Remove recv_flush code The recv_flush code is no longer necessary because of the miss_count_count addition. It can in some cases lead to register corruption because of interactions with -fstack-protector, the recursive nature of how this code works, and interactions with the optimizer in some versions of gcc. Reviewed-by: Jan Friesse 2011-03-23 Angus Salkeld confdb: send notifications from the main thread not IPC thread corosync-notifyd has exposed an issue with confdb notifications. The normal state of affairs is: IPC thread > lock > objdb > lock objdb notification whilst really useful turn things around: objdb > lock > confdb > ipc > lock This reverse ordering of locks causes a horrible dead lock. I see this patch as a work around until corosync-2.0 when most of the threads and locking disappear. This patch adds a pipe to confdb service. When we get a objdb notification a struct gets written to the pipe. The poll loop then runs the dispatch in the main thread. In the dispatch we call the real ipc_dispatch_send(). Reviewed-by: Steven Dake 2011-03-21 Steven Dake Resolve abort during simulatenous stopping of atleast 4 nodes consider 5 nodes. node 3,4 stopped (by random stopping) node 1,2,5 form new configuration and during recovery node 1 and node 2 are stopped (via service service corosync stop). This causes 5 never to finish recovery within the timeout period, triggering a token loss in recovery. Bug #623176 resolved an assert which happens because the full ring id was being restored. The resolution to Bug #623176 was to not restore the full ring id, and instead operate (according to specifications) the new ring id. Unfortunately this exposes a problem whereby the restarting of nodes 1-4 generate the same ring id. This ring id gets to the recovery failed node 5 which is now in gather, and triggers a condition not accounted for in the original totem specification. It appears later work from Dr. Agarwal's PHD dissertation considers this scenario. That solution entails rejecting the regular token in the above condition. Since the ring id is also used to make decisions for commit token acceptance, we must also take care to reject the regular token in all cases after transitioning from OPERATIONAL. Reviewed-by: Steven Dake 2011-03-21 Angus Salkeld notifyd: dispatch only one message at a time. This is avoid getting stuck in the dispatch processing messages when the user is trying to shutdown the service. Reviewed-by: Steven Dake 2011-03-15 Angus Salkeld Fix some "set but not used" warnings [-Wunused-but-set-variable] Reviewed-by: Steven Dake Remove the ttl option from udpu and rely on the kernel ttl setting. Reviewed-by: Fabio M. Di Nitto Fix the ttl defaults and range 1) both IPv4 and IPv6 mcast should default to ttl=1 2) the range should be 0..255 0 is valid meaning localhost only (cluster of one) Reviewed-by: Fabio M. Di Nitto 2011-03-15 Russell Bryant Add Doxyfile to .gitignore Reviewed-by: Angus Salkeld 2011-03-12 Angus Salkeld docs: auto-generate the version Reviewed-by: Steven Dake 2011-03-12 Russell Bryant Convert existing documentation to doxygen format. This patch modifies most of the existing comments in header files to be in a format that doxygen can interpret. This provides another significant improvement to the web/pdf/etc generated documentation without having to add new content. Reviewed-by: Angus Salkeld 2011-03-12 Zane Bitter Allocate packet buffers in the transport drivers This change paves the way for eliminating a copy within the Infiniband driver in the future by transferring responsibility for allocating and freeing message buffers to the transport driver layer. Tested under valgrind on a single-node cluster. Reviewed-by: Steven Dake 2011-03-10 Zane Bitter Fix minor errors in man page documentation for corosync.conf * Correct 'See Also' reference to corosync.conf(5) in corosync(8) man page * Update path to default config (now /etc/corosync/corosync.conf) Reviewed-by: Steven Dake 2011-03-08 Steven Dake Fix abort when token is lost in RECOVERY state A commit token should be rejected when a token is lost in the recovery state. This occurs naturally because the ring id increases by 4 for every new ring. Prior to this patch, if the token was lost, the old ring id information was restored, causing a commit token to be accepted when it should be rejected. This erronously accepted commit token would lead to an assertion which is fixed by this patch. Reviewed-by: Angus Salkeld 2011-03-07 Russell Bryant Add content for the doxygen main page. This creates some content on the main page of the documentation generated by doxygen. The main page includes the license and a link to the project web site. eviewed-by: Steven Dake Resolve a couple of doxygen warnings. This resolves a couple of doxygen warnings. First, the group needed a name. Second, all of the functions in the file were added to the group but doxygen complained about the lack of an end to the grouping. Reviewed-by: Steven Dake Update doxygen configuration file. The included doxygen configuration file was a bit stale. It included some options that were obsolete and caused doxygen to generate some warnings when running it. Most of the changes here were simply done by running "doxygen -u" to automatically update the file. It added its documentation for the options and removed the obsolete options. This also includes one configuration change, which is to set EXTRACT_ALL to yes. This instructs doxygen to generate documentation pages for all files, public functions, and public data structures even if they are not currently documented using doxygen syntax. Doxygen is capable of generating some useful documentation on its own, such as dependency graphs. Reviewed-by: Steven Dake Minor build system updates for doxygen. The configure script has been updated to check for the doxygen and dot applications (from doxygen and graphviz). The results from these checks are now used in the Makefile to ensure that the tools are installed when you run "make doxygen". If they are not, it will generate a helpful error message. Reviewed-by: Steven Dake Ensure that strings are null terminated after strncpy(). From the strcpy(3) man page, the following warning is given: The strncpy() function is similar, except that at most n bytes of src are copied. Warning: If there is no null byte among the first n bytes of src, the string placed in dest will not be null-terminated. The current corosync code base does not take this warning into account when using strncpy, potentially resulting in non-null terminated strings. Reviewed-by: Steven Dake 2011-03-05 Russell Bryant Add -l option to corosync-keygen. This option (-l or --less-secure) causes corosync-keygen to read from /dev/urandom instead of /dev/random to ensure that no input is required from the user. It may be useful when this command is used from a script. Reviewed-by: Steven Dake 2011-02-24 Steven Dake Don't assert when ring id file is less then 8 bytes If the ring id file for the processor is less then 8 bytes, totemsrp would assert. Our speculation is that this condition happens during a fencing operation or local filesystem corruption. With this patch, Corosync will create fresh ring id file data when the incorrect number of bytes are read from the ring id. Amend to use sizeof the strerror string length and PATH_MAX for the path length. Reviewed-by: Angus Salkeld snmp: Allow buildling of corosync on already existing older install of corosync When building corosync against older libraries already installed on the system, the corosync-notifyd application uses the wrong Makefile.am commands. This results in the SNMPLIBS (which includes -L/usr/lib64) coming before the proper LDADD flags. The result is an inability to compile on an already existing installation. Reviewed-by: Angus Salkeld 2011-02-24 Jan Friesse objdb: destroy all handles in _clear_object Patch replaces free for object_instance with handle_destroy to remove leaks in handles (and also memory leak). Reviewed-by: Steven Dake 2011-02-23 Jan Friesse Iterate all items in object_reload_notification Reviewed-by: Steven Dake corosync-fplay: use uint32_t and remove bit-shift The flight recorder records all data in 32 bit words. Use uint32_t type rather then unsigned int. Also remove bit-shift with multiply by sizeof uint32_t. Reviewed-by: Steven Dake corosync-fplay: Use size_t length mod in printf Reviewed-by: Steven Dake 2011-02-22 Jan Friesse corosync-fplay: handle too large rec_size Corrupted files may contain items with rec_size larger then g_record buffer and/or flt_data_size. Also g_record array size is now defined as constant. Reviewed-by: Steven Dake logsys: Properly lock flt data before dump Data needs to be locked, otherwise resulting fdata file may be incorrect. Reviewed-by: Steven Dake logsys: Don't leak fd on successful fdata dump Reviewed-by: Steven Dake 2011-02-21 Russell Bryant Add calls to pthread_attr_destroy(). This patch adds a couple of missing calls to pthread_attr_destroy(). There were a couple of instances where pthread_attr_init() was being used without a cooresponding call to pthread_attr_destroy(). This also localizes the pthread_attr_t to the function where it is needed instead of having it persist (the man page specifically states that destroying the attributes structure has no effect on threads created using the attributes). Reviewed-by: Steven Dake 2011-02-14 Angus Salkeld CTS: wait (consistently) for 15 minutes for events 2011-02-13 Angus Salkeld autobuild: clean the build dir first. This deletes files like .version that cause problems. 2011-02-11 Angus Salkeld CTS: temp remove troublesome tests. Right I know - not so good to comment out tests. BUT they are passing but there is some weirdness in ssh reconnecting to these nodes that causes CTS false negatives. So the nodes are watchdogged (as expected) but when they come back up cts gets stuck in a loop re-trying to ssh into them. It odd as a manual ssh works fine. Basically I think it's more important the we get reliable testing than have these test in there. Reviewed-by: Steven Dake 2011-02-07 Angus Salkeld Make node state a string (not an integer) Ryan noticed this inconsistency, all other status's are string so this should be too. Reviewed-by: Seven Dake Reviewed-by: Ryan O'Hara CONFDB: fix parent_get response id Reviewed-by: Seven Dake 2011-02-04 Angus Salkeld MIB: expand the descriptions of the notifications Reviewed-by: Steven Dake 2011-02-04 Lon Hohberger Match up MIB to notifyd & add SNMP quorum events Reviewed-by: Angus Salkeld Make SNMP MIB match what is being sent over DBUS Reviewed-by: Angus Salkeld 2011-02-04 Angus Salkeld Add dbus and snmp notifier This is to send dbus events on major cluster events: - membership changes - application connect/dissconnet from corosync - quorum changes dbus events can then be converted into snmp traps by foghorn or corosync-notifyd can be run to directly send snmp traps. Reviewed-by: Steven Dake Reviewed-by: Russell Bryant Reviewed-by: Fabio M. Di Nitto CONFDB: add confdb_object_name_get() This is useful when tracking object changes. Reviewed-by: Seven Dake STATS: fix key name length on "join_count" Reviewed-by: Seven Dake STATS: increase the space for application names Reviewed-by: Seven Dake 2011-01-31 Jan Friesse Handle "nocluster" kernel parameter in init script Init script checks kernel parameters and refuses to start corosync if nocluster parameter exist on boot time. The init script will continue to work as expected from console/tty after boot. Reviewed-by: Steven Dake 2011-01-12 Jan Friesse Add objdb firewall_enabled_or_nic_failure New objdb var runtime.totem.pg.mrp.srp.firewall_enabled_or_nic_failure is set to 1 if continuous_gather is larger then MAX_NO_CONT_GATHER. Under normal conditions, value of variable is 0. Reviewed-by: Steven Dake 2011-01-11 Angus Salkeld Add missing entries into .gitignore Reviewed-by: Steven Dake remove unused function declaration Reviewed-by: Steven Dake fix timersub warning on freebsd Make them all protected by #ifndef timersub Reviewed-by: Steven Dake 2011-01-11 Steven Dake Handle delayed multicast packets that occur with switches Some switches delay multicast packets vs the unicast token. This patch works around that problem by providing a new tuneable called miss_count_const. This tuneable works by counting the number of times a message is found missing and once reaching the const value, marks it as missing in the retransmit list. This improves performance and doesn't display warning messages about missed multicast messages when operating in these switching environments. Reviewed-by: Angus Salkeld 2011-01-03 Angus Salkeld CPG: make sure coroipcc_service_disconnect() is always called. This prevents a shared mem leak if corosync dies while clients are connected. Calling cpg_finalize() did not release the shared mem as coroipcc_msg_send_reply_receive() returned an error and thus coroipcc_service_disconnect() did not get called. Reviewed-by: Steven Dake IPC: send failure message to client if memory maps fail Reviewed-by: Steven Dake 2010-12-03 Jan Friesse Display warning when not possible to form cluster This may typically happen if local firewall is enabled. Patch adds new item to statistics called continuous_gather where is number of continuous entered gather state. If this number is bigger then MAX_NO_CONT_GATHER, warning message is displayed. This is also used on exiting, so stop of corosync is now possible even with enabled firewall. Reviewed-by: Steven Dake 2010-12-01 Fabio M. Di Nitto build: fix make srpm from release tarball Reviewed-by: Steven Dake build: fix rpm build to include corosync-blackbox Reviewed-by: Steven Dake 2010-12-01 Steven Dake Revert "Always autogen the tree when building an RPM" This reverts commit d145838a21fb636461a2bceeada34db439f4a9ec. Always autogen the tree when building an RPM Since the source tarball never includes the autogen'ed tree in the new source repo methodology, always autogen the tree. Set the max buffer size for sockets Set the recv buffer to a large size and the send buffer to a large size to allow the kernel to store more messages before dropping messages. Amended to change optlen type to socklen_t Reviewed-by: Fabio M. Di Nitto 2010-11-28 Steven Dake The flushing code was introducing data corruption because of recursion errors that occur as a result of the design of udpu. Totem no longer requires the flushing technique because we don't mark a packet as missing until it has not been seen by a certain number of token rotations per a previous patch. This mechanism was introduced to work around a problem in switches where multicast messages may be delayed by long periods compared to the unicast token. This patch removes the flushing logic from udpu since it is no longer necessary. Reviewed-by: Angus Salkeld 2010-11-24 Angus Salkeld Add totem/interface/ttl config option. This adds a per-interface config option to adjust the TTL. Reviewed-by: Steven Dake 2010-11-19 Fabio M. Di Nitto build: fix makefile to ship corosync.conf.example.udpu Reviewed-by Angus Salkeld 2010-11-18 Steven Dake Merge branch 'topic-udpu' Conflicts: Makefile.am Remove dead soresueaddr code Reviewed-by: Angus Salkeld 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. 2010-11-10 Fabio M. Di Nitto build: fix spec file and srpm/rpm generation Reviewed-by: Steven Dake add release script and git based versioning Reviewed-by: Steven Dake 2010-11-10 Steven Dake Merge branch 'master', remote branch 'origin/master' Add license information to LICENSE file about build process files A few files licensed under GPLv3+ produce text output but are not used as part of the runtime or libraries provided by Corosync. Make that notification in the LICENSE file. Reviewed-by: Fabio Di Nitto 2010-10-22 Angus Salkeld Add -i to cpgverify Reviewed-by: Steven Dake 2010-10-22 Steven Dake New topic descriptions based upon work community wants to do This file describes the topics of interest for development, their start and finish date, their main developer, and a description of the topic. Reviewed-by: Angus Salkeld 2010-10-21 Angus Salkeld Add .gitignore files. Otherwise "git status" is a pain. Reviewed-by: Steven Dake 2010-10-21 Steven Dake Add -n option to corosync-objctl to create a new object/key combo Find an existing parent object and add the last object/key name of the command to the object database. This allows the runtime addition of ip addresses to the list of IPs corosync knows about for the purpose of the UDPU transport mode. Reviewed-by: Angus Salkeld 2010-10-12 Jan Friesse Remove delay in library on corosync shutdown Patch removes 2 seconds delay in library on normal corosync shutdown. Delay is still present on abnormal shutdown. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3059 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-29 Angus Salkeld autobuild: fix the continous build git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3058 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-28 Angus Salkeld Check for a properly configured multicast address. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3057 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-27 Angus Salkeld CTS: add sam/wd integration tests. - fix send_dynamic() exception - fix basic sam integration test - fixup calls to sam tests - fix startup when using testquorum (currently only handles votequorum) - improve SAM test case with better checking. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3056 fd59a12c-fef9-0310-b244-a6a79926bd2f AUG: add support for resources section & quorum/quorate git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3055 fd59a12c-fef9-0310-b244-a6a79926bd2f WD/SAM integration. - timestamps -> uint64_t and in nanosecs - use clock_gettime - common object naming - common state names - timeouts in milliseconds git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3054 fd59a12c-fef9-0310-b244-a6a79926bd2f Add monitoring and watchdog services. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3053 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a Finite State Machine.(fsm.h) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3052 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a Finite State Machine. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3051 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-27 Jan Friesse SAM Confdb integration Patch add support for Confdb integration with SAM. It's now possible to use SAM_RECOVERY_POLICY_CONFDB as flag to previous policies. Also new function sam_mark_failed is added for ability to use RECOVERY policy together with confdb and get expected results (specially with integration with corosync watchdog) Patch also makes SAM thread safe. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3050 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-25 Angus Salkeld configure: cleanup formatting. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3049 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb: fix some ugly indentation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3048 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb: delete trackers when an object is deleted git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3047 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb: object_created_notification() fix the order of the parent and object handles. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3046 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb: fix some strange types (uint8_t* -> void*). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3045 fd59a12c-fef9-0310-b244-a6a79926bd2f add float and double support to corosync-objctl git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3044 fd59a12c-fef9-0310-b244-a6a79926bd2f CPG: remove irratating log "downlist received left_list:" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3043 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-14 Steven Dake Patch from Kacper Kowalik to support honoring user defined LDFLAGS. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3042 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Kacper Kowalik to add support for --enable-user-flags configure option. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3041 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-09-03 Steven Dake change shutdown priority to 80 in generic.in. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3039 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Keisuke Mori to add proper dependeny on syslog to corosync init script. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3038 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-08-31 Steven Dake Fix few xopen tsafe issues. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3037 fd59a12c-fef9-0310-b244-a6a79926bd2f Bump version to 1.2.8. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3034 fd59a12c-fef9-0310-b244-a6a79926bd2f Build properly with different versions of libc by including all posix APIs in header definitions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3030 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-08-25 Angus Salkeld IPC: return CS_ERR_NO_RESOURCES to library when low on fds. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3029 fd59a12c-fef9-0310-b244-a6a79926bd2f POLL: gracefully handle running out of file descriptors. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3028 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-08-24 Steven Dake Remove checking of sub parameters in service.d files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3024 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-08-17 Steven Dake Properly detect shutdown of corosync process git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3022 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-08-03 Steven Dake Remove cancel token retransmit timeout. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3012 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-08-02 Jan Friesse Check that Corosync was not runned by cman Patch fixes init script so it's tested, if corosync was runned by cman or not. If so, it refuses to stop Corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3011 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow running only one instance of Corosync Patch makes Corosync more compliant with common practices for writing daemon. It creates pid file (usually /var/run/corosync.pid) and flocks it. So only one instance of Corosync can be executed now. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3010 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-27 Steven Dake Change trunk version to 1.2.7. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3007 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove consensus check for two node cluster cases which can have smaller consensus values. Document in man page the behavior of consensus. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3005 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-21 Steven Dake Fix merge error with revision 3001. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3002 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix problem where flow control could lock up ipc under very heavy load in very rare circumstances. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3001 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-19 Fabio M. Di Nitto Fix logging_daemon config parser code. Resolves: rhbz#615203 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2997 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-17 Angus Salkeld SYNC: always call sync_aborted() in sync_confchg_fn(). 1) sync_callbacks.sync_abort can be null. 2) sync_processing is set to 0 after syncv1 is done. Then syncv2 processing is down. If we get a config change after syncv1 is down, but before syncv2 is done then it won't get aborted. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2995 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-16 Angus Salkeld CTS: add a test case for Andrew's bug Bug: sometimes shutdown can take a long time if all nodes are shutdown together. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2994 fd59a12c-fef9-0310-b244-a6a79926bd2f SYNCV2: add debug when messages are discarded git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2993 fd59a12c-fef9-0310-b244-a6a79926bd2f SYNC: add some ENTER() trace points. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2992 fd59a12c-fef9-0310-b244-a6a79926bd2f SYNCV2: reset the my_memb_determine_ring_id in sync_v2_memb_list_abort() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2991 fd59a12c-fef9-0310-b244-a6a79926bd2f SYNC: remove unused primary_designated from sync_primary_callback_fn() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2990 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-14 Steven Dake Remove reset of token timeout on retransmitted token reception. The timer should only be reset when a real token is received or membership protocol could run into problems with certain timing parameters. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2988 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-07 Steven Dake Speed up IPC connection process. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2986 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-07-03 Steven Dake Fix fail list fault that occurs in very rare circumstances. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2984 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-30 Steven Dake Bump trunk revision to 1.2.6. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2980 fd59a12c-fef9-0310-b244-a6a79926bd2f Have makefile create /var/log/cluster rather then corosync.spec file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2979 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-30 Andrew Beekhof Safely redirect stderr/in/out to /dev/null to prevent fork() from crashing git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2976 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-29 Steven Dake Patch to fix stack protector sig abort that occurs when ipc buffer is too short. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2974 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-29 Angus Salkeld ipc: Fix error handling of mmap util functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2972 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-29 Steven Dake Have corosync spec file own /var/log/cluster/corosync.log have example use /var/log/cluster/cluster.log as default log file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2970 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix problem where flight data leaks files in /dev/shm when corosync is restarted continuously via init scripts. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2964 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-28 Jan Friesse Fix OBJDB locking Patch fixes following situation: 1. objdb receives reload notification and ends in function object_reload_config. This will call objdb_wrlock. I will call this thread #1 2. Another thread will decide to update corosync statistics and calls object_key_increment. This calls objdb_rdlock. This thread is #2. But because condition (lock_thread != pthread_self()) is satisfied, it will also calls pthread_rwlock_rdlock. This will blocks, because thread #1 holds the lock. 3. object_reload_config will call reload functions (as real example xml2objdb). xml2objdb needs to calls object_create. This calls objdb_rdlock, but will hang on pthread_mutex_lock(&meta_lock), because this lock is held by thread #2. -> deadlock It is handled by using recursive mutex. Also every function is now really locked. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2963 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-23 Jan Friesse Remove pathconf which may fall Corosync has problem with readdir_r if pathconf function fails. Main problem is hidden in calling pathconf (internally calls statfs) which may fail. After this fail, newly allocated memory for readdir_r was smaller than expected and memory was overwritten by readdir_r. Patch removes calling of pathconf and rather use NAME_MAX constant which is always large enough for all file systems. Also return value of malloc SHOULD be checked. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2962 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-21 Angus Salkeld Add make/spec file changes for corosync & blackbox man pages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2961 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a simple man page for corosync git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2960 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a man page for corosync-blackbox git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2959 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-21 Steven Dake Change version to 1.2.5 in trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2956 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-19 Steven Dake Stop the totem stats updater timer during shutdown to prevent references to invalid memory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2953 fd59a12c-fef9-0310-b244-a6a79926bd2f Unlock global serializer lock during shutdown. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2949 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-18 Andrew Beekhof Prevent segfault in fork() Not closing stdin/stderr/stdout leads to a segfault in fresetlockfiles() See https://lists.linux-foundation.org/pipermail/openais/2010-June/014854.html for further info. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2948 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-15 Steven Dake Patch from Honza: Send CPG_REASON_PROCDOWN on process left Our manual pages are clear: CPG_REASON_PROCDOWN - the process left a group without calling cpg_leave(). Currently, we are sending CPG_REASON_LEAVE in such situation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2946 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-15 Christine Caulfield object_key_iter() calls object_key_iter_typed() and then always tries to dereference the string it returns, even if the call fails. The attached patch fixes this. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2944 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-10 Steven Dake changes to corosync.spec.in template: Move configure to %build section don't set corosync's init levels during an upgrade of the corosync package Patch from Vadym Chepkov git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2943 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-09 Steven Dake update version to 1.2.4. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2939 fd59a12c-fef9-0310-b244-a6a79926bd2f Update logsys to use proper ring buffer on file backed map git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2922 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-07 Angus Salkeld Disable test while I fix it. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2921 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-04 Steven Dake sem_wait can be interrupted by signal. Handle interruption properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2920 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-03 Steven Dake Fix fail to receive logic which occurs very rarely on high loss networks with software based multicast. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2919 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-02 Angus Salkeld temporarily remove a cts test case. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2918 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-06-01 Steven Dake Totem spec is clear: reject retransmitted tokens if token.aru = aru in token on last rotation ... do some logic Here is how the current code works: last_aru = instance->my_last_aru; instance->my_last_aru = token->aru; reject retransmitted tokens if token.aru = aru in token on last rotation ... do some logic The issue is last_aru will be set to token->aru when a token retransmission occurs before a new token arrives. This results in the "do some logic" part happening more often then it should. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2917 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix problem where callbacks are not delivered to evs service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2916 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-28 Steven Dake The static function 'decode_mode()' is used by the static function 'dump_subsys_config()' which is is turn used by the static function 'dump_full_config()' which is never used. Are these functions used by someone using some magic? I did not find any reference and even the flag LOGSYS_DEBUG, which prevents them from compiling, does not exist at some other point. If these functions are really not used, please remove them (because at least one of them has a buffer overflow). Patch against 1.2.3 is attached. If there is a need for these functions, I'll send a patch to fix the 'decode_mode()' function. Kind regards Andreas Florath git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2915 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-28 Angus Salkeld Add a man page for corosync-quorumtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2914 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a man page for corosync-pload git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2913 fd59a12c-fef9-0310-b244-a6a79926bd2f Add man page for corosync-fplay. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2912 fd59a12c-fef9-0310-b244-a6a79926bd2f Add man page for corosync-cpgtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2911 fd59a12c-fef9-0310-b244-a6a79926bd2f Add man page for corosync-cfgtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2910 fd59a12c-fef9-0310-b244-a6a79926bd2f Really corosync-keygen.8 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2909 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a man page for corosync-keygen and update corosync_overview git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2908 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-27 Jan Friesse coroipcc - don't loop forever on EINTR This patch unify behaviour of SYS V semaphores and POSIX semaphores. POSIX semaphores never return CS_ERR_TRY_AGAIN on EINTR and keeps waiting. This was fixed for SYS V semaphores in rev. 2303. Another change is to remove very small probability of hung forever in coroipcc_dispatch_put. Last change is removal of duplicate code by adding ipc_sem_wait function. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2907 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-26 Steven Dake Fix problem where memcpy operation occurs incorrectly to copy schedule parameter data resulting in priority inversion deadlocks on single cpu systems. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2906 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-21 Angus Salkeld makefile: add -lquorum -lcoroipcc to sam test programs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2905 fd59a12c-fef9-0310-b244-a6a79926bd2f Autobuild: add -v option to mock git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2904 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-19 Steven Dake Bump revision to 1.2.3. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2901 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix leak in error path in nss encryption. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2857 fd59a12c-fef9-0310-b244-a6a79926bd2f This patch updates the wording for the bindnetaddr option in corosync.conf to explicitly state that you need to use the network address, as opposed to "should always end in zero", which is only correct for class C networks. Regards, Tim -- Tim Serong git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2856 fd59a12c-fef9-0310-b244-a6a79926bd2f Make cpg_membership_get() functional. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2855 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-19 Angus Salkeld cov 10412: fix mem leak in encrypt_and_sign_nss() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2854 fd59a12c-fef9-0310-b244-a6a79926bd2f add __attribute__((noreturn)) to functions that always exit. we had some __attribute__((__noreturn__)) and some __attribute__((noreturn)) I made them all: __attribute__((noreturn)) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2853 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-18 Steven Dake Fix free of ring status information when memory allocation fails during allocation of the ring status information. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2852 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix signed comparison with unsigned value in mainconfig.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2851 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-18 Angus Salkeld cov 10388: fix check for no mcast address git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2850 fd59a12c-fef9-0310-b244-a6a79926bd2f cov (many): make sure all _set() functions return a signed int in the body it can return -1, and callers check for -1. but the return type is unsigned int? git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2849 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10391: allow assert to check for a negative number git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2848 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10404: don't assign loc pointer when not used. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2847 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-18 Steven Dake Fix problem where logsys messages are not flushed at exit before worker thread is created. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2846 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-18 Angus Salkeld cov 10405: remove unused pointer from totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2845 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-17 Angus Salkeld cov 10373: check poll return value git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2844 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix compile error in services/cfg.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2843 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-16 Angus Salkeld cov 10392: remove pointless assert backlog is unsigned git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2842 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10413: crypto init a variable. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2841 fd59a12c-fef9-0310-b244-a6a79926bd2f cov (10387, 10397): cleanup memory mapping functions git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2840 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10374: check sam_hc_send() before counter++ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2839 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10399: set the msg_flags to 0 in coroipcs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2838 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10390: remove pointless assert. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2837 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10389: remove unneccessary check. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2836 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10371: check return of lcr_ifact_reference git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2835 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10401: error_string never set git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2834 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10411: fix leak in totemudp.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2833 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10400: unit'ed variable. not important, easy to fix. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2832 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-14 Steven Dake Merge patch from Sato Yuki which fixes corosync-cfgtool -r git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2831 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-14 Angus Salkeld cov 10396: prevent a leak under error conditions (lib/sam.c) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2830 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10378: fix syntax error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2829 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10385: assigning signed int to unsigned variable git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2828 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10384: better error handling from accept() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2827 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10383: impove the error handling after socket() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2826 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10382: improve error handling around open() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2825 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10381: check result of open() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2824 fd59a12c-fef9-0310-b244-a6a79926bd2f cov 10379 &10380: check result of open before calling ftruncate. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2823 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-13 Jan Friesse SAM integration of quorum Patch adds integration of SAM and quorum, so it's now possible to use SAM_RECOVERY_POLICY_QUORUM_QUIT or SAM_RECOVERY_POLICY_QUORUM_RESTART recovery policy. With these policies, sam_start will block until corosync is quorate. If quorum is lost during health checking, recovery action is taken. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2822 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow call sam_warn_signal_set after sam_register Patch fixes situation, when user want to change warn signal after call of sam_register function. This was not possible, because parent process never got new value from child. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2821 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-13 Steven Dake Bump version to 1.2.2. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2818 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys rework to deal with memory corruption around debug:on configurations. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2816 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-13 Angus Salkeld autobuild: clean up the example config before installing git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2815 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-12 Angus Salkeld cpg: fix unitialized variable git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2814 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: fix test_agent start/stop errors git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2813 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: fix test service configuration git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2812 fd59a12c-fef9-0310-b244-a6a79926bd2f configure: minor change to get tab completion to work git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2811 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-05 Angus Salkeld autobuild: hard code mock path to /usr/bin/mock git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2808 fd59a12c-fef9-0310-b244-a6a79926bd2f set execute bit on autobuild.sh git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2807 fd59a12c-fef9-0310-b244-a6a79926bd2f spec: fix some errors from rpmbuild & rpmlint git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2806 fd59a12c-fef9-0310-b244-a6a79926bd2f testcpg: fix a format string compile warning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2805 fd59a12c-fef9-0310-b244-a6a79926bd2f log: remove "Member left/join" log messages No longer needed by CTS and likely to be very noisy with large node numbers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2804 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-04 Angus Salkeld cpg: fix sync'ing the downlist. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2801 fd59a12c-fef9-0310-b244-a6a79926bd2f check and discard unknown messages git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2800 fd59a12c-fef9-0310-b244-a6a79926bd2f diags: add a mechanism to trigger the writing the flight data trigger the dumping of flight data using: corosync-objctl -w runtime.blackbox.dump_flight_data=anything trigger the dumping of state using: corosync-objctl -w runtime.blackbox.dump_state=anything then read the flight data as usual: corosync-fplay This patch includes a wrapper script called: corosync-blackbox git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2799 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix "mock --with testagents" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2798 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-03 Angus Salkeld CTS: reproduce David's bug This patch creates a test case the runs the following steps: 1: start all nodes 2: isolate node n1 3: Kill corosync on n1 4: unisolate node n1 5: start corosync on n1 6: start cpg on all nodes 7: isolate node n1 8: Kill corosync on n1 9: unisolate node n1 10: start corosync on n1 11: Waiting for config change on n2 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2797 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-05-02 Angus Salkeld Add autobuild.sh : for buildbot to run CTS git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2796 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-30 Steven Dake The retransmit token storage area is an improper type of an array of pointers rather then a pointer to a buffer. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2795 fd59a12c-fef9-0310-b244-a6a79926bd2f When a message is retransmitted, a memmove operation is done to remove the newly retransmitted entry from the list. It is possible this memmove operation can buffer overflow because it has an invalid length calculation fixed by this revision. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2794 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow maximum entries in the retransmit queue when recovery takes place. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2793 fd59a12c-fef9-0310-b244-a6a79926bd2f Save the ring id and restore it properly when the recovery operation fails as a result of a new gather or token loss. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2792 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-29 Christine Caulfield Fix name of fail_recv_const in corosync.conf man page git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2791 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-28 Jan Friesse Fix parallel build of libs in lib directory git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2790 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-26 Jan Friesse Handle POLLNVAL in coroipcc Old code in coroipcc doesn't handle POLLNVAL. It can happen, that some applications (for example fenced) will stuck forever. Also poll result is now handled more correctly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2789 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-23 Jan Friesse Handle some valgrind errors - Memset for res_setup variable in coroipcs:req_setup_send - Two memset in logsys for buffers - Problem in corosync_totem_stats_updater where avg_token_holdtime has size of avg_backlog_calc - corosync_totem_stats_init where avg_backlog_calc is 32 bits (not 64) - objdb problem if new_valie_len != object->value_len. In such case newly allocated memory is not initialized and in some situations, value_len is not updated. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2787 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-23 Angus Salkeld select a new sync member if the node with the lowest nodeid has left. Problem: Under certain circumstances cpg does not send group leave messages. With a big token timeout (tested with token == 5min). 1 start all nodes 2 start ./test/testcpg on all nodes 2 go to the node with the lowest nodeid 3 ifconfig down && killall -9 corosync && /etc/init.d/corosync restart && ./testcpg 4 the other nodes will not get the cpg leave event 5 testcpg reports an extra cpg group (basically one was not removed) Solution: If a member gets removed using the new trans_list and that member is the node used for syncing (lowest nodeid) then the next lowest node needs to be chosen for syncing. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2785 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: increase the token timeout on some tests git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2784 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add CpgCfgChgOnNodeRestart git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2783 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-20 Jan Friesse CPG model_initialize and ringid + members callback Patch adds new function to initialize cpg, cpg_model_initialize. Model is set of callbacks. With this function, future addions of models should be possible without changing the ABI. Patch also contains callback in CPG_MODEL_V1 for notification about Totem membership changes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2770 fd59a12c-fef9-0310-b244-a6a79926bd2f Support for store user data in SAM Ability to in-memory storing of user data which survives between instances of process. Also ability needed ability for bi-directional communication between child and parent is added. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2769 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix confdb linking (add -ldl) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2768 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-20 Christine Caulfield Fix a crash in YKD git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2767 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-16 Angus Salkeld CTS: update the CTS README git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2766 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: make record events blocking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2765 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add context get/set tests. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2764 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: fix the test_agent start/stop/status mechanism. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2763 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-15 Angus Salkeld test for augtool before using it in "make check" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2762 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-14 Angus Salkeld CTS: add quorum notifications to test agents. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2761 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add simul start/stop to GenTestClasses git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2760 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: make the extra config tests named git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2759 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add --rrp-bindaddr to enable rrp tests. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2758 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-12 Angus Salkeld When sync is aborted clear the "my_ring_id" variable. This patch fixes crashes found by repeated pacemaker CTS SimluStart tests. When you bring up the nodes together it can cause a lot of configuration changes and sync gets started and aborted lots of times. When abort is called the ring_id is not changed which means that any sync packet that arrive from that point on will be accepted as valid. I have seen old barrier messages causing the processing index to increment later causing an array out of bounds. This patch memsets the ring_id to 0, thus causing the ring_id in the packet and my_ring_id not to match. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2757 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-07 Angus Salkeld add comment to the man page explaining the use of port and port -1. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2756 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-02 Steven Dake Allow modifying POLLIN/POLLOUT state in another thread while the main thread is blocked in poll system call. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2755 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove problem where NULL dispatch handler functions would result in lockup of the dispatch if they were sent by a service engine. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2754 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-04-01 Jan Friesse Support for user configurable warning signal Allow developer configure a signal to be send as a warning signal before real SIGKILL. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2753 fd59a12c-fef9-0310-b244-a6a79926bd2f Support for specific libraries version Patch adds support for changing version number of library simply by edit lib$(LIB).verso file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2752 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-30 Angus Salkeld Add missing cts files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2751 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-30 Steven Dake Fix barrier operation with syncv2 and compat:none or openais service engines. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2750 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-30 Angus Salkeld augeas: add uidgid and quorum options to lense git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2749 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-30 Jérôme Flesch Coroipcc: Make sure that coroipcc_service_connect() always return a valid cs_error_t git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2748 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-30 Angus Salkeld CTS: add votequorum test agent git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2747 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb: fix key change notifications 1) don't send notifications if the key is the same. 2) Add key value change notifications to key_inc & key_dec git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2746 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add some more confdb tests git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2745 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add sam tests git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2744 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add cpg_zcb tests git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2743 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add a test for sync events git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2742 fd59a12c-fef9-0310-b244-a6a79926bd2f fix make distcheck (add corosync.aug to EXTRA_DIST git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2741 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-26 Jérôme Flesch Totemudp: Add debug logs when a call to sendmsg() fails git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2740 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-25 Angus Salkeld Make corosync exit with 0 normally and +1.. on error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2739 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-24 Angus Salkeld fix 'make distcheck' git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2738 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: get some more code to execute. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2737 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: Add a condb test agent and python tests. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2736 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: Add a confdb test agent and python tests. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2735 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: fix issues with new pacemaker cts git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2734 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: restruct tests so we can run them with multiple configs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2733 fd59a12c-fef9-0310-b244-a6a79926bd2f Add quorum option to augeas lense git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2732 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix unloading of evs (service id == 0) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2731 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: add service load/unload test git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2730 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix code coverage with lcrso's git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2729 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: Add tests with more totem options. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2728 fd59a12c-fef9-0310-b244-a6a79926bd2f Add crypto options to augeas lense & add make check git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2727 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: Add msg sha1 checking of the message body (like cpgverify) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2726 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-23 Steven Dake Bump version to 1.2.1. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2723 fd59a12c-fef9-0310-b244-a6a79926bd2f Tone down noisy logging from ipcs system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2721 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-22 Steven Dake Fix lockup that occurs rarely with pthread_join() is called in atexit() handler. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2719 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-20 Steven Dake Fix problem where retransmissions don't occur resulting in failure to receive condition. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2685 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-16 Christine Caulfield Fix a couple of small bugs that happen when the configuration is reloaded. 1. the reload callback was not sent to the library, 2. totem exponentially added new callbacks because the old ones were not removed properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2684 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a reload callback to libconfdb. This also increments the libconfdb version to 4.1.0 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2683 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-11 Angus Salkeld Remove warnings. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2682 fd59a12c-fef9-0310-b244-a6a79926bd2f add optional --with testagents to the spec file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2681 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: fix buffer overrun in test agent. Also to make debugging easier: 1) don't stop abrt 2) fix debug message 3) catch a failed mesage to the TA and fail the test. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2680 fd59a12c-fef9-0310-b244-a6a79926bd2f CTS: fix deletion of the tmp root for augeas git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2679 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-09 Angus Salkeld add a list of member nodes into the objdb runtime tree. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2678 fd59a12c-fef9-0310-b244-a6a79926bd2f tsafe: change fork() override to pthread_atfork() callbacks. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2677 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-04 Jan Friesse Support for lib_cpg_finalize Add support for MESSAGE_REQ_CPG_FINALIZE message. This will allow us remove cpg_pd from list of active connections, and remove problem, when cpg_finalize + cpg_initialize + cpg_join can result in CPG_ERR_EXIST error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2676 fd59a12c-fef9-0310-b244-a6a79926bd2f Cpg join with undelivered leave message Patch handles situation, when on one node, one process: - join cpg - do same actions - leave cpg - join cpg again Following sequence can (racy) end with broken process_info list. To solve this problem, one more check is done in message_handler_req_lib_cpg_join so if process_info with same pid and group as new join request exists, CPG_ERR_TRY_AGAIN is returned. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2675 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-03 Angus Salkeld Fix some "make lint" problems git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2674 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-03 Steven Dake Specify the ringnumber parameter must start at 0 in the corosync.conf man page. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2673 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix error handling to avoid segfaults/leaks on error in coroipcc_service_connect. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2672 fd59a12c-fef9-0310-b244-a6a79926bd2f Turn executable bit on for py/sh scripts in cts. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2671 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-03-03 Angus Salkeld Add tsafe.h to noinst_HEADERS to fix "make distcheck" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2670 fd59a12c-fef9-0310-b244-a6a79926bd2f Add tsafe (thread safe) file to catch unsafe function calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2669 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a test harness to corosync that uses CTS from pacemaker. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2668 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-26 Christine Caulfield Reduce the number of times the quorum message is displayed. Patch from David Teigland git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2667 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-25 Angus Salkeld convert giduid calls to reentrant versions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2666 fd59a12c-fef9-0310-b244-a6a79926bd2f convert strerror() into strerror_r() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2665 fd59a12c-fef9-0310-b244-a6a79926bd2f convert readdir into readdir_r git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2664 fd59a12c-fef9-0310-b244-a6a79926bd2f convert strtok to strtok_r git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2663 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-18 Angus Salkeld Add a debug message on node join/leave. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2662 fd59a12c-fef9-0310-b244-a6a79926bd2f Correct testcpg's groupname.length git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2661 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-18 Steven Dake Patch to set unset value in token hold cancel structure as to not crash wireshark. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2660 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-17 Angus Salkeld add a note about rotating logfile created with to_logfile git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2659 fd59a12c-fef9-0310-b244-a6a79926bd2f Add augeas lense for corosync.conf git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2658 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-16 Jan Friesse Fix corosync shutdown process This patch change corosync shutdown process, so now: - exit function of service engine is called - all IPC connections are closed and removed from poll - service engine is unlocked git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2657 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-15 Steven Dake Use nodeid instead of localhost ip for the case when binding to a loalhost interface. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2656 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-12 Christine Caulfield Remove a double list_del() when a tracking CFG client shuts down without calling cfg_track_stop. This caused corosync to crash. The extra list_empty() check is redundant too because it also happens in remove_ci_from_shutdown() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2655 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-04 Steven Dake Merge of Dejan's on=yes patch for the config parser options to ease migration. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2654 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-04 Angus Salkeld pass transitional members into the sync_init() callbacks. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2653 fd59a12c-fef9-0310-b244-a6a79926bd2f move sync_v2_init() into main_service_ready git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2652 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-02-02 Angus Salkeld totemsrp: fix transitional configuration changes with long token timeouts git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2651 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-31 Steven Dake Fix coroipcs message corruption that occurs when a message fills the remainder of the dispatch buffer with a full message. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2650 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-22 Jan Friesse Add schedwrk_create_nolock function This patch adds schedwrk_create_nolock, which will not call serialize_lock before execution of callback. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2649 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-21 Jan Friesse Pass correct poll handle to poll_stop on exit git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2648 fd59a12c-fef9-0310-b244-a6a79926bd2f poll_dispatch_delete - ability to return 0 Patch fixes poll_dispatch_delete, so it is able to return 0 (success), when requested FD was found. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2647 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-20 Jan Friesse Fix setting invalid mode in log destination This fixes problem in revision 2642, when only last line of log destination setting is really applied. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2646 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-14 Jan Friesse Fix malloc deadlock in signal handler This patch solves situations, where malloc is called inside signal handler. It creates thread, which waits for semaphore unlock and then starts shutdown sequence. RHBZ#547511 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2644 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix freeze of IPC library connection on sem_wait This patch solves library waiting on sem_wait. It doesn't solve all other problems, which can make corosync not to exit (malloc race, global lock deadlock, ...) RHBZ#547511 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2643 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-13 Jan Friesse Fix coroparse to allow white chars before comment - allows white characters before # - new function to parse log destinations (remove code duplicity) - clarify man page git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2642 fd59a12c-fef9-0310-b244-a6a79926bd2f 2010-01-11 Jan Friesse Generate nodeid value when unset on BSD Generated nodeid is generated in same way as on Linux is. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2641 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-15 Steven Dake Remove invalid assertion in totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2640 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-15 Andrew Beekhof Correctly determine current state in init script If two stop actions are ever performed simultaneously, then neither will terminate. With the default implementaiton of __pids_pidof, the status() function from /etc/init.d/functions incorrectly thinks the other stop action is a real corosync process. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2639 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-08 Angus Salkeld Allow empty (default) consensus timeout. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2638 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-08 Steven Dake Bump verion to 1.2.0. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2581 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove string overwrite if many recovery messages are originated. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2580 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove compiler warning in vsf_quorum.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2579 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove compiler warning in totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2578 fd59a12c-fef9-0310-b244-a6a79926bd2f Update to AUTHORS file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2577 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-08 Fabio M. Di Nitto Update spec file to deal with new libsam git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2576 fd59a12c-fef9-0310-b244-a6a79926bd2f Generate .pc file for new libsam git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2575 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-07 Steven Dake SAM man pages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2574 fd59a12c-fef9-0310-b244-a6a79926bd2f Set boolean indicating the retrans flag was set to 1 to 0 when setting retrans flag in token to zero. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2573 fd59a12c-fef9-0310-b244-a6a79926bd2f Make assertions for range checking of message delivery check with the define instead of magic numbers that are not valid if the define changes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2572 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-07 Jan Friesse Remove potentially thread unsafe call of strftime git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2571 fd59a12c-fef9-0310-b244-a6a79926bd2f SAM implementation merge The SAM library provide a tool to check the health of an application. The main purpose of SAM is to restart a local process when it fails to respond to a healthcheck request in a configured time interval. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2570 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-07 Steven Dake Prevent lockup in recovery state in totem after 206 messages are originated. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2569 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix recovery messages to be proper length to remove segfault that occurs during recovery. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2568 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-06 Steven Dake Force consensus timer to be at minimum 1.2 * token to prevent one group of nodes from executing a token timeout in the COMMIT state while another node executes a consensus timeout, showing to applications as a temporary network partition. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2567 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-04 Christine Caulfield Make man page match reality of totem configuration values. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2566 fd59a12c-fef9-0310-b244-a6a79926bd2f This puts multiple nodeids on each [QUORUM] Members line instead of putting each nodeid on a separate line. With more than a few nodes the excessive lines become a real nuisance, and anyone up around 32 nodes may literally be scrolling through hundreds of those lines. from David teigland git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2565 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-03 Angus Salkeld stats: don't calloc the totemsrp stats struct. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2564 fd59a12c-fef9-0310-b244-a6a79926bd2f Correct some ugly indentation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2563 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb: fix memory leaks when objects are destroyed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2562 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-02 Angus Salkeld make sure key_names past from confdb are null terminated. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2561 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-02 Jan Friesse bsd: Fix mlockall on FreeBSD version >= 8.0 FreeBSD version 8.0 and greater supports mlockall syscall correctly. So configure.ac is changed to detect FreeBSD version and main.c is changed to support it. Resolves: rhbz#513687 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2560 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-02 Fabio M. Di Nitto spec file cleanup git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2559 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-12-01 Fabio M. Di Nitto Fix threads vs fork init order git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2558 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-30 Fabio M. Di Nitto Fix stop regression git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2557 fd59a12c-fef9-0310-b244-a6a79926bd2f Expose service.d config directory git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2556 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-30 Steven Dake Start pause timer at initialization so first gather doesn't result in pause timeout operations. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2555 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-30 Fabio M. Di Nitto Clean up init scripts and make a single generic one git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2554 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-29 Angus Salkeld 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 coroipcs: Add a queue_size stats counter to each ipc connection. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2552 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcs: add logging for flow control state changes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2551 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-27 Steven Dake Patch to use proper IFA on Linux platforms to match interface addresses when netmask is not 255.255.255.0. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2550 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-23 Angus Salkeld COVERITY 4: remove dead code in XYZ_dispatch(). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2549 fd59a12c-fef9-0310-b244-a6a79926bd2f COVERITY 17: fix exit handling in show_votes(). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2548 fd59a12c-fef9-0310-b244-a6a79926bd2f COVERITY 12: prevent overrun of logsys output buffers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2547 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-22 Angus Salkeld COVERITY 13: prevent buffer overrun in quorum-tool. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2546 fd59a12c-fef9-0310-b244-a6a79926bd2f COVERITY 11: remove dead code from cpg_iteration_next(). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2545 fd59a12c-fef9-0310-b244-a6a79926bd2f COVERITY 14: free zcb_mapped if memory_map() fails. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2544 fd59a12c-fef9-0310-b244-a6a79926bd2f COVERITY 18: prevent deref after free. Event deref_after_free: Dereferencing freed pointer "pi". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2543 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-11-05 Andrew Beekhof Fix compilation on RHEL-4: If _GNU_SOURCE isn't defined, then neither is pthread_spinlock_t and compilation fails git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2542 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-28 Andrew Beekhof Prevent daemon from suppressing corefile generation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2541 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-23 Steven Dake Bump version to 1.1.2. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2537 fd59a12c-fef9-0310-b244-a6a79926bd2f 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-21 Steven Dake Bump revision to 1.1.1. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2533 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-20 Steven Dake Resolve shutdown problems for pacemaker use case. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2531 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-18 Angus Salkeld Add a log_printf function to coroipcs so we can pass the log level git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2530 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-15 Angus Salkeld Avoid array out of bound error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2529 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-14 Steven Dake Patch from jflesch to fix segfault when using sysv semaphores that the thread state is checked prior to the semaphore operation, not after it has completed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2524 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Angus Salkeld stats: prevent a div by zero if totem_count is zero. patch by Chrissie git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2522 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-13 Angus Salkeld Fix the OSX build (broken by stats patches) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2521 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-13 Andrew Beekhof Add SIGTERM support and have the init script wait for corosync to actually terminate. Bud rh#525552 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2520 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-12 Angus Salkeld Add some missing calls to increment the relevant stats. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2519 fd59a12c-fef9-0310-b244-a6a79926bd2f allow coroipcs to work without calling stats initialization. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2518 fd59a12c-fef9-0310-b244-a6a79926bd2f Add totem stats to objdb. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2517 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove silly warning in corosync-objdb git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2516 fd59a12c-fef9-0310-b244-a6a79926bd2f Add per service-function statistics. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2515 fd59a12c-fef9-0310-b244-a6a79926bd2f Add connection related statistics to the object db. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2514 fd59a12c-fef9-0310-b244-a6a79926bd2f Test the key value size for typed keys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2513 fd59a12c-fef9-0310-b244-a6a79926bd2f teach object_key_increment() key types. This is so we can increment all integer types correctly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2512 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-10 Angus Salkeld Add value types to objdb keys. This allows you to create a key with a know type. And then get the type with the key value. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2511 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-10-06 Christine Caulfield This patche fixes a couple of small problems with votequorum: - if a single node is booted with votequorum loaded then corosync-quorumtool shows zero nodes and no votes. - votequorum doesn't always tell the main quorum module when a new node has joined the cluster (principally itself. this bug is actually tied into the above) I've also added quorum to the default list of services. As quorum has been decoupled from sync it will not interfere with normal operations as it used to do and it makes more sense to have it there than not. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2510 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-25 Fabio M. Di Nitto Update spec file to enable IBA support and sync with 1.1.0 release git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2507 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-25 Steven Dake Change version to 1.1.0 in trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2504 fd59a12c-fef9-0310-b244-a6a79926bd2f Totem IBA implementation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2481 fd59a12c-fef9-0310-b244-a6a79926bd2f make main_service_ready function static. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2480 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove unused variable in stress_cpgfdget.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2479 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove pointless warning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2478 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-25 Angus Salkeld turn off _POSIX_THREAD_PROCESS_SHARED for uclibc git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2477 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-22 Steven Dake Correct pload printing operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2473 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-21 Steven Dake Fix merge error in previous commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2472 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Jerome to fix segfault in dispatch functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2468 fd59a12c-fef9-0310-b244-a6a79926bd2f 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-20 Steven Dake Remove warning in logsys compile related to const correctness. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2463 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warning in coroipcc. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2462 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix sigpipe handling to ignore sigpipes on systems which support them. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2419 fd59a12c-fef9-0310-b244-a6a79926bd2f Make delete operation work properly in coropoll. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2418 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-16 Andrew Beekhof Darwin libraries need -install_name otherwise they're not usable without DYLD_LIBRARY_PATH (which is highly unrecommended) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2417 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-14 Steven Dake Fix error with revision 2415. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2416 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix dispatch returning TRY_AGAIN when using DISPATCH_ALL parameter because of regression caused by revision 2046:lib/coroipcc.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2415 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-10 Angus Salkeld log the built-in features at startup git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2411 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-09 Angus Salkeld add small-memory-footprint option to configure This adds the following option to configure: --enable-small-memory-footprint When enabled the following defines are set to reduce the overall memory footprint. MESSAGE_SIZE_MAX=1024*64 MESSAGE_QUEUE_MAX=512 PROCESSOR_COUNT_MAX=16 IPC_REQUEST_SIZE=1024*64 IPC_RESPONSE_SIZE=1024*64 IPC_DISPATCH_SIZE=1024*64 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2410 fd59a12c-fef9-0310-b244-a6a79926bd2f don't return the ip address when the mask is not found Currently totemip_copy (boundto,&ipaddr) is called even when the required mask is not found. This patch changes the behavior to only copy the ipaddr when the mask is found. The current behavior makes debugging an incorrect config really confusing. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2409 fd59a12c-fef9-0310-b244-a6a79926bd2f Only insert the filename into the log, not the path. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2408 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-08 Christine Caulfield Really add corosync-quorumtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2407 fd59a12c-fef9-0310-b244-a6a79926bd2f Add corosync-quorumtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2406 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-07 Fabio M. Di Nitto Fix missing symbol error when loading plugins without executive git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2405 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-07 Angus Salkeld Remove a double unlock in logsys. In logsys there are a number of XYZ_unlocked() functions that are called like this: pthread_mutex_lock (&logsys_config_mutex); XYZ_unlocked(); pthread_mutex_unlock (&logsys_config_mutex); The XYZ_unlocked() functions should not do any (un)locking. But _logsys_config_subsys_get_unlocked() unlocks if it finds the subsys. This means that there is 1 lock and 2 unlocks. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2404 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-07 Christine Caulfield Return CS_ERR_NOT_EXIST if a client tries to contact a plugin that isn't loaded. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2403 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-09-07 Fabio M. Di Nitto Fix corosync-tools linking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2402 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-31 Jan Friesse Real add of corosync-cpgtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2401 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial version of corosync-cpgtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2400 fd59a12c-fef9-0310-b244-a6a79926bd2f Implementation of cpg_iteration functions This functions allows iterate available cpg groups and their members. API is modelled like ckpt iteration functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2399 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-28 Steven Dake 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 Christine Caulfield Send CURRENT callbacks to the dispatch FD rather than the callback one. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2397 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix nodelist passed to the quorum subsystem. When a node left, the old nodelist was sent, sigh git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2396 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-28 Steven Dake Fix incorrect assertion with frame sizes of 9000. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2395 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-24 Steven Dake Allow finalize routines to occur inside dispatch routines. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2394 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-20 Jan Friesse Handle NULL callbacks in cpg, evs and confdb lib Attached patches handle NULL callbacks in *_initialize and *_dispatch. Handling is same as in quorum service. Now, when callback is NULL -> no memcpy -> instance callbacks will have all items set to NULL and in *_dispatch function is not called. It changes cfg so now we are using continue instead of exit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2392 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-19 Jan Friesse Fix found_service_ver handling Sometimes, when object_key_get doesn't return found_service_ver it doesn't change old value and this value is then used in atoi what will can cause fall of corosync. Patch fixes this case by setting found_service_ver to NULL before call of object_key_get. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2391 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix systems without _POSIX_THREAD_PROCESS_SHARED git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2390 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-17 Steven Dake Add test program that finds limits of cpg message size. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2389 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Request user enter characters into terminal if entropy pool is empty for keygen rather then exiting without creating an auth key. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2387 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-17 Jérôme Flesch Fix value returned by lib/coroipcc_dispatch_get() in case recv() fails git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2386 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-12 Fabio M. Di Nitto Delay forking and closing of fds as much as possible to allow startup wrappers (such as cman_tool) to collect as much errors as possible in case of startup failure git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2385 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-10 Jan Friesse Swap item in cpg_joinlist This patch add swab of header->size so big endian architectures works with LE list and vica versa. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2384 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-10 Fabio M. Di Nitto corosync: move logsys thread config with all the others logsys thread priority was configured after forking the wthread process and spread the scheduler priority config across a large chunk of code in main.c Now that logsys scheduler priority can be invoked at any time, move the code together with corosync_setscheduler code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2383 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys: fix segfault in logsys_thread_priority_set logsys_thread_priority_set expects that wthread is already running but doesn't perform any check if it is. if logsys_thread_priority_set is invoked before forking the thread, a segfault is guaranteed. this changes to logsys_thread_priority_set ensure that a request for a new scheduler priority is queued if the wthread is not created yet and the new scheduler parameters are applied as early as possible after the thread is created. At the same time: - add a few comments on clean up that needs to be done - remove a redundant check for policy != SCHED_OTHER as that's corosync need specific. logsys should simply accept the request and apply it. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2382 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-04 Jan Friesse Support for -v (version) feature This can be usefull for easier way to get informations of the corosync version from users. Version and SVN revision (get by svninfo -c) are displayed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2381 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-04 Christine Caulfield This patch makes a copy of the notifications list before calling the reload_notifications callbacks. This allows callback functions to manipulate the notifications list without causing corruption or strange loops. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2380 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-04 Steven Dake Use unnamed shared posix semaphores on platforms which support them. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2379 fd59a12c-fef9-0310-b244-a6a79926bd2f Man page cleanups from Steven Whitehouse for cpg service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2378 fd59a12c-fef9-0310-b244-a6a79926bd2f Always keep autogenerated node ids in totem as LE even on BE arches. Have testcpg print out autogenerated nodeid properly on BE arch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2377 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-08-03 Jan Friesse Support for systems where clock_gettime is not available On some systems clock_gettime is not available so we are testing availability and value of _POSIX_MONOTONIC_CLOCK. On system without support of clock_gettime, we are using old behaviour with function gettimeofday. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2376 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-28 Fabio M. Di Nitto Fix spec file and update macro usage git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2374 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-27 Jan Friesse Support for monotime timer This patch should solve problems with corosync and ntp, by using clock_gettime where it make sense. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2373 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-27 Steven Dake 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 Add a target token set completed callback in totemrrp and below layers. Handle management of callback in totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2371 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-23 Jan Friesse Handle NULL ver string in service In case user not enter ver: in service section, whole corosync falled with segfaul, because atoi was called on NULL. Now, in case of NULL, we rather not use atoi, and return 0 directly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2370 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-23 Steven Dake Optimization of totemsrp and below by removing hdb usage. cpgbench shows results of 4% to 20% increase in tps and mbs depending on hardware. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2369 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-22 Jan Friesse Support for service.d This patch is very similar to uidgid.d patch, but support for loading services (so read service section). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2368 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-21 Steven Dake Initial infrastructure changes to support iba. Split totemnet into totemiba and totemudp and have totemnet call the appropriate transport calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2367 fd59a12c-fef9-0310-b244-a6a79926bd2f Darwin is missing the sched_setscheduler system call. Patch detects it and resolves the build failure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2366 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-20 Jan Friesse Cpg synchronization patch for conf change messages The root of the theoretical problem is that cpg_join or cpg_leave messages are being sent via the C apis between synchronization. With the current cpg, synchronization happens in confchg_fn, and then later in cpg_sync_process. cpg_sync_process is called much later after confchg_fn and introduces a small probability of a window of time for queued in totem (but not yet ordered by totem) for those cpg_join and cpg_leave operations to interact with the synchronization process which should happen in one atomic operation but currently is two distinct operations. This patch deletes confchg_fn and make sends joinlist/downlist in cpg_sync_process. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2365 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow only one connection per (node, pid, grp) This patch allows only one connection per (node, pid, grp_name) tuple. This means, you cannot make more connection from one process to same group_name. This is (I hope) how cpg should behave. In case, you will try to do that, CPG_ERR_EXISTS error is returned. Of course, there is no problem with creating: - more connection with same (pid, grp) if nodeid is different - more connection with same (node, grp) if pid is different (for example after fork, or two distinct processes) - more connection with same (node, pid) if grp is different (connect one process to more cpgs). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2364 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-16 Jan Friesse Add lcoroipcc as build requirement for stress_cpgcontext This is needed for build without errors on system, where lcoroipcc is not installed on system yet. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2363 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-14 Andrew Beekhof Use the preferred prefix for the Pacemaker service git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2362 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-13 Steven Dake Add NAME entries to manpages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2360 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-10 Steven Dake add stress_cpgcontext. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2359 fd59a12c-fef9-0310-b244-a6a79926bd2f Add stress_cpgfdget test case. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2358 fd59a12c-fef9-0310-b244-a6a79926bd2f Add stress test case for cpg and coroipcc zero copy buffer alloc and free operations. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2357 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix segfault when using zcb api of coroipcc under certain loads. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2356 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-10 Fabio M. Di Nitto Bump version in trunk git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2355 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-08 Steven Dake Add poll destroy to coroipcs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2348 fd59a12c-fef9-0310-b244-a6a79926bd2f Add more tested platforms to list. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2347 fd59a12c-fef9-0310-b244-a6a79926bd2f Updated INSTALL file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2346 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-02 Jérôme Flesch BSD support: Fix EOF handling in coroipcs.c:req_setup_recv() and coroipcs:coroipcs_handler_dispatch() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2345 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-01 Steven Dake Add ring id field to evs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2341 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Pass handle is evs callback functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2339 fd59a12c-fef9-0310-b244-a6a79926bd2f Send ERR_SECURITY when invalid security context is provided via ipc clients. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2338 fd59a12c-fef9-0310-b244-a6a79926bd2f Set ERR_SECURITY to 100 to give plenty of room for other people's error codes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2337 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix build on bsd systems. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2336 fd59a12c-fef9-0310-b244-a6a79926bd2f Align syncv2 on 8 byte boundaries. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2335 fd59a12c-fef9-0310-b244-a6a79926bd2f Make compatibility mode none work properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2334 fd59a12c-fef9-0310-b244-a6a79926bd2f Code cleanup for evs service from Wojtek. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2333 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-01 Jan Friesse Don't deliver cpg messages from unknown nodes This patch fixes situation, when in the middle of sync some node will send regular message before another node will receive confch message, and regular message is delivered to application. From application point of view, this node is unknown -> don't expect any messages. Now, no such messages are delivered to application. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2332 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-07-01 Steven Dake Add context get set man pages for evs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2331 fd59a12c-fef9-0310-b244-a6a79926bd2f Add new man pages to Makfile.am git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2330 fd59a12c-fef9-0310-b244-a6a79926bd2f Add context get and set operations to evs handles and man pages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2329 fd59a12c-fef9-0310-b244-a6a79926bd2f Add context get/set to See Also section of cpg man pages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2328 fd59a12c-fef9-0310-b244-a6a79926bd2f Add see also reference to context get/set operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2327 fd59a12c-fef9-0310-b244-a6a79926bd2f Add votequorum_context_get/set man pages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2325 fd59a12c-fef9-0310-b244-a6a79926bd2f Add man pages for confdb_context_get/set operations. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2324 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-30 Jim Meyering remove unnecessary #include * exec/evil.c: Don't include . git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2323 fd59a12c-fef9-0310-b244-a6a79926bd2f remove trailing blanks * corosync.spec.in: * exec/evil.c: * exec/main.c: * exec/mainconfig.c: * exec/syncv2.c: git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2322 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-30 Fabio M. Di Nitto Reset version to 0.99 in configure.ac to unbreak rpm/srpm. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2321 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-30 Steven Dake Reset 0.98 in configure.ac to trunk so toplevel makefile works properly git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2319 fd59a12c-fef9-0310-b244-a6a79926bd2f Export poll handle via coroapi.h. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2318 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix segfault during dispatch within confdb library. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2317 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-28 Steven Dake Static-ize some main.c variables. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2316 fd59a12c-fef9-0310-b244-a6a79926bd2f Simplify notifications from totem at the notice level. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2315 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove hard coded sync values and use defines from coroapi.h. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2314 fd59a12c-fef9-0310-b244-a6a79926bd2f Slay the debug messages coming out at notice level in totem. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2313 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove totemsrp warning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2312 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow syncv2 to determine membership list when run in compatibility mode. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2311 fd59a12c-fef9-0310-b244-a6a79926bd2f Follow synchronization model of event service so corosync without openais service engines can communicate with the openais whitetank event service in compatibility mode. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2310 fd59a12c-fef9-0310-b244-a6a79926bd2f Send fake barriers for the event service when operating in compatibility mode whitetank. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2309 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-27 Angus Salkeld add "-p" option to corosync-objctl This just adds a "-p" option to corosync-objctl. So you can do the following (like sysctl). corosync-objctl -p /path/to/object.conf git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2308 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-27 Fabio M. Di Nitto Fix rpm version generation and adapt release manager Makefile. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2307 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-27 Steven Dake Remove some debug printfs that snuck in. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2306 fd59a12c-fef9-0310-b244-a6a79926bd2f Change sync_init api call to pass information relevant for making synchronization decisions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2305 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-26 Steven Dake Add ability to detect process pause and not implode the membership algorithm when this occurs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2304 fd59a12c-fef9-0310-b244-a6a79926bd2f Previously if a process was interrupted by a signal it could become unkillable because the operation was retried on signal interrupts. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2303 fd59a12c-fef9-0310-b244-a6a79926bd2f Add syncv2. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2302 fd59a12c-fef9-0310-b244-a6a79926bd2f Add AMF_V2_SERVICE defintion git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2301 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix build error in evil.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2300 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix no boottime support warning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2299 fd59a12c-fef9-0310-b244-a6a79926bd2f Add compatability option in config file. Defaults to whitetank. Add sync_mode to coroapi to indicate to corosync the service engine's desired compatibility mode. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2298 fd59a12c-fef9-0310-b244-a6a79926bd2f definition error in corodefs.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2297 fd59a12c-fef9-0310-b244-a6a79926bd2f sync-v1 onwire compat layer for raw corosync to communicate with whitetank. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2296 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-25 Steven Dake Define CMAN and CRM service ids. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2295 fd59a12c-fef9-0310-b244-a6a79926bd2f Convert got joinlist message notice to debug level. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2294 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-25 Fabio M. Di Nitto Add support for make srpm and make rpm targets git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2293 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix make dist target git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2292 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-25 Jan Friesse Add database lock init to hdb_* functions Without this, lock can be called to unitialized and locking unitialized lock isn't good idea. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2291 fd59a12c-fef9-0310-b244-a6a79926bd2f Add locking of database in hdb_handle_refcount_get git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2290 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-24 Steven Dake Remove totempg debug message. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2289 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Ryan O'Hara Add hdb_handle_refcount_get call. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2287 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-23 Steven Dake Tidy's up startup printfs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2286 fd59a12c-fef9-0310-b244-a6a79926bd2f Change startup notice to Corosync Cluster Engine. Change 2008 to 2009 in copyright. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2285 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove "AIS" string from exit notice. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2284 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-22 Steven Dake Remove warning by casting properly in totemnet. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2283 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename request_shutdown to shutdown_request in coroapi. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2282 fd59a12c-fef9-0310-b244-a6a79926bd2f Add dump_state to coroapi.h. Need to remove logging output from signal handlers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2281 fd59a12c-fef9-0310-b244-a6a79926bd2f Sanitize -p option to not set scheduling parameters in all software. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2280 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-21 Jim Meyering totemsrp: remove unnecessary cast to avoid "make syntax-check" failure * exec/totemsrp.c (message_handler_memb_join): Remove unnecessary cast of alloca return value. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2279 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-21 Steven Dake 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 Add tests for posix scheduling apis to configure.ac and use them to determine if we should set scheduling priorities or not. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2277 fd59a12c-fef9-0310-b244-a6a79926bd2f Work around dlopen'ed objects not executing constructors on solaris platform. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2276 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove hdb constructor usage. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2275 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-20 Steven Dake Remove timersub redefine. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2274 fd59a12c-fef9-0310-b244-a6a79926bd2f Set nosigpipe socket option on platforms that send sigpipes in coroipcc. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2273 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove use without init warning which is harmless. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2272 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove shadow warnings. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2271 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-19 Steven Dake 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 Fix unused variable on linux because of portage work. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2268 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Wojtek to fix Solaris segfault with compiler optimization. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2267 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-19 Jim Meyering maint: remove trailing blanks By running this command from a git-cloned directory: git grep -z -l -E '[[:blank:]]+$' | xargs -0 perl -pi -e 's/[ \t]+$//' git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2266 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-19 Fabio M. Di Nitto Fix handling of sysconfdir git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2265 fd59a12c-fef9-0310-b244-a6a79926bd2f Install basic operational directories git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2264 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove tags from example configuration git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2263 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-19 Steven Dake Warn user of missing dirs and exit gracefully. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2262 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove requirement of having uid and gid of "ais" on the system and allow nonroot users to access ipc if their uid/gid is in the /etc/corosync/uidgid.d directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2261 fd59a12c-fef9-0310-b244-a6a79926bd2f Sanitize output of autogen.sh. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2260 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-18 Steven Dake Ensure Linux, BSD, Solaris, Darwin function with security authentication in IPC system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2259 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-18 Fabio M. Di Nitto Fix rec_ident encoding for IPC git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2258 fd59a12c-fef9-0310-b244-a6a79926bd2f use $(INSTALL) instead of install for portability to other OS'es git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2257 fd59a12c-fef9-0310-b244-a6a79926bd2f flight recorder: enable temporary 0 buffer size protection The flight recoder doesn't handle a 0 byte allocation properly and it would fail miserably by allocating a single PAGE_SIZE to handle the logging. That means an enormous performance hit because of the constant wrapping around the buffer. If any requested buffer is < 64000 bytes, then force to at least 64000. In future we will be able to handle small buffers properly, but for now enable a simple workaround to protect us and the user. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2256 fd59a12c-fef9-0310-b244-a6a79926bd2f flight recorder: switch from int to bytes for requested allocation The flight recoder buffer size as specified in LOGSYS_DECLARE_SYSTEM or _logsys_rec_init was expressed in number of ints. A developer asking to allocate 512K would get a 2M allocation on a machine with sizeof(int) = 4. This is confusing and the patch addresses it: - rename rec_size to fltsize for external API (no type change), because rec_size is used many times internally for other reasons and it can be confusing. - rename size to fltsize in _logsys_rec_init. - document what we allocate and why. - swap comments around to match the code. - introduce a simple macro to perform rounding (stolen from linux-2.6.git). - start shaping fdata header to better handle dynamic values: * write the flt_data_size as first unsigned int the header. * change corosync-fplay to read the value and alloc the right amount of memory instead of hardcoding it again. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2255 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-18 Steven Dake Add Jerome to AUTHORS file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2254 fd59a12c-fef9-0310-b244-a6a79926bd2f add madvise nosync calls for bsd platform. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2253 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-18 Fabio M. Di Nitto logsys: remove leftover files from running tests git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2252 fd59a12c-fef9-0310-b244-a6a79926bd2f flight recorder: don't hardcode max arguments everywhere git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2251 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys: port to new packed rec_ident version git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2250 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys: add macros to pack/unpack rec_ident rec_ident should contain 3 info: log level, subsystem id and message type. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2249 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 logsys: update man page to reflect new changes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2247 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys: merge tags into rec_ident git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2246 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys: drop LOGSYS_LEVEL_SECURITY LOGSYS_LEVEL_SECURITY is specific to corosync/openais and it is used only in the totem configuration. Drop the special case from logsys that's meant to be a generic logging library and specify the correct equivalent for totem config. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2245 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-17 Jim Meyering build: silence automake portability warnings * configure.ac: Enable automake's -Wno-portability option. We depend on GNU make. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2244 fd59a12c-fef9-0310-b244-a6a79926bd2f autogen.sh: simply to a one-liner: autoreconf -i * autogen.sh: Don't use "which" or uname, or... git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2243 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-16 Fabio M. Di Nitto Add missing prototype and fix white spaces git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2242 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-15 Steven Dake Fix build error from recent solaris porting. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2241 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-14 Steven Dake Use PF_UNIX on Solaris platforms instead of PF_LOCAL. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2240 fd59a12c-fef9-0310-b244-a6a79926bd2f Use rsync -a instead of cp -a to install on Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2239 fd59a12c-fef9-0310-b244-a6a79926bd2f Port of coroipc system to Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2238 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Jerome Flesch to correctly reference count on bsd and solaris platforms in the IPC system to avoid cpu spinning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2237 fd59a12c-fef9-0310-b244-a6a79926bd2f Add iface checking for Solaris platform. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2236 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-12 Jan Friesse Make /etc/corosync/corosync.conf default configuration file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2235 fd59a12c-fef9-0310-b244-a6a79926bd2f Handle LCR problem with unloading "unneeded" components In LCR, global variable g_component_handle is used to keep handle of loaded component. If this variable has magic value (0xFFFFFFFF) it means, "we loaded library, but that library doesn't have any component_register call -> don't try to destroy interfaces list). If this variable has other value, it means "we loaded library, it registers, but it exports some interface, what we currently don't need, so we can delete that handle from libraries/interfaces list" and variable is set to magic value, or "we loaded library, it registers and exports what we need -> great return some nice value", but nobody resets variable to it's magic value. Sadly, if you have loaded some component (needed), then try to load component, which don't have component_register function, previously loaded component handle is destroyed. This problem happened to clm and quorum services, and cause, that loaded clm handle was destroyed, so EVT (which need clm) just falls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2234 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-11 Fabio M. Di Nitto Fix library linking fallout.. again git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2233 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-10 Steven Dake Modify totemnet to work properly on Solaris by setting variables in sendmsg data structure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2232 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-10 Fabio M. Di Nitto Shared libs should not call exit but return error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2231 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-10 Steven Dake Remove unused variable on platforms other then Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2230 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix compile on BSD platforms. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2229 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix semun definitions for various platforms. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2228 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-10 Christine Caulfield Fix corosync-cfgtool -a so that it actaully produces some output! git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2227 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-09 Steven Dake Use PF_LOCAL to match BSD semantics of api calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2226 fd59a12c-fef9-0310-b244-a6a79926bd2f Resolve bug where config changes are delivered in the wrong order on nodes that join and then open a cpg. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2225 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-09 Andrew Beekhof Decouple the decouples shutdown/startup order of lcrso's from the internal objdb order. This is needed as the objdb order will change as modules are loaded/unloaded and is also set up to unload non-default services last (which is the opposite of what something like Pacemaker needs). In the worst case, the current behavior leads to cluster services (dlm, ocfs2, etc) failing during shutdown. This patch also ensures that if, for example, cpg is unloaded then anything that depends on it is unloaded first. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2224 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-07 Steven Dake Remove quorum.c from lcrso build list since its linked into main binary. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2223 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for buildling on Solaris platforms. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2222 fd59a12c-fef9-0310-b244-a6a79926bd2f Call initializer directly for broken platforms which don't honor ctors in the shared object on dlopen. This could probably be more tidy to detect those OS platforms which don't do this instead of hardcoding to a specific platform we intend to port to. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2221 fd59a12c-fef9-0310-b244-a6a79926bd2f Include limits.h in coroparse.c to properly define PATH_MAX. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2220 fd59a12c-fef9-0310-b244-a6a79926bd2f Change NAME_MAX to FILENAME_MAX to compile properly on Posix OS. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2219 fd59a12c-fef9-0310-b244-a6a79926bd2f Define MSG_NOSIGNAL if it is undefined by the base OS such as Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2218 fd59a12c-fef9-0310-b244-a6a79926bd2f Conditionally compile on Solaris platforms msg_* flags in sendmsg header. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2217 fd59a12c-fef9-0310-b244-a6a79926bd2f Include string.h in sq.h for memset() calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2216 fd59a12c-fef9-0310-b244-a6a79926bd2f Make readdir operation portable by removing BSDism from coroparse.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2215 fd59a12c-fef9-0310-b244-a6a79926bd2f Add strsep_cs to replace strsep. -This line, and those below, will be ignored-- M exec/mainconfig.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2214 fd59a12c-fef9-0310-b244-a6a79926bd2f First run at adding support for corosync totemip determination. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2213 fd59a12c-fef9-0310-b244-a6a79926bd2f Make coroipcs compile on Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2212 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename queue datastructure to cs_queue data structure because some fail operating system struct queue in the globally scoped headers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2211 fd59a12c-fef9-0310-b244-a6a79926bd2f Port of totemip to Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2210 fd59a12c-fef9-0310-b244-a6a79926bd2f Port of logsys to Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2209 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcc port to Solaris. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2208 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-04 Christine Caulfield Don't let corosync-keygen fail if /etc/ais already exists git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2207 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-03 Andrew Beekhof Fix compilation on OSX/Darwin git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2206 fd59a12c-fef9-0310-b244-a6a79926bd2f Forward port the clear_node_high_bit from whitetank git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2205 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-02 Jim Meyering 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-01 Jan Friesse Fix coroipcc linking Fixes rhbz#499918 Functions from ckpt library (like aCkptCheckpointOpen, saCkptSectionIterationInitialize, ...) internally uses corosync functions reply_receive, reply_receive_in_buf, ... This functions are included in coroipcc.c source file and uses global static variable ipc_hdb. Without patch, coroipcc is linked to shared library (libcoroipcc.so) AND linked with every corosync libraries (like cpg, ....), so global variable ipc_hdb is included not only in libcoroipcc.so, but also in libcpg.so, ... dlm_controld has function retrieve_plocks, and whole binary is linked with libcoroipcc and libcpg. So ipc_hdb is included TWICE (so has TWO addresses). Main problem causing the bug was, that reply_receive uses address from one library, and reply_receive_in_buf uses other. This confuses check of hdb_get function. After removing linking of coroipcc.o to cpg, and rather use of dynamic version, (this means, there is only one instance of ipc_hdb) problem disappeared. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2203 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-06-01 Christine Caulfield Add broadcast option to corosync This is a forward port of the openais, whitetank, code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2202 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-31 Steven Dake Fix race condition in cpg service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2201 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-30 Fabio M. Di Nitto Public headers should not include private config.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2200 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-22 Christine Caulfield This patch adds the definition VOTEQUORUM_NODEID_US to the library, which is already implicitly zero. It also adds VOTEQUORUM_NODEID_QDEVICE and makes the code that checks for them more generic. This now allows you to change the number of votes assigned to a quorum disk (for example) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2199 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-20 Jan Friesse Support for uidgid feature git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2198 fd59a12c-fef9-0310-b244-a6a79926bd2f *Dispatch returns CS_ERR_BAD_HANDLE only on first hdb_get git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2197 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-20 Christine Caulfield Adapt the deliver_fn in the YKD quorum plugin to the new tpg API. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2196 fd59a12c-fef9-0310-b244-a6a79926bd2f Print a list of quorum members when it changes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2195 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-18 Jim Meyering avoid spurious failure of 'make syntax-check's sc_makefile_check * pkgconfig/Makefile.am (lib%.pc): Add extra quotes to avoid triggering check for use of obsolescent @VAR@ notation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2194 fd59a12c-fef9-0310-b244-a6a79926bd2f don't include when it's not used * exec/coroparse.c: Likewise. * exec/quorum.c: Likewise. * exec/sync.c: Likewise. * exec/totemmrp.c: Likewise. * exec/totemnet.c: Likewise. * exec/totemrrp.c: Likewise. * exec/totemsrp.c: Likewise. * exec/vsf_quorum.c: Likewise. * exec/vsf_ykd.c: Likewise. * lcr/uic.c: Likewise. * lcr/uis.c: Likewise. * lib/cfg.c: Likewise. * services/cfg.c: Likewise. * services/cpg.c: Likewise. * services/evs.c: Likewise. * services/pload.c: Likewise. * services/testquorum.c: Likewise. * services/votequorum.c: Likewise. * test/testconfdb.c: Likewise. * test/testcpg.c: Likewise. * test/testcpgzc.c: Likewise. * test/testzcgc.c: Likewise. * tools/corosync-cfgtool.c: Likewise. * tools/corosync-objctl.c: Likewise. * tools/corosync-pload.c: Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2193 fd59a12c-fef9-0310-b244-a6a79926bd2f don't include when it's not used * exec/apidef.c: Likewise. * exec/mainconfig.c: Likewise. * exec/service.c: Likewise. * exec/timer.c: Likewise. * exec/totemconfig.c: Likewise. * exec/totemmrp.c: Likewise. * exec/vsf_quorum.c: Likewise. * services/testquorum.c: Likewise. * test/cpgbench.c: Likewise. * test/cpgbenchzc.c: Likewise. * tools/corosync-fplay.c: Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2192 fd59a12c-fef9-0310-b244-a6a79926bd2f always include before any other file * test/cpgbench.c: Include before any other file. * test/cpgbenchzc.c: Ditto. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2191 fd59a12c-fef9-0310-b244-a6a79926bd2f exec/schedwrk.c: include git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2190 fd59a12c-fef9-0310-b244-a6a79926bd2f cfg.c: avoid useless if-before-free * lib/cfg.c (corosync_cfg_ring_status_get): Avoid useless if-before-free and change syntax to avoid triggering false-positive failure of the "make syntax-check" sc_cast_of_argument_to_free rule. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2189 fd59a12c-fef9-0310-b244-a6a79926bd2f remove trailing blanks git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2188 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-18 Christine Caulfield When doing a controlled shutdown of corosync, we now send out a JOIN message with our node removed. This should speed up the case where a lot of nodes leave at the same time as they don't need to wait for the token timeout for each node. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2187 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-18 Jan Friesse coroparse: Handle different EOLs and pass error_string git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2186 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove duplicity in logsys code git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2185 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-13 Fabio M. Di Nitto Fix output to syslog git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2184 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-13 Christine Caulfield Convert votequorum to use the proper message delivery API rather than the tpg_ calls. Also remove a lot of mess around those calls, such as headers and things that were needed for cman compatibility but which we will not need. Fixes some handle changes that did not get picked up when handles were changed from unsigned ints to hdb_handle_t git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2183 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-13 Fabio M. Di Nitto Logsys header clean (comments and whitespaces) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2182 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix totem logging after logsys changes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2181 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix logsys TAG handling git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2180 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-12 Christine Caulfield Fix spelling of "Received" in sync.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2179 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-12 Jim Meyering logsys.c: avoid possibility of buffer overrun * exec/logsys.c (strcpy_cutoff): Add buf_len parameter, and never write more than this number of bytes into "dest". Change type of "cutoff" parameter from int to size_t. Sentinel value changes from -1 to 0. (log_printf_to_logs): Adapt to those changes. Reverse condition of test so the much-shorter block is the "if-block". Factor out a common subexpression for readability. Exit the loop if output_buffer_idx ever reaches sizeof(output_buffer). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2178 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.c: avoid redundant strlen in else-block * exec/logsys.c (strcpy_cutoff): Also, with a field width (aka cutoff), and a shorter-than-field-width string, don't write the same memory twice: once with strncpy using NUL bytes, then again with spaces via the memset. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2177 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.c: factor out some duplication * exec/logsys.c (log_printf_to_logs): Factor out repeated calls to strcpy_cutoff. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2176 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-12 Fabio M. Di Nitto Add debugging code to logsys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2175 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-11 Jim Meyering totemnet.c: Make totemnet_initialize definition match just-changed decl. * exec/totemnet.c (totemnet_initialize): Declare deliver_fn's msg_len parameter to be of type "unsigned int" (not size_t) to match decl. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2174 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-11 Fabio M. Di Nitto Fix logging date format and add missing daemon name git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2173 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-09 Steven Dake 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-06 Jim Meyering fix missing-dependency bug, so as not to install bogus .pc files * pkgconfig/Makefile.am (all .pc files): Depend on Makefile, so that a change in $(prefix) there provokes regeneration of these files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2170 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-04 Jim Meyering votequorum.c: avoid a new warning and add a comment in cpg.h * votequorum.c: Avoid declaration of unused: ‘votequorum_instance_destructor’ * include/corosync/cpg.h (cpg_deliver_fn_t) [msg]: Add a comment explaining why this member is not const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2169 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 'incompatible pointer type' compiler warning * test/cpgverify.c (cpg_deliver_fn): Remove const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2168 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-05-04 Angus Salkeld add NTF_SERVICE to the service list git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2167 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-30 Steven Dake Do checking of handle code after we verify that handle could actually be in the handle database. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2166 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-29 Steven Dake Implement thread saftey in corosync trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2165 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix leak caused by invalid put in hdb_handle_destroy. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2164 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-28 Andrew Beekhof Call all configured exec_dump_fn's when SIGUSR2 is received git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2163 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-28 Steven Dake Add cpgverify program to test directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2162 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-27 Andrew Beekhof Minor fixes to the build process on OSX git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2161 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-27 Fabio M. Di Nitto Fix debug: on option for logging purposes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2160 fd59a12c-fef9-0310-b244-a6a79926bd2f add max limit error checks in logsys git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2159 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-27 Steven Dake Add mechanism to use logsysrec from inside totem stack. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2157 fd59a12c-fef9-0310-b244-a6a79926bd2f Improve security of NSS implementation in totem. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2156 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-26 Steven Dake Fix evsverify failure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2155 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-26 Fabio M. Di Nitto Fix --enable-nss default in configure.ac git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2154 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-26 Steven Dake Make libnss detection work properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2153 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-26 Fabio M. Di Nitto Fix pkgconfig file inclusion into release and pass distcheck git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2152 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-26 Steven Dake add Chrissie as author of totem NSS implementation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2151 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const from delivery callback to allow inplace endian changes of message contents. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2150 fd59a12c-fef9-0310-b244-a6a79926bd2f remove "AIS" from cfg.h header file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2149 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow CPP linkage by adding extern "C" {} to external header files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2148 fd59a12c-fef9-0310-b244-a6a79926bd2f remove config.h from public header file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2147 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove useless APIs from coroipcs.c related to handling of overload conditions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2146 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-25 Christine Caulfield Add libnss security support to corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2145 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-24 Fabio M. Di Nitto Bump SONAME to 4.0.0 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2144 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-24 Jim Meyering logsys.c: avoid an unnecessary strlen call * exec/logsys.c (strcpy_cutoff): Use strlen, then memcpy, not strcpy, then strlen. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2143 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-24 Jan Friesse Add Jan Friesse (me) to the list of Corosync authors git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2142 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Steven Dake Remove mempool since it is unused and isn't going to be a feature in this release. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2141 fd59a12c-fef9-0310-b244-a6a79926bd2f add request_shutdown call to coroapi. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2140 fd59a12c-fef9-0310-b244-a6a79926bd2f Add logsys yield counter for the logsys thread. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2139 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Jim Meyering corosync.pc.in: Define Cflags * pkgconfig/corosync.pc.in (Cflags): Define. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2138 fd59a12c-fef9-0310-b244-a6a79926bd2f pkgconfig: correct and clean up Makefile.am * pkgconfig/Makefile.am: Factor, add missing deps. (pkgconf_LIBS): Remove unused var. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2137 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Steven Dake Modify property of loc script to be executable. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2136 fd59a12c-fef9-0310-b244-a6a79926bd2f remove rmd.h header file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2135 fd59a12c-fef9-0310-b244-a6a79926bd2f Include file cleanups. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2134 fd59a12c-fef9-0310-b244-a6a79926bd2f Cleanup coroipcc.h header file to remove saHandleXXX and friends. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2133 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcs.h cleanup. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2132 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Christine Caulfield This patch removes the (now redundant) call to sync_primary_callback_fn when quorum changes. As we established a while ago, quorum is independent of sync and all this code does is segfault when called! git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2131 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Steven Dake Remove priority inversion in logsys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2130 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Jim Meyering exec/Makefile.am: require that copied code stays in sync * exec/Makefile.am (check_logsys_log_printf_functions): New rule. (check): Depend on check_logsys_log_printf_functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2129 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.c: indent consistently * exec/logsys.c (_logsys_log_printf): Indent with TABs to be consistent with copied-from function, _logsys_log_vprintf. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2128 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Jan Friesse Make ipc_log_printf function working by adding _logsys_log_vprintf, which is mostly same as _logsys_log_printf but takes va_list as argument. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2127 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-23 Steven Dake use uint64_t for hdb_handle_t type and also specify some formatting strings for printing handles out of the handle database. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2126 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-22 Steven Dake 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 Jan Friesse Rewrite of CPG. It solves problems with double delete. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2124 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-22 Fabio M. Di Nitto Stop hardcoding /var git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2123 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-22 Jan Friesse Remove MESSAGE_REQ_CPG_GROUPS_GET call and all function using that. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2122 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-22 Fabio M. Di Nitto Kill all asserts from logsys and handle proper error return git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2121 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-22 Steven Dake Add missing header from last commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2120 fd59a12c-fef9-0310-b244-a6a79926bd2f Reworking of include file dependencies. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2119 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-22 Jim Meyering remove empty lines at end-of-file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2118 fd59a12c-fef9-0310-b244-a6a79926bd2f remove all trailing blanks git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2117 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Steven Dake Change shared memory to use mmap() system calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2115 fd59a12c-fef9-0310-b244-a6a79926bd2f Zero copy feature for IPC transmits. Also integrated into CPG library service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2114 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-21 Steven Dake Remove memory leak from new dispatch circular buffer mapped system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2113 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-21 Jim Meyering rename function: s/strstr_rs/strchr_rs/ to reflect new semantics * exec/coroparse.c (parse_section): * exec/util.c (strchr_rs, strstr_rs): * exec/util.h (corosync_exit_error): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2112 fd59a12c-fef9-0310-b244-a6a79926bd2f rewrite strstr_rs not to use strdup strstr_rs used strdup and didn't handle failure. This change removes the use of strdup as well as the uses of strstr, since all callers passed a string of length 1 as the second argument. This also changes the prototype so that the 2nd parameter is a byte, not a string. * util.h (strstr_rs): Adjust prototype. * util.c (strstr_rs): Rewrite/simplify. * sa-confdb.c (strstr_rs): Remove duplicate definition. * coroparse.c (parse_section): Update callers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2111 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-21 Fabio M. Di Nitto Fix pthread linking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2110 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix uid and gid determination git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2109 fd59a12c-fef9-0310-b244-a6a79926bd2f Move include config.h at the top as it's supposed to be git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2108 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-21 Jim Meyering exce/main.c: handle strdup failure * exec/main.c (main): Upon strdup failure, log the error and exit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2107 fd59a12c-fef9-0310-b244-a6a79926bd2f remove useless if-before-free tests * exec/coropoll.c (poll_destroy): Remove useless if. * exec/main.c (main): Likewise. * include/corosync/hdb.h (hdb_destroy): Likewise. * lcr/lcr_ifact.c (scandir): Likewise. * lib/sa-confdb.c (load_config): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2106 fd59a12c-fef9-0310-b244-a6a79926bd2f services/confdb.c: avoid four warnings * services/confdb.c (m2h): New function. (message_handler_req_lib_confdb_object_iter): Use m2h rather than a cast. (message_handler_req_lib_confdb_object_find): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2105 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-21 Fabio M. Di Nitto Guarantee that all logging buffers are flushed before we die git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2104 fd59a12c-fef9-0310-b244-a6a79926bd2f Add logsys_flush logsys API call to signal the logging thread git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2103 fd59a12c-fef9-0310-b244-a6a79926bd2f Add logging configuration backward compatibility layer git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2102 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix output filtering when debug is enabled git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2101 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-20 Jim Meyering corosync-cfgtool.c: handle strdup failure gracefully * tools/corosync-cfgtool.c (xstrdup): New function. (main): Use it in place of strdup. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2100 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-20 Steven Dake Use spinlocks in library handle references. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2099 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-20 Jim Meyering schedwrk.c: avoid two int-pointer cast conversion warnings * exec/schedwrk.c (void2handle, handle2void): New functions. (schedwrk_do): Use void2handle rather than an unportable cast. (schedwrk_create): Use handle2void rather than an unportable cast. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2098 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-20 Fabio M. Di Nitto Fix libconfdb linking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2097 fd59a12c-fef9-0310-b244-a6a79926bd2f Improve logsys error handling in logsys_format_set and logsys_config_file_set_unlocked. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2096 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename corosync.conf to corosync.conf.example take 2 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2095 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename corosync.conf to corosync.conf.example git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2094 fd59a12c-fef9-0310-b244-a6a79926bd2f readd early log level check for performance reasons. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2093 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-20 Steven Dake 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 Fabio M. Di Nitto Add logsys v3 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2091 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-18 Steven Dake Add missing schedwrk files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2090 fd59a12c-fef9-0310-b244-a6a79926bd2f add schedwrk_create and schedwrk_destroy coroapi functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2089 fd59a12c-fef9-0310-b244-a6a79926bd2f Initialize pload context properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2088 fd59a12c-fef9-0310-b244-a6a79926bd2f Move QUICKSTART to INSTALL and update it. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2087 fd59a12c-fef9-0310-b244-a6a79926bd2f Add AUTHORS file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2086 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove declaration of data struct inside code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2085 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warning in evsbench. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2084 fd59a12c-fef9-0310-b244-a6a79926bd2f Add fatal error call to ipc initializations.y git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2083 fd59a12c-fef9-0310-b244-a6a79926bd2f check result of fgets in testcpg. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2082 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warnings about objdb that casts a const char * to a char *. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2081 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warnings about typedefs in apidef.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2080 fd59a12c-fef9-0310-b244-a6a79926bd2f Rework how dispatch functions so service engines work properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2079 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-15 Jim Meyering configure.ac: enable gcc's -Wshadow warning * configure.ac (WARNLIST): Add -Wshadow to the list. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2078 fd59a12c-fef9-0310-b244-a6a79926bd2f cpg.c: rename file-scoped global to avoid shadowing warnings * services/cpg.c: s/req_exec_cpg_downlist/g_req_exec_cpg_downlist/ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2077 fd59a12c-fef9-0310-b244-a6a79926bd2f vsf_ykd.c: Rename param to avoid shadowing global "ydk_state" * exec/vsf_ykd.c (ykd_state_endian_convert): Rename param: s/ydk_state/state/ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2076 fd59a12c-fef9-0310-b244-a6a79926bd2f services/cfg.c move shadowed decl into scope where used * services/cfg.c (message_handler_req_lib_cfg_tryshutdown): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2075 fd59a12c-fef9-0310-b244-a6a79926bd2f corosync-fplay.c: don't shadow file-scoped global, "record" * tools/corosync-fplay.c: Rename: s/record/g_record/. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2074 fd59a12c-fef9-0310-b244-a6a79926bd2f testvotequorum1.c: don't shadow file-scoped global, "handle" * test/testvotequorum1.c (main): Rename: s/handle/g_handle/. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2073 fd59a12c-fef9-0310-b244-a6a79926bd2f corosync-fplay.c: avoid shadowin: s/index/idx/ * tools/corosync-fplay.c (printer_totempg_mcast_fits): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2072 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcs.c: don't shadow functions read and write * exec/coroipcs.c (req_setup_recv): rename locals: s/read/n_read/; s/write/n_write. Also declare param to be const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2071 fd59a12c-fef9-0310-b244-a6a79926bd2f totemnet.c: don't shadow crypto.h type, "hmac_state" * exec/totemnet.c (encrypt_and_sign_worker): Rename a local var: s/hmac_state/hmac_st/ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2070 fd59a12c-fef9-0310-b244-a6a79926bd2f don't shadow file-scoped global, "handle" * test/testquorum.c: Rename: s/handle/g_handle/. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2069 fd59a12c-fef9-0310-b244-a6a79926bd2f wthread.c: Rename file-scoped type to avoid shadows. * exec/wthread.c (struct worker_thread_t): Rename from struct worker_thread. (start_worker_thread): Rename from function "worker_thread". * exec/wthread.h (struct worker_thread_group) [threads]: Update member type: s/struct worker_thread/struct worker_thread_t/ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2068 fd59a12c-fef9-0310-b244-a6a79926bd2f don't shadow the global type name, "timer_handle" * exec/coropoll.c (poll_timer_delete): Rename locals and/or params. * exec/timer.c (corosync_timer_delete): Likewise. (corosync_timer_expire_time_get): Likewise. * exec/tlist.h (timerlist_del, timerlist_expire_time): Likewise. (timerlist_pre_dispatch, timerlist_post_dispatch): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2067 fd59a12c-fef9-0310-b244-a6a79926bd2f list.h: avoid shadowing warning * include/corosync/list.h: Don't use "remove" as param name. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2066 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcc.c: avoid shadowing warning * lib/coroipcc.c: Don't use "read" as param name. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2065 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: more "const" propagation * exec/totemsrp.c (message_handler_memb_commit_token): Don't cast away const on "memb_commit_token". This exposed a const violation. Fix that with minor rearrangement and an added memcpy. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2064 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: avoid a const-correctness problem * exec/totemsrp.c (message_handler_memb_merge_detect): Don't modify the now-const "msg" parameter. Instead, use a local copy. Patch by Steven Dake. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2063 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 * README.devmap: Update a prototype. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2061 fd59a12c-fef9-0310-b244-a6a79926bd2f change a few "int msg_len" to "size_t msg_len"; adjust docs * lib/cpg.c (cpg_mcast_joined): * lib/evs.c (evs_mcast_joined, evs_mcast_groups): * man/cpg_initialize.3: * man/evs_initialize.3: git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2060 fd59a12c-fef9-0310-b244-a6a79926bd2f corosync-keygen.c: diagnose a few more failures * tools/corosync-keygen.c (main): Diagnose short reads, failed mkdir and fchmod; detect write failure. Close file descriptors. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2059 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-14 Steven Dake Autodetect build environment for configure for developers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2058 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-10 Steven Dake Fix compile warning in main.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2057 fd59a12c-fef9-0310-b244-a6a79926bd2f Cast a const away in an iovector. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2056 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warnings from wthread. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2055 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove qualifier check in warnings list. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2054 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove admin_state_set and admin_state_get. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2053 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warning in keygen and report error on fchown appropriately. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2052 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warning in corosync-objctl. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2051 fd59a12c-fef9-0310-b244-a6a79926bd2f 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-09 Jim Meyering coroapi.h: Make totem_mcast's *iovec param const. * include/corosync/engine/coroapi.h (struct corosync_api_v1): [totem_mcast]: Make *iovec param const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2049 fd59a12c-fef9-0310-b244-a6a79926bd2f cpg.h, objdb.h, coroaph.h: more const/size_t * include/corosync/cpg.h (cpg_callbacks_t): * include/corosync/mar_cpg.h (marshall_to_mar_cpg_name_t): * lib/cpg.c (cpg_join, cpg_leave): * lib/cpg.c (cpg_mcast_joined): make iovec const. * include/corosync/cpg.h (cpg_mcast_joined): update prototype ... git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2048 fd59a12c-fef9-0310-b244-a6a79926bd2f coroapi.h: change lib_handler_fn's *msg to be const Make a tiny type change and watch it propagate. * include/corosync/engine/coroapi.h (struct corosync_lib_handler) [lib_handler_fn]: Change type of 2nd parameter: s/void *msg/const void *msg/. Propagate the above into cfg.c and votequorum.c: * services/cfg.c (message_handler_req_lib_cfg_get_node_addrs): Constification exposed a bug in this function whereby it mistakenly modified storage through its now-const *msg parameter. Since it did that solely to store a temporary result, we've changed it to use a local variable instead. * services/votequorum.c (message_handler_req_lib_votequorum_setvotes): Likewise. * exec/vsf_quorum.c: add const to msg param. * services/evs.c: Likewise. * services/pload.c: Likewise. * services/cpg.c: Likewise. * services/confdb.c: Likewise. * exec/coroipcs.h: signature of coroipcs_handler_fn_lvalue must match that of lib_handler_fn; noted via main.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2047 fd59a12c-fef9-0310-b244-a6a79926bd2f testevsth.c: const+size_t: evs_deliver_fn, evs_confchg_fn git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2046 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-08 Jim Meyering coroipcc.h (coroipcc_msg_send_reply_receive): Make res_len size_t. * include/corosync/coroipcc.h (coroipcc_msg_send_reply_receive): change type of res_len parameter. * lib/coroipcc.c (coroipcc_reply_receive): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2045 fd59a12c-fef9-0310-b244-a6a79926bd2f sync the rest of the code with previous header changes * exec/coroipcs.c (coroipcs_response_send) (coroipcs_dispatch_send): * exec/coroipcs.h (handler_fn_get): * include/corosync/cpg.h (cpg_deliver_fn_t, cpg_confchg_fn_t): * test/cpgbench.c (cpg_bm_confchg_fn, cpg_bm_deliver_fn): * test/testcpg.c (print_cpgname, DeliverCallback) (ConfchgCallback): * test/testcpg2.c (deliver, confch): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2044 fd59a12c-fef9-0310-b244-a6a79926bd2f cpg.h, coroapi.h: more size_t and const changes * include/corosync/cpg.h (cpg_deliver_fn_t, cpg_confchg_fn_t) (cpg_groups_get_fn_t): * include/corosync/engine/coroapi.h (ipc_response_send) (ipc_dispatch_send, tpg_join, tpg_leave, tpg_groups_mcast) (tpg_groups_reserve): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2043 fd59a12c-fef9-0310-b244-a6a79926bd2f sync the rest of the code with previous header changes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2042 fd59a12c-fef9-0310-b244-a6a79926bd2f make all priv_data_pt pointers non-"const" I'd suspected this would be necessary, but until now hadn't found a case in which it actually was. That case: totemconfig.c's totem_key_change_notify. It has a priv_data_pt parameter that is used like this: struct totem_config *totem_config = priv_data_pt; and totem_config is in turn passed as arg #2 to totem_volatile_config_read, where it is decidedly non-const. git grep -l 'const void \*priv' \ |xargs perl -pi -e 's,const (void \*priv_data_pt),$1,' git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2041 fd59a12c-fef9-0310-b244-a6a79926bd2f coroapi.h, confdb.h, objdb.h: big s/int/size_t/ change * exec/mainconfig.c (objdb_get_string, objdb_get_int): * exec/totemconfig.c (objdb_get_string, objdb_get_int) (totem_config_keyread, totem_key_change_notify): * include/corosync/confdb.h (confdb_callbacks_t): * include/corosync/engine/coroapi.h (group_len, object_len) (key_len, validate_callback, object_key_change_notify_fn_t) (object_create_notify_fn_t, object_destroy_notify_fn_t) (object_notify_callback_fn_t, object_reload_notify_fn_t) (object_create, object_key_create, object_find_create) (object_key_get, object_key_replace, object_key_delete) (object_iter, object_key_iter, object_name_get) (object_key_iter_from, object_key_increment) (object_key_decrement): * include/corosync/engine/objdb.h (object_key_change_notify_fn_t) (object_create_notify_fn_t, object_destroy_notify_fn_t) (object_len, key_len, validate_callback, object_create) (object_key_create, object_find_create, object_key_get) (object_key_replace, object_key_delete, object_iter) (object_key_iter, object_name_get, object_key_iter_from) (object_key_increment, object_key_decrement): * lib/confdb.c (confdb_object_create, confdb_key_create) (confdb_key_delete, confdb_key_get, confdb_key_increment) (confdb_key_decrement, confdb_key_replace, confdb_object_find) (confdb_object_iter, confdb_key_iter): * lib/sa-confdb.c (confdb_sa_object_create, confdb_sa_key_create) (confdb_sa_key_delete, confdb_sa_key_get) (confdb_sa_key_increment, confdb_sa_key_decrement) (confdb_sa_key_replace, confdb_sa_object_find) (confdb_sa_object_iter, confdb_sa_key_iter): * lib/sa-confdb.h: * services/confdb.c (message_handler_req_lib_confdb_key_replace): * services/votequorum.c (objdb_get_string, objdb_get_int) (quorum_key_change_notify, votequorum_objdb_reload_notify): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2040 fd59a12c-fef9-0310-b244-a6a79926bd2f totemconfig.c: don't hard-code "128"... * exec/totemconfig.c (read_keyfile): Don't hard-code "128". Use sizeof(...) instead. Avoid duplicate "close(fd)" calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2039 fd59a12c-fef9-0310-b244-a6a79926bd2f totemconfig.c: don't let a key of length > 128 clobber memory * exec/totemconfig.c (totem_config_keyread): Reject a key with length greater than that of our private_key buffer. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2038 fd59a12c-fef9-0310-b244-a6a79926bd2f totem.h: use symbolic array dimensions in public struct members * include/corosync/totem/totem.h: (TOTEM_PRIVATE_KEY_LEN, TOTEM_RRP_MODE_BYTES): Define. (struct totem_config): Use the new names, rather than literals. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2037 fd59a12c-fef9-0310-b244-a6a79926bd2f totempg.h: change type of totempg_group.group_len from int to size_t * include/corosync/totem/totempg.h (struct totempg_group) [group_len]: Change member type from int to size_t. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2036 fd59a12c-fef9-0310-b244-a6a79926bd2f rmd.h: adjust types (const+size_t) of prototype * include/corosync/rmd.h: ...even though there are no definitions for these functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2035 fd59a12c-fef9-0310-b244-a6a79926bd2f sync.c: avoid printf format warning * exec/sync.c (sync_deliver_fn): cast to unsigned long int, use %lu git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2034 fd59a12c-fef9-0310-b244-a6a79926bd2f sync.c: avoid warning about now-unused variables * exec/sync.c (vsf_none, vsf_iface): Remove decls of now-unused file-scoped variables. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2033 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 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 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 *_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 no-op change: s/gruop/group/ in prototypes and documentation * include/corosync/engine/coroapi.h (tpg_join, tpg_leave): * man/evs_mcast_groups.3: git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2028 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 rmd.h: s/int/size_t; const-correctness changes... * include/corosync/rmd.h: in spite of these being unused interfaces git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2026 fd59a12c-fef9-0310-b244-a6a79926bd2f lcr_ckpt.h: unused file: const/size_t git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2025 fd59a12c-fef9-0310-b244-a6a79926bd2f ipc_evs.h: s/int/size_t * include/corosync/ipc_evs.h (msglen, member_list_entries): (left_list_entries, joined_list_entries, group_entries, msg_len): (group_entries, msg_len, member_list_entries): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2024 fd59a12c-fef9-0310-b244-a6a79926bd2f evs.h: s/int/size_t; const-correctness changes * exec/sync.c (barrier_data_confchg_entries): * include/corosync/evs.h (evs_deliver_fn_t, evs_confchg_fn_t): (evs_callbacks_t): * lib/evs.c (MIN, evs_join, evs_leave, evs_mcast_joined): (evs_mcast_groups, evs_membership_get): * test/evsbench.c (evs_deliver_fn, evs_confchg_fn): * test/evsverify.c (evs_deliver_fn, evs_confchg_fn, main): * test/testevs.c (evs_deliver_fn, evs_confchg_fn, main): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2023 fd59a12c-fef9-0310-b244-a6a79926bd2f quorum.h (quorum_set_quorate_fn_t): make first param const * exec/quorum.h (sync_callback_fn_t): * exec/sync.c (current_members_cnt, sync_primary_callback_fn): * exec/sync.h (name): * exec/vsf_quorum.c (sync_primary_callback_fn): (quorum_api_set_quorum): * exec/vsf_ykd.c (ykd_primary_callback_fn): * include/corosync/engine/coroapi.h (sync_callback_fn_t): * include/corosync/engine/quorum.h (quorum_set_quorate_fn_t): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2022 fd59a12c-fef9-0310-b244-a6a79926bd2f quorum.h (quorum_set_quorate_fn_t): s/int/size_t/ propagate the change: * include/corosync/engine/quorum.h (quorum_set_quorate_fn_t): * exec/vsf_quorum.c (quorum_view_list_entries): (quorum_api_set_quorum, quorum_exec_init_fn): * exec/vsf_ykd.c (ykd_primary_callback_fn): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2021 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-07 Steven Dake Remove wrong project name. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2020 fd59a12c-fef9-0310-b244-a6a79926bd2f Forward port of sync v1 engine from whitetank and rework of quorum engine to not break syncing. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2019 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-07 Jim Meyering accommodate iov_len of type size_t (i.e., never negative) * services/pload.c (send_message): Don't test for iov_len < 0, since it can no longer happen. * lib/evs.c: Fix a typo in an iov_len-related FIXME comment. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2018 fd59a12c-fef9-0310-b244-a6a79926bd2f jhash.h (jhash2): make first parameter const * include/corosync/jhash.h (jhash2): const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2017 fd59a12c-fef9-0310-b244-a6a79926bd2f lcr_comp.h: size_t * include/corosync/lcr/lcr_comp.h (struct lcr_comp, struct lcr_iface): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2016 fd59a12c-fef9-0310-b244-a6a79926bd2f list.h (list_empty): Make param const. * include/corosync/list.h (list_empty): Make param const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2015 fd59a12c-fef9-0310-b244-a6a79926bd2f mar_cpg.h: make "src" params const. * include/corosync/mar_cpg.h: git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2014 fd59a12c-fef9-0310-b244-a6a79926bd2f mar_gen.h: make params const * include/corosync/mar_gen.h (get_mar_name_t, mar_name_match): const * exec/util.h (get_mar_name_t, mar_name_match): Remove unneeded decls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2013 fd59a12c-fef9-0310-b244-a6a79926bd2f totemip.h: const'ify * include/corosync/totem/totemip.h: Add const to prototypes. * exec/totemip.c (totemip_equal, totemip_copy): Adjust. (totemip_copy_endian_convert, totemip_localhost_check): Likewise. (totemip_sockaddr_to_totemip_convert): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2012 fd59a12c-fef9-0310-b244-a6a79926bd2f sq.h: const'ify, and avoid NULL-deref * include/corosync/sq.h (sq_init): Avoid NULL-deref on malloc failure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2011 fd59a12c-fef9-0310-b244-a6a79926bd2f queue.h: Replace #ifdef COROSYNC_SOLARIS... * include/corosync/queue.h: Remove #ifdef COROSYNC_SOLARIS in favor of agnostic "#ifdef queue". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2010 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.h (logsys_format_set): Change return type, adjust param type. * include/corosync/engine/logsys.h: * exec/logsys.c (logsys_format_set): Return -1 upon strdup failure. Change type of param to "const char *". * exec/logsys.c (logsys_init): Adjust use. * exec/mainconfig.c (corosync_main_config_read_logging): Adjust uses. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2009 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-03 Steven Dake Revert constructor priority in logsys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2008 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove extra printf from coropoll. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2007 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix timers not expiring. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2006 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-03 Jim Meyering remove 3 useless casts git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2005 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.h (confdb_reload) Add errbuf_len parameter and propagate. * include/corosync/confdb.h (confdb_callbacks_t): * lib/confdb.c (confdb_reload): * lib/sa-confdb.c (confdb_sa_reload): * lib/sa-confdb.h: * test/testconfdb.c (main): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2004 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb_sa_write: propagate errbuf_len parameter * lib/sa-confdb.c (confdb_sa_write): Propagate errbuf_len parameter. * lib/sa-confdb.h: Update prototype git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2003 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.h: error_text vs. buflen * lib/confdb.c (MIN): Define. (confdb_write): Use new errbuf_len parameter. Also note bugs (Chrissie confirms) that error_text is not set in two error-return cases. * test/testconfdb.c (do_write_tests): Update use of confdb_write. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2002 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.h: continue API changes: const+size_t * include/corosync/confdb.h (confdb_object_create_notify_fn_t): (confdb_object_delete_notify_fn_t): * tools/corosync-objctl.c (tail_object_created, tail_object_deleted): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2001 fd59a12c-fef9-0310-b244-a6a79926bd2f print "?" in place of non-printing bytes of obj/key/val values * tools/corosync-objctl.c: Include (print_name): New function. (tail_key_changed): Use it to avoid printing garbage to screen. * include/corosync/confdb.h (confdb_key_change_notify_fn_t): Convert type of "int" length params to "size_t". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2000 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.h (confdb_key_change_notify_fn_t): Make 3 params "const" * include/corosync/confdb.h (confdb_key_change_notify_fn_t): Make 3 params const. * tools/corosync-objctl.c (find_object_of_type_t, callbacks): (tail_key_changed): Don't write into would-be-const members. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1999 fd59a12c-fef9-0310-b244-a6a79926bd2f cfg.h: mark "address_length" as an unused member * include/corosync/cfg.h: Add a FIXME comment. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1998 fd59a12c-fef9-0310-b244-a6a79926bd2f cfg.h: adjust parameter types: const+s/int/size_t/ * lib/cfg.c (corosync_cfg_get_node_addrs): Make "max_addrs" size_t. (corosync_cfg_kill_node): Make "reason" const. * include/corosync/cfg.h: Update prototypes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1997 fd59a12c-fef9-0310-b244-a6a79926bd2f cfg.h: add const * lib/cfg.c (corosync_cfg_service_load): Make service_name "const". (corosync_cfg_service_unload): Likewise. * include/corosync/cfg.h: Update prototypes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1996 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcc. h (coroipcc_dispatch_recv): Add a buflen parameter. * lib/coroipcc.c (coroipcc_dispatch_recv): Update definition, and... (memcpy_swrap): ... add a parameter here, too. * include/corosync/coroipcc.h (coroipcc_dispatch_recv): * lib/cfg.c (corosync_cfg_dispatch): * lib/confdb.c (confdb_dispatch): * lib/cpg.c (cpg_dispatch, cpg_flow_control_state_get): * lib/evs.c (evs_dispatch): * lib/quorum.c (quorum_dispatch): * lib/votequorum.c (votequorum_dispatch): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1995 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcc.h: add "const" to msg_send_reply_* "iov" parameters * include/corosync/coroipcc.h (coroipcc_msg_send_reply_receive_in_buf): Make "iov" const. * lib/coroipcc.c (coroipcc_msg_send): Make iov const. (coroipcc_msg_send_reply_receive): Likewise. (coroipcc_msg_send_reply_receive_in_buf): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1994 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.c: add missing mutex-unlock calls after coroipcc_dispatch_recv * lib/confdb.c (confdb_dispatch): The code in lib/cfg.c's (corosync_cfg_dispatch) is nearly identical to that in lib/confdb.c's (confdb_dispatch), but lacked two pthread_mutex_unlock calls. 2009-04-03 Jim Meyering git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1993 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-03 Fabio M. Di Nitto Drop unrequired struct git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1992 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix logsys construct execution priority git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1991 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-02 Steven Dake Patch to use snprintf where appropriate to avoid buffer overrun. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1990 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-01 Jim Meyering corosync-objctl.c: remove a just-added "const" * tools/corosync-objctl.c (get_key): Remove just-added const from 2nd parameter. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1989 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-01 Steven Dake Patch to document uid/gid and to default to allowing ais user to access services of corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1988 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-01 Fabio M. Di Nitto add fileline/function_name support in corosync git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1987 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix last build warning in mainconfig. Add a missing const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1986 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-01 Jim Meyering remove unused file-scoped global * tools/corosync-fplay.c (records_printed): Remove. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1985 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid prototype warnings, constify * tools/corosync-fplay.c: Make many parameters and local pointers const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1984 fd59a12c-fef9-0310-b244-a6a79926bd2f remove unused functions and variable * tools/corosync-fplay.c (sync_printer_nada): Remove function. * tools/corosync-objctl.c (get_child_name): Remove function. * test/evsverify.c (msg): Remove unused variable. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1983 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid prototype warnings * test/evsbench.c: Declare functions/vars static. * test/evsverify.c: Likewise. * test/testcpg2.c: Likewise. * test/testcpg.c: Likewise. * test/logsysbench.c: Likewise. * test/cpgbench.c: Likewise. * exec/sync.c: Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1982 fd59a12c-fef9-0310-b244-a6a79926bd2f * test/testevs.c: avoid 2 warnings, decl "static" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1981 fd59a12c-fef9-0310-b244-a6a79926bd2f declare many functions "static" (also avoids missing prototype warnings) * exec/main.c (sigintr_handler, serialize_lock, serialize_unlock): (serialize_lock, serialize_unlock): * exec/sync.c (sync_start_init, sync_callbacks_load): * exec/vsf_ykd.c (ykd_state_init): * lcr/uis.c (cmd1): * services/pload.c (send_message, token_callback, start_mcasting): * tools/corosync-cfgtool.c (service_load_do, service_unload_do): (shutdown_do, showaddrs_do, killnode_do, usage_do): * tools/corosync-fplay.c (totemip_print, print_string_len): (sync_printer_confchg_set_sync, sync_printer_set_sync_state): (sync_printer_process_currentstate): (sync_printer_process_get_shouldsync): (sync_printer_checkpoint_release): (sync_printer_checkpoint_transmit, sync_printer_section_transmit): (sync_printer_checkpoint_receive, sync_printer_section_receive): (sync_printer_nada, sync_printer_confchg_fn): (printer_totemsrp_mcast, printer_totemsrp_delv): (printer_totempg_mcast_fits, sync_printer_service_process): * tools/corosync-objctl.c (get_child_name, get_parent_name): (get_key): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1980 fd59a12c-fef9-0310-b244-a6a79926bd2f * exec/apidef.c: Include "apidef.h". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1979 fd59a12c-fef9-0310-b244-a6a79926bd2f timer.c: connect with its published prototypes * exec/timer.c: Include "timer.h". * exec/timer.h (corosync_timer_init): Make return type in prototype match the one in the function definition. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1978 fd59a12c-fef9-0310-b244-a6a79926bd2f add "void" parameter list to avoid "isn't prototype" warning * exec/objdb.c (objdb_wrlock, objdb_rdlock, objdb_rdunlock): (objdb_wrunlock): * services/cfg.c (send_shutdown, check_shutdown_status): * services/votequorum.c (send_expectedvotes_notification): * tools/corosync-cfgtool.c (shutdown_do): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1977 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-04-01 Fabio M. Di Nitto Fix internal API usage and add support for file_name git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1976 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix build warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1975 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-30 Jim Meyering totemip.c: avoid 1 warning * exec/totemip.c (totemip_print): Add const. * include/corosync/totem/totemip.h: Ditto. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1974 fd59a12c-fef9-0310-b244-a6a79926bd2f evsverify.c: avoid 1 warning * test/evsverify.c: Add a const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1973 fd59a12c-fef9-0310-b244-a6a79926bd2f testcpg.c: avoid 1 warning * test/testcpg.c (sigintr_handler): Mark as "noreturn". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1972 fd59a12c-fef9-0310-b244-a6a79926bd2f evsbench.c: avoid 1 warning * test/evsbench.c (sigintr_handler): Mark as "noreturn". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1971 fd59a12c-fef9-0310-b244-a6a79926bd2f apidef.c: avoid 1 warning * exec/apidef.c (_corosync_public_exit_error): Mark as "noreturn". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1970 fd59a12c-fef9-0310-b244-a6a79926bd2f main.h: avoid 1 warning * exec/main.c (corosync_exit): Mark as "noreturn". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1969 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.c: avoid 1 warning * exec/logsys.c (logsys_conf): Add const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1968 fd59a12c-fef9-0310-b244-a6a79926bd2f util.h: avoid 2 warnings * exec/util.h (_corosync_out_of_memory_error): Mark as "noreturn". (_corosync_exit_error): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1967 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.c: avoid 1 warning * exec/logsys.c (logsys_worker_thread): Mark function as "noreturn". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1966 fd59a12c-fef9-0310-b244-a6a79926bd2f wthread.c: avoid 1 warning * exec/wthread.c (worker_thread): Mark function as "noreturn". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1965 fd59a12c-fef9-0310-b244-a6a79926bd2f uis.c: don't infloop upon poll failure (e.g., ENOMEM) * lcr/uis.c (lcr_uis_server): Return NULL for any poll failure other than EINTR. This also avoids a warning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1964 fd59a12c-fef9-0310-b244-a6a79926bd2f mar_gen.h, cfg.c: avoid 1 warning * services/cfg.c (message_handler_req_exec_cfg_killnode): * include/corosync/mar_gen.h (marshall_to_mar_name_t): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1963 fd59a12c-fef9-0310-b244-a6a79926bd2f mainconfig.c: avoid 2 warnings * exec/mainconfig.c (uid_determine, gid_determine): Add const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1962 fd59a12c-fef9-0310-b244-a6a79926bd2f service.c: avoid 5 warnings * exec/service.c (struct default_service): Make "name" const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1961 fd59a12c-fef9-0310-b244-a6a79926bd2f totempg.h: avoid a warning * include/corosync/totem/totempg.h (struct totempg_group): Make "group" const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1960 fd59a12c-fef9-0310-b244-a6a79926bd2f main.c: avoid a few warnings FIXME: merge with another? * exec/main.c (ipc_log_printf): Add const. (main): tweak config_iface handling git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1959 fd59a12c-fef9-0310-b244-a6a79926bd2f testvotequorum1.c: avoid 5 warnings * test/testvotequorum1.c (node_state): Return "const char *". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1958 fd59a12c-fef9-0310-b244-a6a79926bd2f evsbench.c; avoid a format mismatch warning * test/evsbench.c (evs_deliver_fn): %s vs. void* git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1957 fd59a12c-fef9-0310-b244-a6a79926bd2f coroparse.c: add const: avoid 2 warnings * exec/coroparse.c: Add const. Tweak s/fp==0/fp==NULL/ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1956 fd59a12c-fef9-0310-b244-a6a79926bd2f services/testquorum.c: avoid a warning * services/testquorum.c (key_change_notify): Add const attributes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1955 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid format mismatch warning * test/testquorum.c (quorum_notification_fn): Add casts to match formats. Use unsigned formats for unsigned values. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1954 fd59a12c-fef9-0310-b244-a6a79926bd2f testcpg2.c: avoid 1 warning * test/testcpg2.c (main): Add a const-discarding cast. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1953 fd59a12c-fef9-0310-b244-a6a79926bd2f testevs.c: avoid 2 more warnings * test/testevs.c: Declare global to be "static const". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1952 fd59a12c-fef9-0310-b244-a6a79926bd2f * test/testcpg.c (main): Remove decl of unused var. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1951 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.c, objdb.h, coroapi.h: add a few const, remove one: 4 fewer warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1950 fd59a12c-fef9-0310-b244-a6a79926bd2f confdb.c: add a few const: avoid 3 more git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1949 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcs.h: avoid 3 warnings * exec/coroipcs.h: Forward-declare "struct iovec". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1948 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 1 warning * services/evs.c (message_handler_req_exec_mcast): Introduce a deliberate const-discarding cast and mark it with a comment. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1947 fd59a12c-fef9-0310-b244-a6a79926bd2f object_write_config: add const to remove one more git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1946 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys.c: fix two more warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1945 fd59a12c-fef9-0310-b244-a6a79926bd2f merge with "in progress" -- down 6 to 73 warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1944 fd59a12c-fef9-0310-b244-a6a79926bd2f in progress: avoid warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1943 fd59a12c-fef9-0310-b244-a6a79926bd2f votequorum.c (votequorum_qdisk_register): add "const" to avoid 1 more warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1942 fd59a12c-fef9-0310-b244-a6a79926bd2f votequorum.c: add "const" to avoid 2 more warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1941 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 3 warnings votequorum.c (kill_reason): Use "const char*" as return type, not "char *". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1940 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 7 warnings (struct sync_callbacks), (struct corosync_service_engine) [name]: Make member const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1939 fd59a12c-fef9-0310-b244-a6a79926bd2f votequorum.c: add "const" to avoid 2 more warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1938 fd59a12c-fef9-0310-b244-a6a79926bd2f totem*: add "const" to avoid 3 more warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1937 fd59a12c-fef9-0310-b244-a6a79926bd2f totem*: add "const" to avoid 1 more warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1936 fd59a12c-fef9-0310-b244-a6a79926bd2f totem*: add "const" to avoid 1 more warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1935 fd59a12c-fef9-0310-b244-a6a79926bd2f vsf_type: add "const" to avoid warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1934 fd59a12c-fef9-0310-b244-a6a79926bd2f totemconfig.c: avoid another warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1933 fd59a12c-fef9-0310-b244-a6a79926bd2f * exec/totemconfig.c: eliminate 8 const-related warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1932 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb.c (object_reload_config): add const git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1931 fd59a12c-fef9-0310-b244-a6a79926bd2f * exec/objdb.c (object_create): make "object_name" param const git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1930 fd59a12c-fef9-0310-b244-a6a79926bd2f add const to 3 params * include/corosync/engine/objdb.h (object_key_change_notify_fn_t): git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1929 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb.c, etc: add "const" to avoid warnings * exec/objdb.c: * include/corosync/engine/coroapi.h: * include/corosync/engine/objdb.h: git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1928 fd59a12c-fef9-0310-b244-a6a79926bd2f uis.c: avoid warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1927 fd59a12c-fef9-0310-b244-a6a79926bd2f corosync-fplay.c: make more robust, avoid warnings * tools/corosync-fplay.c (main): Diagnose malloc,open, and read failures git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1926 fd59a12c-fef9-0310-b244-a6a79926bd2f service.[ch]: remove 7 const-related warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1925 fd59a12c-fef9-0310-b244-a6a79926bd2f coroipcs.[ch]: remove 4 const-related warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1924 fd59a12c-fef9-0310-b244-a6a79926bd2f totempg.c: remove one const-related warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1923 fd59a12c-fef9-0310-b244-a6a79926bd2f objdb.h: sync const-related from coroapi.h * include/corosync/engine/objdb.h: mirror const-related changes to coroapi.h. FIXME: all of these identical API's should not be separately modifiable. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1922 fd59a12c-fef9-0310-b244-a6a79926bd2f totempg.c: remove one const-related warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1921 fd59a12c-fef9-0310-b244-a6a79926bd2f pload.c: make a couple functions/interfaces const-correct * services/pload.c: Remove unused file-scoped global "msg_no". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1920 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys_config_facility_set: make "name" parameter const git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1919 fd59a12c-fef9-0310-b244-a6a79926bd2f cfg.c: nearly warning-free git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1918 fd59a12c-fef9-0310-b244-a6a79926bd2f cpg.c: resolve almost all warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1917 fd59a12c-fef9-0310-b244-a6a79926bd2f timer.c: don't infloop upon poll failure (e.g., ENOMEM) * exec/timer.c (prioritized_timer_thread): Remove unreached call to pthread_exit after infloop. Return NULL for any poll failure other than EINTR. Use "continue" rather than an equivalent "goto". Return NULL upon failed pthread_setschedparam. This also avoids a warning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1916 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys: detect write failure and avoid a file descriptor leak * exec/logsys.c (logsys_log_rec_store): Close output file descriptor and detect any failure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1915 fd59a12c-fef9-0310-b244-a6a79926bd2f totemconfig: avoid a file descriptor leak in the common case * exec/totemconfig.c (read_keyfile): Don't leak a file descriptor. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1914 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-30 Fabio M. Di Nitto Fix pkgconfig generation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1913 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-25 Steven Dake Make all threads use same scheduling priority even with -p option specified to avoid deadlock in spinlocks. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1912 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-25 Christine Caulfield Fix IPC when running on mac OS/X Note that OS/X seems to be rather stingy about its IPC resources, so if things crash you will probably have to clean up before starting it all again. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1911 fd59a12c-fef9-0310-b244-a6a79926bd2f The IPC system smply concatenates SOCKETDIR with run/ so if th euser forgets to add a trailing slash to the name: eg ./configure --with-socket-dir=/var/run then the socket is created as /var/runcorosync.ipc This patch adds the slash into the name generation printf. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1910 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-24 Steven Dake Appears to fix compile errors on macosx. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1909 fd59a12c-fef9-0310-b244-a6a79926bd2f Change strcpy to sprintf to fix compile error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1908 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-24 Jim Meyering Do not perform arithmetic on "void*" pointers. * exec/vsf_ykd.c (ykd_deliver_fn): Do not perform "void*" arithmetic. * services/votequorum.c (quorum_deliver_fn): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1907 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid performing 'void *' arithmetic, and add a few const attributes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1906 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 6 warnings * services/votequorum.c (objdb_get_int): Make "key" const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1905 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 8 warnings * exec/totemconfig.c (objdb_get_string): Make "key" const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1904 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 9 warnings * test/logsysbench.c (bm_finish): Make parameter "const". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1903 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 13 warnings * exec/mainconfig.c (objdb_get_string): Make "key" const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1902 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid 22 warnings * exec/totemconfig.c (objdb_get_int): Make "key" const. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1901 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid compiler warnings * lcr/lcr_ifact.c (lcr_component_register): Remove decl of unused var. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1900 fd59a12c-fef9-0310-b244-a6a79926bd2f avoid infloop upon out-of-memory or out-of-semaphores * coroipc.c (cslib_service_connect): Upon shmget failure loop only when errno == EEXIST. Any other error now translates to res_setup.error. Likewise for semget. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1899 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-24 Fabio M. Di Nitto Make confdb log level consistent with the other services git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1898 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-23 Fabio M. Di Nitto Fix expansion order within the Makefile.am with the pleasent effect to avoid to include .lcrso files in make dist target git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1895 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-23 Jim Meyering autogen.sh: prefer "automake" over automake-1.9 * autogen.sh: ...and don't accept ancient versions of automake. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1893 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-23 Steven Dake Change dist to build corosync-trunk.tar.gz. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1891 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-22 Fabio M. Di Nitto Fix pkgconfig list of libraries we provide after ipc rework git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1890 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Steven Dake Change OPENAIS to COROSYNC in libversions definitions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1888 fd59a12c-fef9-0310-b244-a6a79926bd2f Change OPENAIS to COROSYNC in ipc ifdefs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1887 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow ipcc library to work on some arches which have different parameter passing requirements for enums. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1886 fd59a12c-fef9-0310-b244-a6a79926bd2f Abstracted Shared Memory IPC library git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1885 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-21 Steven Dake This patch fixes a crash in cpg.c where a group is left befopre cpg_finalise is called. It can cause the process_info structure to be removed twice from the group list. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1884 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-20 Jim Meyering avoid buffer overrun when there are more than 128 path entries * lcr_ifact.c (PATH_LIST_SIZE): Define. (path_list): Use it. (ld_library_path_build): Don't store into path_list[path_list_entries] if the counter is too large. (ldso_path_build): Likewise. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1883 fd59a12c-fef9-0310-b244-a6a79926bd2f don't store (and later deref) NULL upon strdup failure * lcr_ifact.c (ld_library_path_build, ldso_path_build): Handle strdup failure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1882 fd59a12c-fef9-0310-b244-a6a79926bd2f don't segfault upon failed strdup * sa-confdb.c (load_config): Handle out-of-memory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1881 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-20 Steven Dake Revert last change which broke corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1880 fd59a12c-fef9-0310-b244-a6a79926bd2f Reworked not to require stmt-after-decl support, plus another to fix a bug that would arise when parsing more than 128 paths. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1879 fd59a12c-fef9-0310-b244-a6a79926bd2f While looking at used of LCRSODIR, I saw an unchecked strdup. That could lead to a NULL dereference. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1878 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-19 Fabio M. Di Nitto - 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 Steven Dake Remove some unnecessary serializer functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1876 fd59a12c-fef9-0310-b244-a6a79926bd2f Dont clobber stck on strings with length of zero. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1875 fd59a12c-fef9-0310-b244-a6a79926bd2f Don't clobber stack on strings with length of zero. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1874 fd59a12c-fef9-0310-b244-a6a79926bd2f Updated TODO for corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1873 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-19 Fabio M. Di Nitto Fix corosync.pc installation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1872 fd59a12c-fef9-0310-b244-a6a79926bd2f Add missing libs from pkgconfig generation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1871 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix logsys SONAME git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1870 fd59a12c-fef9-0310-b244-a6a79926bd2f Don't use EXTRA_DIST in install/uninstall git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1869 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-18 Steven Dake Serialize access to service engines. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1868 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix coroapi.h header errors. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1867 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-18 Fabio M. Di Nitto Add missing uninstall-local targets and fix configuration intall target git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1866 fd59a12c-fef9-0310-b244-a6a79926bd2f More cleanup for distcheck to work git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1865 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-18 Christine Caulfield Add a dummy parameter to totemip_iface check so that it compiles on Darwin. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1864 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-18 Fabio M. Di Nitto Fix DARWIN_OPTS expansion git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1863 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix more soname= at linking Start fixing distcheck White space cleanups git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1862 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-17 Fabio M. Di Nitto - tidy up whitespaces - try to keep everything < 80 cols - stop installing testing lcrso - fix soname= invokation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1861 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix doc stuff git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1860 fd59a12c-fef9-0310-b244-a6a79926bd2f Update index.html to reflect new changes in man/Makefile.am git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1859 fd59a12c-fef9-0310-b244-a6a79926bd2f Drop tarball name from AC_INIT as it confuses the hell out of what we need git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1858 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix the whole manpage stuff git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1857 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for SOCKETDIR git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1856 fd59a12c-fef9-0310-b244-a6a79926bd2f Add corosync.pc support git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1855 fd59a12c-fef9-0310-b244-a6a79926bd2f remove hardcoded /var and use localstatedir instead. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1854 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-16 Fabio M. Di Nitto configure.ac: - Fix white space for --help. - Drop LCRSODIR as global and move it to local directory. all */Makefile.am: - export -DDIRECTORY_NAME as required (for now only LCRSO and SYSCONFDIR) top level Makefile.am: - drop hardcoded ETCDIR that is just wrong and use the configured one *.c files around: - drop hardcoded ETCDIR and use configured one. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1853 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix LCRSO handling git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1852 fd59a12c-fef9-0310-b244-a6a79926bd2f Make everything < 80 cols git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1851 fd59a12c-fef9-0310-b244-a6a79926bd2f remove comment fix quoting make GCC test portable git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1850 fd59a12c-fef9-0310-b244-a6a79926bd2f Major configure.in/ac cleanup git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1849 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-13 Fabio M. Di Nitto - Fix macro typo for PROG_CC_C_O. - add --enable-debug configure option to #define DEBUG 1 and set compiler options to default to -O0. - restore default -O3. - Drop some random leftovers (CC_IN_CONFIGURE, AISPREFIX, SSH path check and ppc64 -m64). - Remove yet another GCC test as -g is automatically detected by autoconf macros. - Cleanup a bit deprecated ARCH section. - Tidy up RESULT section. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1848 fd59a12c-fef9-0310-b244-a6a79926bd2f - remove --enable-static option as it is not required. This was a leftover from gcc-2.x something time. corosync binary should always be built dynamic. - fix quorum_* target as it was missing the list of objects to be linked in.. doh! - fix object dependencies between TARGET, TARGET_OBJS and TARGET_SRC. This also fixes the build/relink issues at install times that have been noted before. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1847 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-12 Steven Dake All integers received from objdb_get_int had invalid handle type. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1846 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Christine Caulfield Fix testconfdb use of object handles. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1844 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-12 Steven Dake Set correct OBJECT_PARENT_HANDLE define in coroapi.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1843 fd59a12c-fef9-0310-b244-a6a79926bd2f Add handle checking to the hdb system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1842 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix several errors in objdb notification handling, hdb_handle_t type conversion errors, indentation, and do hdb_handle_put after instance data is used instead of before. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1841 fd59a12c-fef9-0310-b244-a6a79926bd2f Use hdb_handle_t for handle type in service.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1840 fd59a12c-fef9-0310-b244-a6a79926bd2f Use hdb_handle_t for handle type in lcr_ifact. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1839 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-11 Fabio M. Di Nitto Fix library linking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1838 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix more build/install glitches git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1837 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-11 Steven Dake Fix broken error check in commit 1818. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1836 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-11 Fabio M. Di Nitto 1) kill all those "for" shell loops. They are dangerous (as they don't report install failures) and it's just overhead since $(INSTALL) can do the same. 2) make sure to create our directories with $(INSTALL). Not sure I did catch them all yet, but at least a good bunch. This also fix the corosync.conf install error I introduced in the previous commit. 3) Handle SONAME automatically. This is the most intrusive change across the board: * configure.in now defines the system wide SOMAJOR, SOMINOR, SOMICRO and SONAME and exports them to the Makefile. * exec/Makefile.am, lib/Makefile.am are now updated to use those vars rather than hardcoded version. 4) Bump the SOMAJOR to 3 as agreed since we did change both API and ABI. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1835 fd59a12c-fef9-0310-b244-a6a79926bd2f Dear pacemaker.. you will not take over this project! MUAHAH git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1834 fd59a12c-fef9-0310-b244-a6a79926bd2f Drop ld.conf file that is now unrequired git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1833 fd59a12c-fef9-0310-b244-a6a79926bd2f Readd pkgconfig subdir to the build system and port it to autoconf git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1832 fd59a12c-fef9-0310-b244-a6a79926bd2f Add entries to maintainer-clean target git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1831 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-11 Steven Dake Remove warnings from coroipc.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1830 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warnings from ipc.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1829 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-10 Christine Caulfield Fix some const warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1828 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-10 Fabio M. Di Nitto Add dynamic timestamp on/off git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1827 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-10 Steven Dake Remove const warnings in crypto.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1826 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove qualifier errors in main.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1825 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const warnings from uic system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1824 fd59a12c-fef9-0310-b244-a6a79926bd2f change some char * to const char * to match usage in system in lcr. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1823 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix const qualifiers in lcr_ifact.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1822 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix missing prototypes in totempg.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1821 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix missing prototypes in totemmrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1820 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix missing prototypes and mismatched prototypes in totemmrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1819 fd59a12c-fef9-0310-b244-a6a79926bd2f Add missing hdb_handle_put in totemsrp and handle errors in mkdir and chdir properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1818 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove string literal warnings from totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1817 fd59a12c-fef9-0310-b244-a6a79926bd2f Add missing prototypes in totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1816 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove pointer math warnings from totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1815 fd59a12c-fef9-0310-b244-a6a79926bd2f Define undefined prototypes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1814 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove string literal warnings from totemrrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1813 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const warnings from main.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1812 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove type casting to (char *) in logsys.h. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1811 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove pointer math from totempg. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1810 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove pointer math warnings from totemnet. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1809 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const warnings in totemip code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1808 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-10 Christine Caulfield Quorum checks the ring ID is new before initiating a sync. Unfortunately it copies the ring ID BEFORE checking it so there is always a match. Sigh This patch fixes it. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1807 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-10 Steven Dake Remove const warnings relating to logsys global definitions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1806 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove logsys warnings. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1805 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const warnings in totempg. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1804 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const warnings from totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1803 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove qualifier warnings regarding totemrrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1802 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove const/nonconst assignment warnings in totemnet. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1801 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove leftover from automake merge. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1800 fd59a12c-fef9-0310-b244-a6a79926bd2f Add missing committed file for automake. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1799 fd59a12c-fef9-0310-b244-a6a79926bd2f Automake. The journey begins. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1798 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-10 Fabio M. Di Nitto Add logsys_format_get to logsys API. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1797 fd59a12c-fef9-0310-b244-a6a79926bd2f logsys_format_set should use its own internal copy of format_buffer git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1796 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-09 Fabio M. Di Nitto Cleanup logsys format init around to use default settings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1795 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-06 Christine Caulfield The IPC patch broke CFG shutdown in several places, this patches fixes all of them. In particular, cfg_try_shutdown asks all applications that are registered for callbacks if they approve the shutdown. This caused a bit of a re-entrancy problem because it also asked the process that called for the shutdown! The patch causes cfg to only ask OTHER applications in the assumption that any application that calls corosync_cfg_tryshutdown() will approve of the action :-) In addition it adds the response to cfg_replyto_shutdown which was missing (it couldn't be used with the old system but is mandatory now), and removes a double-free in the library finalise code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1794 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-06 Steven Dake 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 Fabio M. Di Nitto Allow logsys_format_set to reset to default. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1792 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-06 Steven Dake Use list_del on process info in the condition that lib_exit_fn is called to prevent segfault from processes later processing that list entry. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1791 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-04 Fabio M. Di Nitto logsys: re-add support for timestamp that was lost in the upgrade from v1 to v2 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1790 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix logsys_set_format by updating the right bits git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1789 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-03 Fabio M. Di Nitto Fix uninitialized memory. Spotted by valgrind git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1788 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-03-03 Steven Dake Rework a bit of how lib_exit_fn works so that reference counts may be used in the exit functions for services such as cpg. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1786 fd59a12c-fef9-0310-b244-a6a79926bd2f Lock cpg ipc connections into memory on lib_init_fn and remove lock on lib_exit_fn. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1785 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-26 Christine Caulfield This patch fixes some minor bugs in the expected_votes behaviour and adds a couple of new features: - When total_votes exceeds the expected_votes value then expected_votes is increased to that value. - A callback can be sent to a client whenever expected_votes is changed git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1784 fd59a12c-fef9-0310-b244-a6a79926bd2f The current object database allows duplicate key names per object. This is a bit of a nightmare to manage and provides no useful functionality that I can see. Making keys unique has been discussed on IRC several times and there seem to be no objections...so here is the patch: Note that I have removed some now-useless parameters from the objdb API too. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1783 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-25 Steven Dake Unification around hdb_handle_t data type. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1782 fd59a12c-fef9-0310-b244-a6a79926bd2f Send configuration changes to CPG listeners. (regression in IPC patch). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1781 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-25 Fabio M. Di Nitto Install corosync-fplay and corosync-pload binaries git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1780 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-25 Steven Dake Fix possible segfault with IPC service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1779 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove extra printf debug. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1778 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-24 Steven Dake Remove installation of static libcoroipc.a. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1777 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix problem with 1722 commit which broke ipc. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1776 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-23 Christine Caulfield Move VOTEQUORUM_SERVICE to ipc_gen.h where it belongs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1775 fd59a12c-fef9-0310-b244-a6a79926bd2f When a quorum device registers it tells the corosync quorum engine of the new quorum which then tries to do a new sync(). But that's no use because the nodelist and ring_id is identical to before. Also it can try and register while a sync is already in operation ... which gets it awfully stuck! So this patch makes the sync conditional on there being a new ring ID to do a sync on. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1774 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-20 Christine Caulfield Fix problem in disallowed mode that prevented a HASSTATE node joining a cluster without state or vice-versa see Red Hat BZ#485026 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1773 fd59a12c-fef9-0310-b244-a6a79926bd2f Don't crash if a library tries to talk to a module that is not loaded git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1772 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow CPG messages to be sent on an inquorate cluster git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1771 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-19 Christine Caulfield Fix crash in confdb_finalize git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1770 fd59a12c-fef9-0310-b244-a6a79926bd2f Get rid of one crash in confdb. It still double-frees in confdb_finalize though. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1769 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix crashes in quorum_initialize & votequorum_initialize git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1768 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-19 Fabio M. Di Nitto Fix build error spotted by gcc-4.4 #elif with no clause is clearly wrong and continuing when we don't know the byte order only defers the problem to a point where its much harder to debug git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1767 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-19 Steven Dake Whitetank IPC Forward Port. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1766 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-18 Steven Dake Remove redundant statement in totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1764 fd59a12c-fef9-0310-b244-a6a79926bd2f Use definition instead of magic number. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1763 fd59a12c-fef9-0310-b244-a6a79926bd2f Update link for upstream crypto code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1762 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-18 Ryan O'Hara Add timer_expire_time_get Add timer_expire_time_get corosync API call. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1761 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-14 Ryan O'Hara Add timer_time_get to the corosync API. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1760 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-13 Christine Caulfield Add corosync_cfg_local_get() call to get the local NodeID in libcfg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1759 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-12 Ryan O'Hara Add TMR_SERVICE to the list of service_types. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1758 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-02-03 Christine Caulfield Fix "leave" function where the remaining nodes recalculate quorum when a node leaves. Also add a timeout to the leave flag. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1757 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-30 Fabio M. Di Nitto fix pkgconfig builddir creation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1756 fd59a12c-fef9-0310-b244-a6a79926bd2f Add .pc file support for corosync libs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1755 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-30 Christine Caulfield Add quorum_fd_get and votequorum_fd_get prototypes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1754 fd59a12c-fef9-0310-b244-a6a79926bd2f Make cfg_get_node_addrs return CS_OK rather than 0 when it succeeds. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1753 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-29 Christine Caulfield Fix votequorum_getinfo returning the wrong value for expected_votes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1752 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove the last bicapitalised name from cfg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1751 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-27 Christine Caulfield Don't automatically load the quorum service. This will, for the time being, unbreak synchronisation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1750 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-26 Steven Dake Fix node masking for 32 bit node ids. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1749 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow crypto to work on systems where unsigned long evaluates to 8 bytes. (s390x). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1746 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-26 Christine Caulfield Add the votequorum service git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1745 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-25 Steven Dake 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 Fix message rejection problem. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1743 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-23 Fabio M. Di Nitto cleanup handling of uid/gid config git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1742 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-23 Christine Caulfield Fix a couple of memory leaks The objdb occurred because object_find_destroy wasn't implemented! The one in confdb occurred because object_find_destroy wasn't called if object_find_next returned an error the first time it was invoked (ie there were no subobjects). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1741 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-23 Fabio M. Di Nitto fix logging reload operation and clean up main init git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1740 fd59a12c-fef9-0310-b244-a6a79926bd2f don't keep logsys fd open unless it's required git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1739 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-22 Christine Caulfield Install quorum.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1738 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-21 Christine Caulfield Install quorum library git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1737 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-20 Steven Dake Complete poll_stop function. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1735 fd59a12c-fef9-0310-b244-a6a79926bd2f Cancel token holding mode when a totem token callback is added to the system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1734 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-20 Christine Caulfield Add OBJDB_RELOAD_NOTIFY_FAILED which was missing from coroapi git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1733 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-19 Christine Caulfield Make all the bicapitalised names in cfg more sensible. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1732 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-16 Fabio M. Di Nitto Clean up tag handling and provide functions to match name with values and viceversa. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1731 fd59a12c-fef9-0310-b244-a6a79926bd2f restore the priority setting that was lost git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1730 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-15 Fabio M. Di Nitto Remove duplicate code and use the right library call into logsys that also cover cases that were not handled at all. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1729 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix small memory leak on config reload operations git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1728 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-14 Fabio M. Di Nitto Fix logsys write to file crash. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1727 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-14 Christine Caulfield add corosync_cfg_get_node_addrs() call. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1726 fd59a12c-fef9-0310-b244-a6a79926bd2f Add some mussing pthread_mutex_lock() calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1725 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-08 Christine Caulfield Build testquorum on Darwin git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1724 fd59a12c-fef9-0310-b244-a6a79926bd2f Don't always overwrite /etc/corosync.conf when make install is run. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1723 fd59a12c-fef9-0310-b244-a6a79926bd2f If there was a quorum {} section in corosync.conf but no provider specified then we would always report inquorate. This was wrong, if no provider is specified then we are always quorate. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1722 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-08 Steven Dake Patch to allow cpg_membership_get to work properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1721 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-07 Angus Salkeld Fix coverity bug ID 6: FORWARD_NULL git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1720 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-07 Fabio M. Di Nitto Check against the right var and silence a few warnings at build time git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1719 fd59a12c-fef9-0310-b244-a6a79926bd2f 2009-01-06 Angus Salkeld Fix coverity bug ID 9: OVERRUN_STATIC CID: 9 Checker: OVERRUN_STATIC (help) File: lib/cfg.c Function: corosync_cfg_service_unload Description: Overrun of static array "&(req_lib_cfg_serviceunload).service_name" of size 1024 bytes by passing it to a function which indexes it with argument "1023" at byte position 4088 The main problem here is the way the service_name is defined: - char *service_name[256] __attribute__((aligned(8))); + char service_name[256] __attribute__((aligned(8))); git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1718 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-28 Angus Salkeld Fix coverity bug ID 4: remove unused code & fix compile error In evs_dispatch() the local ignore_dispatch is not used. So I have removed this code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1717 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix coverity bug ID 1: overused local variable coverity says that in exec/objdb.c: 1075 the found is always == 1 therefore the code is dead. But this is just a case of an overused local variable. "found" is used for two different searches. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1716 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix coverity bug ID 7: add NULL pointer check Here coverity checks that if in a function a pointer is checked for NULL then it is checked through out the function. So below I have just add some more checks for NULL. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1715 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix coverity bug ID 5 In poll_timer_add() if you pass in a NULL for the callback function the pointer will be dereferenced. I have moved the check for the NULL up. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1714 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-19 Christine Caulfield If there is no quorum provider specified, then always return quorate. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1713 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-18 Christine Caulfield If we exit with an error, set the returned status code for the shell. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1712 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-17 Angus Salkeld Don't segfault if the ais group is not found. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1711 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-17 Christine Caulfield Add config reload support for logsys If objdb is reloaded, then we re-parse the logging options. This allows logging options to be changed/enabled/disabled without restarting corosync git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1710 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-12 Christine Caulfield This patch adds this capability for a limited number of totem keys using the existing reload mechanism. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1709 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-11 Christine Caulfield Install quorum.h file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1708 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-09 Christine Caulfield Add another missing file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1707 fd59a12c-fef9-0310-b244-a6a79926bd2f Add some missing files, sorry git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1706 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-08 Steven Dake Patch to fix compilation of macosx and linux in some platform configurations. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1705 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-08 Christine Caulfield quorum is now an optional loadable module (though I've put it into the defaults in services.c) and can load another module to do the quorum work (eg YKD which I've made more compliant too). All the quorum code has been removed from sync.c. quorum.c is simply a shim later for the coroapi, the main module is in vsf_quorum.c There are coroapi calls to query quorate status and also to get notifications when it changes. I've included the testquorum.lcrso module in this patch because I think it's really helpful for testing. It sets the quorum state based on an objdb variable, this can be set or cleared using corosync-cfgtool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1704 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-02 Steven Dake Fix deadlock in logsys during startup. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1703 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-02 Andrew Beekhof Correctly compare local addresses with bindnetaddr This patch allows whitetank/corosync to behave correctly when the supplied value of bindnetaddr has more precision than the netmask, but is not a full IPv4 address. For example, currently, if the netmask is /16 but the user specifies 192.168.1.0, then OpenAIS is unable to determine the correct address and uses the loopback address instead. The following patch allows OpenAIS to correctly determine which interface/address to use. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1702 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-12-01 Angus Salkeld 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 depending on your ip address, cpg doesn't always send config changes If you ip addresses are larger than 0xffffff then you will never get sent group leave notifications. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1700 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-13 Christine Caulfield Don't crash if we get a message for a service that isn't loaded. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1699 fd59a12c-fef9-0310-b244-a6a79926bd2f Make the port numbers into Network Byte Order. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1698 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-12 Angus Salkeld LINT: fix confd_sa API error. remove extra parent_object_handle parameter. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1697 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-11 Angus Salkeld LINT: fix "Assignment of ssize_t to int" warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1696 fd59a12c-fef9-0310-b244-a6a79926bd2f LINT: tweek the lint make rules. Makefile.inc: add -unrecog (don't complain about things like strdup(). tools/Makefile: don't use *.c as it complains about duplicate main() functions git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1695 fd59a12c-fef9-0310-b244-a6a79926bd2f LINT: rename the overlay struct so they are uniq. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1694 fd59a12c-fef9-0310-b244-a6a79926bd2f LINT: fix or ignore unchecked return values. If we don't care about the return value then typecase the return value to void. Else do something useful with the return value. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1693 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-10 Steven Dake 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 Fix received_flg to contain proper values. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1691 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-07 Angus Salkeld Add corotype.h and delete saAis.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1690 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-06 Angus Salkeld cleanup the last of the SAF headers and types This includes the rename of identifiers from corosync to cs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1689 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-06 Steven Dake Make width of service 6 bytes instead of 5. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1688 fd59a12c-fef9-0310-b244-a6a79926bd2f Null terminate string which resulted in failure of confdb during logging. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1687 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-04 Angus Salkeld Make lib/ clean up after itself properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1686 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-11-01 Angus Salkeld fix build error, can't complie if openais not installed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1685 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a top level "make lint" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1684 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-31 Christine Caulfield This patch adds two extra features to the CFG service in corosync, these are taken (conceptually at least) from cman. 1. corosync_cfg_killnode() this will tell a remote node to exit. 2. corosync_cfg_tryshutdown() this will do a semi-controlled shutdown in that it will consult any interested attached daemons if they are willing to let corosync be shut down. If they all agree then the rest of the cluster will be informed before the node dies. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1683 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-30 Steven Dake performance loading service engine first implementation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1682 fd59a12c-fef9-0310-b244-a6a79926bd2f Logsys flight recorder. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1681 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-30 Angus Salkeld Fix a memory violation in objdb (caught by valgrind) If the new length is larger then memory will be overwritten. I could make this ">=" but we can save memory if the new size is smaller by using "!=". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1680 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-27 Christine Caulfield Improve the usage message of corosync_objctl. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1679 fd59a12c-fef9-0310-b244-a6a79926bd2f Currently if a reload operation fails, any subsystems listening for notifications will get a RELOAD_NOTIFY_START callback but not a RELOAD_NOTIFY_END callback. This patch adds a RELOAD_NOTIFY_FAILED callback so that interested parties will know when the reload has finished and that it failed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1678 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-21 Angus Salkeld remove some new warnings from corosync git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1677 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove unused global debug option from the man page. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1676 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-20 Steven Dake Remove unneeded totem_timeout_types global define. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1675 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-13 Christine Caulfield This is an initial pass at a top-level quorum system. As it stands, this module doesn't provide quorum itself, merely a framework for setting and querying it. I envisage YKD plugging into this rather than straight into sync() eventually. I've plugged this into the sync() routines rather than replacing them so that quorum is itself a VSF, rather than a replacement - I'm not sure if that is best or not. Opinions are welcome. I've added an extra enum member to the service_handler so that we can send IPC messages when the cluster isn't quorate. This will default to NO (as now) but allows us to query and set quorum when we don't have it .. a useful feature ! git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1674 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-06 Christine Caulfield Add locking around objdb calls so that reloads and writes are atomic. Also add a notification callback for reload. Both the start and the stop are notified so that the user can decide what to do with the flurry of updates that occur. Note than the reload callback notification MUST be registered against OBJECT_PARENT_HANDLE. Registering it lower down the hierarchy makes no sense. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1673 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix some compile warnings. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1672 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-10-05 Steven Dake Fix CFLAGS and LDFLAGS overrides to work for DEBUG and RELEASE modes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1671 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-09-25 Steven Dake Fix makefile error in test directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1669 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-09-23 Steven Dake Add evs verify tool and allow Makefile to build in test directory properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1668 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-09-17 Angus Salkeld Propagate the flow control state between AIS exec and library This patch causes the flow control state in the library to be set properly when the flow control is turned off (disabled). Then it can be read properly by the flow control apis. This also fixes the case where the application is no longer sending messages and it has already dispatched all its received messages before flow control is disabled. Also, CPG response messages with a TRY_AGAIN error did NOT contain a valid flow control state value. This meant the library could get stuck with flow control enabled (flow control was never enabled for the EXEC, so no disable event occurred). This case was hit when a new node was joining - sync_in_process() resulted in a TRY_AGAIN for error cpg_mcast_joined). Also, in message_handler_req_exec_cpg_mcast() the state passed back to the library defaulted to disabled for messages received from another node (even if flow control was still enabled) - this meant if multiple nodes were sending CPG messages, then the library flow control state flip-flopped between enabled and disabled. Author: Steven Dake & Tim Beale git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1667 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for AMF (sync_request) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1666 fd59a12c-fef9-0310-b244-a6a79926bd2f If syslog() blocked, node-leave events were incorrectly reported In some cases, the syslog() call may block. If this happened, the AIS worker thread would block waiting on the syslog() call. However, the worker thread is still holding a logsys mutex, which is needed to enqueue any more log messages from the other AIS threads. So the main AIS thread blocks waiting on the logsys mutex. This can then cause aisexec on other nodes to detect the node as leaving the cluster. Author: Tim Beale git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1665 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-09-16 Fabien Thomas use getifaddrs to enumerate interface on FreeBSD and Darwin (patch from Mathieu Virbel) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1664 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-09-03 Christine Caulfield Reinstate key_iter_reset that got removed by mistake in 1660 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1663 fd59a12c-fef9-0310-b244-a6a79926bd2f This patch adds key_increment and key_decrement calls to the objdb and confdb subsystems. This is useful to provide atomic counters (ag handle numbers) for long-running (though not persistent) connections. It's not currently possible via confdb to atomically get a new number from objdb due to the lack of locking. Doing it via increment operations in the IPC thread provides enough atomicity to make it useful. Fabio has already identified a use for these calls. It could also provide some form of basic co-operative locking mechanism for IPC-using processes (not direct objdb calls). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1662 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-27 Christine Caulfield Fix the names of confdb_object_find_destroy and confdb_object_iter_destroy. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1661 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-26 Christine Caulfield Remove the disliked *_from calls from the objdb and recast the confdb library to use the new find_create/find_next/find_destroy API calls instead. I've kept the libcondfb API the same as before with the single change of adding a confdb_object_find_destroy to tidy up the find handle after use. If you don't call this then libcondfb will do it for you when confdb_finalize is called. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1660 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-20 Angus Salkeld Zero out unused totemsrp my_proc_list entries When making my_proc_list smaller, ensure that the now non-used entries are zero-ed out. There are some suspect assert's that assume that there is always 2 entries in the list. These fail when my_proc_list is reduced to 1 entry (and the valid [0] entry is the same as the 'unused' [1] entry). Author: Mark Wutzke git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1659 fd59a12c-fef9-0310-b244-a6a79926bd2f aisexec crash on exit Cause: As part of its exit procedure, ais cancels its worker thread then manually processes any outstanding items that were still in the worker thread's queue. The worker thread has a low priority so normally it does not execute any further before ais finishes exiting, but if the main thread's exiting is delayed for any reason, there is a chance the worker thread could execute and try to process items which have already been processed and freed by the main thread - often leading to the worker thread seeing NULL data and ultimately causing a segmentation fault. Fix: Modified worker_thread_group_exit() so it does a pthread_join() after the pthread_cancel() call, so that the worker thread always shuts down cleanly before the main thread does its cleanup. Author: Author: Mark McKinstry git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1658 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix to display strings safely in debug messages. Display strings safely, even if they are invalid, e.g. data in a received message was corrupted. Author: Tim Beale git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1657 fd59a12c-fef9-0310-b244-a6a79926bd2f Provide a way to configure (at compile time) message and queue sizes. This patch makes it possible to override the following #defines: MESSAGE_SIZE_MAX MESSAGE_QUEUE_MAX SIZEQUEUE FLOW_CONTROL_ENTRIES_ENABLE If MESSAGE_SIZE_MAX is defined as 1024*64 (64K) and MESSAGE_QUEUE_MAX defined as 512 you can change corosync's memory footprint from ~48M to ~8M So if you define MESSAGE_QUEUE_MAX, the queue size will not be based on the message size any more. To use this define the defines on the command line: make CFLAGS="-DMESSAGE_SIZE_MAX=1024*64 -DMESSAGE_QUEUE_MAX=512" git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1656 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix an assert caused by faulty sort-queue management. sq.h - sq_items_release(): When clearing the items_inuse array, ensure that all of the memory is cleared. items_inuse is a uint array, not a byte array. Author: Mark Wutzke git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1655 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-15 Steven Dake Repair typo which caused init script not to start corosync daemon. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1649 fd59a12c-fef9-0310-b244-a6a79926bd2f Make rpmlint pass without warnings. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1648 fd59a12c-fef9-0310-b244-a6a79926bd2f Set the override for LCRSODIR properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1647 fd59a12c-fef9-0310-b244-a6a79926bd2f Finish the renaming of openais to corosync in the tree. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1646 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-14 Steven Dake Fix build breakage. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1645 fd59a12c-fef9-0310-b244-a6a79926bd2f New and improved loc command. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1644 fd59a12c-fef9-0310-b244-a6a79926bd2f New LOC command. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1643 fd59a12c-fef9-0310-b244-a6a79926bd2f turn on executeable bit for loc. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1642 fd59a12c-fef9-0310-b244-a6a79926bd2f Install saAis.h header file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1641 fd59a12c-fef9-0310-b244-a6a79926bd2f Update svn commit scripts so they work properly and have proper permissions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1640 fd59a12c-fef9-0310-b244-a6a79926bd2f Move QUICKSTART to proper directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1639 fd59a12c-fef9-0310-b244-a6a79926bd2f Few man page cleanups and removal of amf.conf.5. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1638 fd59a12c-fef9-0310-b244-a6a79926bd2f Proper rename of openais usage to corosync throughout tree. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1637 fd59a12c-fef9-0310-b244-a6a79926bd2f Revert patch 1633 which breaks build. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1636 fd59a12c-fef9-0310-b244-a6a79926bd2f Move openais* to corosync* in man pages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1635 fd59a12c-fef9-0310-b244-a6a79926bd2f Build corosync-keygen. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1634 fd59a12c-fef9-0310-b244-a6a79926bd2f 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 Fabien Thomas 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 Fabio M. Di Nitto Revert config_verifyconf logic that is unnecessary git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1631 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-13 Christine Caulfield Change AIS names to corosync git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1630 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-13 Fabio M. Di Nitto Add support for reload operations within objdb and plugins. Use a 2 phase "commit" operation: 1) Invoke verifyconfig that should catch the errors before the reload operation 2) Invoke reloadconfig that performs the operation and should _never_ fail Implementation note: if step 2 fails, there is no fall back at the moment. Fix the IPC table for confdb: MESSAGE_REQ_CONFDB_XPATH_EVAL_EXPRESSION = 12 was added to include/ipc_confdb.h without an associated call. Thanks Chrissie for spotting this. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1629 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-12 Steven Dake Add some totem process group interfaces to the API. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1628 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-12 Fabio M. Di Nitto objdb: change list_add to list_add_tail when adding keys and objects service: change openais_service_unlink_all to deal with the new objdb order cleanup a few whitespaces git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1627 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-06 Steven Dake Add module load and unload to the exported coroapi. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1626 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-05 Steven Dake Add callback notification about changes to the object db and confdb apis. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1625 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-05 Fabio M. Di Nitto Fix crash in logsys new API logsys_config_priority_set lacked a check for logsys_single_id that left logsys_subsys_id uninitialized. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1624 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix toplevel Makefile install target - objctl is now called corosync-objctl - keygen has been renamed corosync-keygen - install corosync-cfgtool as part of the standard tools now git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1623 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-05 Steven Dake Split openais and corosync tree into two seperate repositories. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1622 fd59a12c-fef9-0310-b244-a6a79926bd2f Make mar_name_t an inline function to remove warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1621 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-04 Steven Dake Allow msg service test applications to build properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1620 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix errors in lib linking. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1619 fd59a12c-fef9-0310-b244-a6a79926bd2f Add a missing confdb_key_delete function to the confdb api. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1618 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge Angus's corosync-objctl tool and move cfgtool to a different directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1617 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-08-01 Patrick Caulfield Fix the spelling of 'guarantee' in several places. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1616 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-24 Steven Dake Final fixup to build all things properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1613 fd59a12c-fef9-0310-b244-a6a79926bd2f openais now builds when make install is done from corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1612 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge the object iteration repair patch into corosync so openais services load. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1611 fd59a12c-fef9-0310-b244-a6a79926bd2f Add files missing from build but in dev repo. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1610 fd59a12c-fef9-0310-b244-a6a79926bd2f Building of all service engines now works properly. Install works as well. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1609 fd59a12c-fef9-0310-b244-a6a79926bd2f Improve runtime loading of parser and move versions files to corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1608 fd59a12c-fef9-0310-b244-a6a79926bd2f Add MESSAGE_SIZE_MAX to coroapi file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1607 fd59a12c-fef9-0310-b244-a6a79926bd2f Make external service engines (openais) work properly. Also fix up make install. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1606 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Angus to make corosync build for his environment. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1605 fd59a12c-fef9-0310-b244-a6a79926bd2f Add API definitions file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1604 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge the API definitions of the objdb into the corosync api definition. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1603 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-23 Steven Dake The entire tree builds properly and all services have been ported to the new coroapi.h include header. The services shipped with corosync are CPG, CFG, CONFDB, and EVS. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1602 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-22 Steven Dake Make from top level directory now works. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1601 fd59a12c-fef9-0310-b244-a6a79926bd2f API changes and code to make cfg and cpg service operate properly with corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1600 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-21 Steven Dake Cause libraries to build. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1599 fd59a12c-fef9-0310-b244-a6a79926bd2f Set default services to load. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1598 fd59a12c-fef9-0310-b244-a6a79926bd2f Add the default corosync parser. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1597 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename AIS parts to Corosync. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1596 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename aispoll to coropoll. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1595 fd59a12c-fef9-0310-b244-a6a79926bd2f corosync/exec builds. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1594 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove depends in Makefile. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1593 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial makefile for corosync plugin service engines. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1592 fd59a12c-fef9-0310-b244-a6a79926bd2f Move services around to service directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1591 fd59a12c-fef9-0310-b244-a6a79926bd2f move README.amf into openais directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1590 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove unnecesssary files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1589 fd59a12c-fef9-0310-b244-a6a79926bd2f Add makefile and loc infrastructure to openais directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1588 fd59a12c-fef9-0310-b244-a6a79926bd2f Add license file to openais tree. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1587 fd59a12c-fef9-0310-b244-a6a79926bd2f Move mismove to proper location. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1586 fd59a12c-fef9-0310-b244-a6a79926bd2f Move test, lib, exec, and include files that are openais specific into openais directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1585 fd59a12c-fef9-0310-b244-a6a79926bd2f Put conf directory in openais directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1584 fd59a12c-fef9-0310-b244-a6a79926bd2f Move test directories and remaining loc files to test directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1583 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial move of corosync and openais trees into seperate directories. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1582 fd59a12c-fef9-0310-b244-a6a79926bd2f Test queue group tracking feature. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1581 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ability to track changes to queue groups in the messaqge service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1580 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-14 Steven Dake Allow setting of the logsys priority to one lower then was already specified. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1579 fd59a12c-fef9-0310-b244-a6a79926bd2f Revert incorrect patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1578 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow setting of lower priority which is currently disabled. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1577 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow users of logsys to disable output of logging LOG_LEVEL_DEBUG messages via log_mode_set. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1576 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-11 Patrick Caulfield * Adds documentation for the LOG_MODE_NOSUBSYS mode flag, * Adds documentation for the LOG_MODE_SHORT_FILELINE mode flag, and * Fixes (typo) 'declartion' -> 'declaration' -- Lon git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1575 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-11 Steven Dake Fix error in a previous logsys patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1574 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-07 Patrick Caulfield Add a missing object_find_reset() call. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1573 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-03 Steven Dake Add init/config entry points for those that dont with to use macros in logsys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1572 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-02 Patrick Caulfield Add cpg_groups_get call to libcpg. This call causes a complete list of active groups and their membership lists to be sent to a callback function. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1571 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-02 Steven Dake Add two new modes LOG_MODE_SHORT_FILELINE and LOG_MODE_NOSUBSYS. LOG_MODE_SHORT_FILELINE strips the leading path from the file name in a debug output. LOG_MODE_NOSUBSYS removes a global variable and provides the ability to set or unset this via config_mode_set. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1570 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-07-01 Patrick Caulfield this patch fixes a segfault/crash in confdb_write. If the operation is succesful there is no need to set error_string. If error_string is not set, don't try to access it or we crash. At the same time perform the same check in libconfdb when we receive the reply. Fabio git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1569 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-06-24 Steven Dake Allow syslog priority configurations per subsystem in logsys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1568 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warnings of unused variables in main.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1566 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow make in the exec directory to work even if root/lcr isn't yet built. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1565 fd59a12c-fef9-0310-b244-a6a79926bd2f Add #include assert.h to some AMF files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1564 fd59a12c-fef9-0310-b244-a6a79926bd2f Forward port of the synchronization engine into trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1563 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix a ton of bugs in totem by forward porting the whitetank totem code into trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1562 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove totemip.h reference from file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1561 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove totemip reference from file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1560 fd59a12c-fef9-0310-b244-a6a79926bd2f remove totemip.h reference from file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1559 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix unlock_algorithm in lock service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1558 fd59a12c-fef9-0310-b244-a6a79926bd2f Improve the async version of locking library patch from Xinwei Hu. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1557 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Xinwei Hu to clean up test locking program. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1556 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-06-20 Steven Dake Allow user to retrieve logsys mode. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1555 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove extra unneeded configuration option from logsys. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1554 fd59a12c-fef9-0310-b244-a6a79926bd2f Use logsys_facility_id_get to do the string conversion instead of doing it in the openais configuration parser. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1553 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-06-13 Steven Dake Message service implemntation - more apis now supported. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1552 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-20 Steven Dake Fix linking of other projects against logsys on ppc64. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1550 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove exit when logsys files can't be created. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1549 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-14 Steven Dake Fix loading of multiple objects. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1547 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-12 Steven Dake Repair invalid commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1545 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ckpt service back in from incorrect patch that was committed found during tesitng of rpm of 0.83-1.fc10. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1544 fd59a12c-fef9-0310-b244-a6a79926bd2f Change all email addresses that were sdake@mvista.com to sdake@redhat.com. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1541 fd59a12c-fef9-0310-b244-a6a79926bd2f Repair loading of external services. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1540 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove executable permission from flow.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1539 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-09 Steven Dake Patch to remove segfault on the exiting of a service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1538 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to allow controlled exit of a service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1537 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-07 Patrick Caulfield Expose confdb write to the library. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1536 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-06 Patrick Caulfield Add LDFLAGS to libconfdb linking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1535 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-05 Steven Dake Execute a test of the makefile system from Angus git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1534 fd59a12c-fef9-0310-b244-a6a79926bd2f Apply suggestion from Andrew for srcdir functionality. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1533 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-05-02 Steven Dake Allow make from the exec directory. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1532 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-30 Patrick Caulfield Allow libconfdb to run standalone (without aisexec) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1531 fd59a12c-fef9-0310-b244-a6a79926bd2f Add writeback call to objdb git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1530 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-29 Steven Dake Fix build error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1529 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-28 Steven Dake load and unload service engines at runtime. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1528 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to add new api to logsys to get priority names from subsystem names. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1527 fd59a12c-fef9-0310-b244-a6a79926bd2f Change initialization order for logsys logging to files to work properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1526 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-23 Steven Dake Fix building on OSX git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1525 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix syscall usage for keygen application git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1523 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-23 Patrick Caulfield Fix logsys_config_priority_set() so that it sets the priority of the local subsystem and not always "MAIN". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1522 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-22 Steven Dake Build on latest glibc. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1520 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-21 Steven Dake Patch to reinitialize logsys internal variables after a fork for correct operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1519 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-17 Patrick Caulfield Add man pages for confdb functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1518 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix some typos in the CPG man pages git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1517 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-04-16 Patrick Caulfield Add confdb, a library to access the configuration object database. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1516 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix locking in logsys. Patch from Fabio M. Di Nitto git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1515 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-03-10 Patrick Caulfield Add some new calls into objdb. These allow replacing/removing keys, and deleting a whole object subtree, iterator functions to enumerate all objects/keys on an object, and a dump call for debugging. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1505 fd59a12c-fef9-0310-b244-a6a79926bd2f 2008-01-08 Steven Dake Patch to install liblogsys git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1495 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove closing of ttys that slipped in improperly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1494 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-12-10 Steven Dake srcdir is not set when realpath & abspath don't work git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1492 fd59a12c-fef9-0310-b244-a6a79926bd2f Force logging to stderr if the -f flag is specified. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1491 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow multiple config plugins to be loaded at start time and set the config object database objects. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1490 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-11-28 Steven Dake fix install broken when O= is used git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1489 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to make sure make clean works as advertised. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1488 fd59a12c-fef9-0310-b244-a6a79926bd2f Properly daemonize and dup file descriptors to /dev/null. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1487 fd59a12c-fef9-0310-b244-a6a79926bd2f Make sure to unlock the handle database on a failure condition. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1485 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to set system from field properly in retransmitted messages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1484 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove & when regular reference works properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1483 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to not increment the ring seq id on the first operational ring. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1482 fd59a12c-fef9-0310-b244-a6a79926bd2f make install now works properly on systems which produce wierd uname results git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1481 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-10-25 Fabien Thomas add missing objdb for static build git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1476 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-10-22 Steven Dake Patch to provide generic init script that is generically useful for most distributions or can be used as a starting point for making a distribution custom init script. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1475 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to close all open files on background run operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1474 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix missing commit from timer.c in trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1472 fd59a12c-fef9-0310-b244-a6a79926bd2f Endian convert downlist messages from cpg. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1470 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-10-16 Fabien Thomas correct ifdef that must be ifndef because under FreeBSD alloca.h is in stdlib.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1468 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-10-10 Patrick Caulfield Remove some includes from .h files so they can be installed. Also install flow.h & ipc.h for external services. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1467 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix openais.conf example and man page to match the new logsys directives. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1466 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-10-02 Steven Dake Fix problem where adding a timer in a timer callback would lock system and also timer additions were not protected by mutex because of backwards pthread_equal comparison. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1463 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-09-28 Steven Dake segfault does not use source.conn unless the originating request is local. The actual code tries to dereference pointers created on another node. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1462 fd59a12c-fef9-0310-b244-a6a79926bd2f lock_algo queues lock requests rather than ignoring them if an exclusive lock is held on a resource. This led to stale processes trying to acquire an exclusive lock forever. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1461 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to fix dependencies in build of test programs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1460 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix linking of library objects. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1459 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-09-27 Steven Dake Allow override of the LCRSO directory from the Makefiles or command line git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1458 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix static libs installation logic inversion git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1457 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile system improvements from Angus Salkeld git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1456 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-09-20 Patrick Caulfield Install logsys.h rather than print.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1454 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-09-15 Steven Dake Fix reference counting in LCR code. Also fix problem with inability to compile from the exec directory because PREFIX wasn't defined for lcr_ifact.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1451 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow missing spots in the synchronization engine git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1448 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes the following problems: 1) the encapsulated and not encapsulated values for multicast messages are now enumerated instead of magic number. 2) the endian detector is now set for new encapsulated messages intended for transmission. previously these messages would use whichever endian detector value happened to be in memory which could be a) correct endian b) incorrect endian from another machine byte order message c) junk values. 3) The retransmission flag is not set by default on new originated tokens in the recovery state. Instead it is set based upon whether the node actually can retransmit any messages. 4) some workaround code was removed that was necessary to make the system work when #3 was incorrect 5) the my_install_seq and my_aru fields are compared based upon a window instead of static comparison because it could be that the my_aru is 0xFFFFFF5 where my_install_seq is 5. In this case (after a lot of messages are sent) the comparison would return the incorrect result in the recovery phase of the algorithm. 6) The queue chosen for adding messages to the retransmission queue is now set based upon the encapsulated bit rather then the current state of the state machine. 7) the encapsulated bit is set properly in an endian conversion operation for a multicast message header. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1447 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-09-11 Steven Dake Add missing files from the ais utils exporting patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1445 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-09-09 Steven Dake Calculate the default path based on the project value of PREFIX git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1444 fd59a12c-fef9-0310-b244-a6a79926bd2f Ensure DESTDIR and PREFIX are properly used in Makefiles git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1443 fd59a12c-fef9-0310-b244-a6a79926bd2f Expose utils to the user git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1442 fd59a12c-fef9-0310-b244-a6a79926bd2f Now that -l is set correclt yuse #include instead of using quotes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1441 fd59a12c-fef9-0310-b244-a6a79926bd2f Static libraries become out of date on Darwin once they are copied or moved git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1440 fd59a12c-fef9-0310-b244-a6a79926bd2f Use makefile loops where possible git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1439 fd59a12c-fef9-0310-b244-a6a79926bd2f Provide information as to why a plugin refused to load git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1438 fd59a12c-fef9-0310-b244-a6a79926bd2f Add extra brackets to clarify scope. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1437 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix build dependencies git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1436 fd59a12c-fef9-0310-b244-a6a79926bd2f If iface_ver0_p is not reset, then as long as the first plugin loads then all subsequent plugins will report success. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1435 fd59a12c-fef9-0310-b244-a6a79926bd2f Missing stdlib.h from lcr_ifact.c. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1434 fd59a12c-fef9-0310-b244-a6a79926bd2f HZ not always defined on all Linux systems. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1433 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to allow CFLAGS and LDFLAGS modifications to take effect git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1432 fd59a12c-fef9-0310-b244-a6a79926bd2f Logsys testing system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1431 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes for the logsys system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1430 fd59a12c-fef9-0310-b244-a6a79926bd2f The man page for the logsys logging system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1429 fd59a12c-fef9-0310-b244-a6a79926bd2f The logsys logging system. Read logsys_overview.8. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1428 fd59a12c-fef9-0310-b244-a6a79926bd2f totem srp merge from whitetank git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1427 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to log security warnings when invalid identifier is used in message header for a totem message. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1425 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix problem in synchronization engine which results in possible failures of the synchronization engine. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1424 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-08-24 Steven Dake Patch to allocate event dispatch data in saEvtInitialize instead of directly on the stack for small thread-stack sized dispatch functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1421 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-08-11 Steven Dake Patch to not overwrite defualt configuration file or amf.conf file when executing make install git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1420 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow make doxygen to work properly git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1418 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to add amf_strdup instead of malloc and then copy for amf service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1417 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-08-08 Steven Dake Fix minor leaks caused by not calling pthread_mutex_destroy throughout the tree. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1412 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to fix compile warning on mac platforms. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1411 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-07-02 Steven Dake Add the testcpg2 file missing from a previous commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1405 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-07-02 Fabien Thomas remove warnings under Darwin for missing includes and too many parameters in TRACE2 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1404 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-25 Patrick Caulfield Clear pid when we leave a process group git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1399 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-25 Steven Dake Fix bug where if checkpoint section is expired about the same time as a checkpoint is deleted, a warning would be displayed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1398 fd59a12c-fef9-0310-b244-a6a79926bd2f Update testckpt program to properly test checkpoint system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1397 fd59a12c-fef9-0310-b244-a6a79926bd2f Add cpg_local_get api to cpg service git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1391 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-24 Steven Dake Add IP address takeover as an AMF component git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1388 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-23 Steven Dake Add passive monitoring support to AMF. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1386 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-14 Patrick Caulfield Add man pages for cpg_context_* and fix library exports to include them too. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1385 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-13 Patrick Caulfield Install the timer.h file so it can be used by external services and remove a dependency on tlist.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1384 fd59a12c-fef9-0310-b244-a6a79926bd2f Currently saLckResourceUnlockAsync leaves the lockid in the handle database even when the lock has been unlocked. This can cause exec crashes if the lock is unlocked twice. This patch adds an extra field to the res_lib_lck_resourceunlockasync structure so that the library can remove the lock from the handle database when the lock is unlocked successfully, as well as code to do it, obviously. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1383 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-12 Fabien Thomas repair BSD/Darwin build by moving HZ constant in tlist.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1381 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-05 Patrick Caulfield Cast away a compile warning git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1380 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-06-05 Steven Dake Remove this_ip from the source tree and replace with accessor functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1379 fd59a12c-fef9-0310-b244-a6a79926bd2f Change timers to add duration and absolute timers. Use nanoseconds since epoch to track timers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1378 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-05-31 Patrick Caulfield Add get/set context API calls to the cpg service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1377 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-05-30 Patrick Caulfield Don't try and remove a lock from a list if it's not on one, but DO remove it from the resources list when it gets unlocked. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1376 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-05-22 Steven Dake Sanitize the ETCDIR usage in the Makefiles. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1375 fd59a12c-fef9-0310-b244-a6a79926bd2f Use rync -a when cp -a is not available on MAC OSX platform install git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1374 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-05-18 Patrick Caulfield This patch fixes the marshalling of lock names in libSaLck, they were copied using memcpy, but the alignment of a mar_name_t is not necessarily the same as SaNameT. This patch changes memcpy() to marshall_to_mar_name_t(). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1373 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-05-17 Steven Dake on 32 bit platforms, the message source conn info could have uninitialized values. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1371 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-05-05 Patrick Caulfield In trunk, totemip.h and totem.h call for "../include/swab.h" - this works fine when building openais itself but causes problems when installed as those files will not be in the right place. So, I've moved these includes out of totemip.h and totem.h and into the .c files that call them. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1370 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-04-25 Steven Dake Fix section iteration size comparison git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1367 fd59a12c-fef9-0310-b244-a6a79926bd2f Print Unknown Time if the time is unknown of an event. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1366 fd59a12c-fef9-0310-b244-a6a79926bd2f Change tab alignment on checkpoint write operation to match coding style guidelines git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1365 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes problem where if attributes list is zero, library would segfault git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1362 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-04-22 Steven Dake change references to evs to cpg to match API git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1361 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-04-21 Steven Dake Patch from Angus to fix return code of saAmfResponse if the handle was invalid. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1360 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-03-21 Steven Dake Fix documentation errors in cpg service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1358 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-03-14 Steven Dake Solaris port patch to fix a few problems from last big patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1355 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-03-12 Steven Dake Patch to allow BSD/Linux systems to compile with latest Solaris porting patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1354 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-03-06 Steven Dake Patch from Renaud to report some broken Solaris porting from past. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1353 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-01-26 Hans Feldt This patch improves AMF's behaviour for handling component instantiation level. AMF is complemented to handle termination and instantiation with respect to instantiation level also for the following scenarios: - SU restart - termination/instantiation errors during component/SU restart - instantiation error during cluster start up git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1352 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-01-25 Hans Feldt Was writing to random mem using an uninitialized pointer git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1351 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-01-23 Steven Dake Display the names of the configuration files used by openais. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1350 fd59a12c-fef9-0310-b244-a6a79926bd2f Add two notifications about things to avoid to ensure proper operation of the parser. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1349 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes from Zoltan regarding AMF mispellings and type errors. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1348 fd59a12c-fef9-0310-b244-a6a79926bd2f 2007-01-18 Lon Hohberger - improves the inclosed dokumentation in amfsu,amfsg and amnode. - improves error handling caused by the INSTANTIATE or CLEANUP command while recovering with component_restart or su_restart git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1347 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-21 Lon Hohberger 1 The patch contains mainly updates of the header documentation in the amf_files 2 Correction of the misspelling in lib/cfg.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1346 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-18 Steven Dake Fix unaligned access for ia64 arch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1343 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix typo in pthread_mutex_destroy. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1342 fd59a12c-fef9-0310-b244-a6a79926bd2f Execute pthread destroy in queue_free in trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1341 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-12 Steven Dake Fix mutex leak on various platforms. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1336 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove leak when pthread mutex isn't released git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1335 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix leak by forward porting a change already in whitetank. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1333 fd59a12c-fef9-0310-b244-a6a79926bd2f Change timing parameters for trunk to something more reasonable for a busy network. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1332 fd59a12c-fef9-0310-b244-a6a79926bd2f Convert some spaces to tabs that was already in the whitetank branch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1331 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix leak in uid and gid determination. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1328 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix flow control problem in trunk. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1327 fd59a12c-fef9-0310-b244-a6a79926bd2f Add rundir patch to /var/lib/openais. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1326 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-12 Patrick Caulfield Fix ordering of join messages git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1324 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-11 Lon Hohberger Correct not initialized value of amf_comp in amf_comp_find_from_conn_info () git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1322 fd59a12c-fef9-0310-b244-a6a79926bd2f This patch contians: - AMF handles a component report of injurious health. - AMF handles saAmfHealthcheckConfirm() SA_AIS_ERR_FAILED_OPERATION so that if it's a recent recovery ongoing amf does nothing but if it's no immediate recovery in progress, AMF invokes the recovery action specified by the component when the health check is started If the individual recommendation was SA_AMF_NO_RECOMMENDATION, then AMF uses the configured recovery action for the component (saAmfCompRecoveryOnError). If this recommendation also is SA_AMF_NO_RECOMMENDATION, then AMF makes a component restart or component/SU fail over counts on the value of saAmfCompDisableRestart and saAmfSUFailover. - Handling of cleanup of a component and health check response hardened. - Time supervision and check return value of clc-cli CLEANUP command. - Handle 'recommended recovery' specified by a component in an error report. The potential recovery action to choose implemented is - component restart - and - node fails over. - The attribute saAmfCompDisableRestart is now recognizable which means that if the component specifies 'Component restart' and restart is disabled then the SU in which the component is contained shall fall over. - The attribute saAmfSUFailover will not be recognized. SU will always fail over as a single entity. - A component can report an error on another component than itself. - Implementation 'Instantiation Level' according to chapter 3.9.2 in the AMF specification. - Implementation of the escalation levels, component restart, SU restart, SU fail over and Node fail over. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1321 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-06 Hans Feldt Corrected amf.c bug that could cause segv git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1320 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-05 Hans Feldt Correction to segv handler Added abort handler git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1318 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-12-04 Hans Feldt - Use of sync_request() in SYNC service - sync_abort() callback implemented git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1317 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-23 Fabien Thomas handle case where POLLHUP or POLLERR are not supported by OS git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1311 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-17 Hans Feldt Cleaning up and preparing for later patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1310 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-16 Fabien Thomas set default downcheck value to 1000ms git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1309 fd59a12c-fef9-0310-b244-a6a79926bd2f remove invalid code / warnings detected by Intel compiler git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1308 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-13 Steven Dake Print information about when we enter the gather state and what state the membership protocol is in when the token is lost. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1304 fd59a12c-fef9-0310-b244-a6a79926bd2f Forward port of IPC code from whitetank branch to fix known defects. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1303 fd59a12c-fef9-0310-b244-a6a79926bd2f Flushed printing for trunk branch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1302 fd59a12c-fef9-0310-b244-a6a79926bd2f Improve behavior of IPC flow control for CPG service during configuration changes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1301 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-10 Steven Dake Update checkpoint service from all qualifications that have occured in whitetank branch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1299 fd59a12c-fef9-0310-b244-a6a79926bd2f Recovery algorithms described in this document. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1298 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-10 Lon Hohberger improved cluster_applications_are_starting_sgs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1297 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-08 Hans Feldt removed compiler warning in amfcomp.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1292 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-08 Lon Hohberger This patch contains several corrections concerning SU and Node fail over and some hardening concerning health check handling. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1291 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-07 Patrick Caulfield 2.6.19 kernel headers do not include IFA_RTA so we provide it. Patch from Fabio Massimo Di Nitto git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1290 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-11-04 Steven Dake Forward port of flow control work from whitetank branch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1289 fd59a12c-fef9-0310-b244-a6a79926bd2f Updated readme.devmap file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1287 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-27 Hans Feldt * Improvement of SU fail over to handle remove of those standby assignments that doesn't directly is associated to the failing over SU's active assignments in other SU's * Improvement of Node fail over to handle remove of those standby assignments that doesn't directly is associated to the failing over Node SU's active assignments in other SU's. * Improvement of SU fail over to handle si assignments to spare SU:s * Improvement of Node fail over to handle si assignments to spare SU:s git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1285 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-24 Hans Feldt AMF healthcheck keylen was not compared before matching key values git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1281 fd59a12c-fef9-0310-b244-a6a79926bd2f - sync_abort is called if there is a new config change during synchronization - a new function sync_request() that can be called by a user to execute synchronization on request of a specified service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1280 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-20 Hans Feldt Changes to testamf1.c to have two healthchecks running at the same time. One of type 'AMF invoked' and one of type 'component invoked'. testamf1.c code got a bit restructured at the same time. Changes in amf.conf to complement testamf1 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1274 fd59a12c-fef9-0310-b244-a6a79926bd2f I found some (copy paste I guess) errors in the AMF library. It was the reason for why component invoked healthchecks did not work at all. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1273 fd59a12c-fef9-0310-b244-a6a79926bd2f A couple of errors was found when I did unit (component) testing of amf.c using CUnit. With this patch, amf.c can handle a full totem send queue. This is not easily reproducable with function test. amf.c is also prepared for further component testing with this patch. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1272 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-13 Lon Hohberger Patch contains: A mechanism to defer and recall simultaneous events in the state machines for amf_cluster, amf_application and amf_sg. The implication of this defer and recall mechanism is that it's now possible to to recover from e.g. several simultaneous SU failures in an ordered serialized manner. The events that could be deferred/recalled so far is SG_FAILOVER_NODE_EV,SG_START_EV,SG_FAILOVER_SU_EV, CLUSTER_SYNC_READY_EV,APPLICATION_START_EV and APPLICATION_ASSIGN_WORKLOAD_EV. Files involved: Index: exec/amfnode.c Index: exec/amfsg.c Index: exec/amfutil.c Index: exec/amfapp.c Index: exec/amfcomp.c Index: exec/amfcluster.c Index: exec/amf.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1266 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-12 Hans Feldt This simple patch solves a problem we see when testing AMF. If a node leaves and joins the cluster quickly (within one second is default), the config change messages will not indicate that the node left and rejoined. The patch introduces a short delay in main() to make sure the token_timeout expires. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1259 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-09 Steven Dake Enable commit tokens to be processed properly in all circumstances. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1255 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix subset set operation to work properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1254 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove some debbugging code from totemsrp impacting performance. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1253 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-10-04 Lon Hohberger The patch contains: The instantiaton of the component is performed with some new steps: 1. SU invoke Comp to instantiate 2. Comp multicast a new event MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE 3. Comp receive the new event MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE 4. If the Comp is within the SU hosted on the node. The component invokes the clc_cli instantiate script to start the component and start a timer to supervise the start and registration of the component. 5. If the instantiation time elapse before the component has registered himself Comp is sending a new multicasted event MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE_TMO. 6. Comp receive MESSAGE_REQ_EXEC_AMF_COMPONENT_INSTANTIATE_TMO event. 7. The Comp presence state is set to SA_AMF_PRESENCE_INSTANTIATION_FAILED 8. When all Components are in presence state SA_AMF_PRESENCE_INSTANTIATED or SA_AMF_PRESENCE_INSTANTIATION_FAILED the start or restart will continue with the assignment of load. This implemntation means that the complete instantiation procedure never will be endlessly waiting for a register. The instantiation will either turn out in a component instantiation failure or a success. Hardening of the cluster start use case: 1. A clearer separation of the responsibilities between amf_cluster and amf_application. 2. A clearer interface and separation between amf_main (amf.c) and amf_cluster. 3. A clearer interface and separation between amf_cluster and amf_node. 4. A clearer separation of the responsibilities between amf_node and amf_application. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1251 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-29 Hans Feldt The configuration attribute 'saAmfSGNumPrefInserviceSUs' was not considered by AMF during initial start. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1250 fd59a12c-fef9-0310-b244-a6a79926bd2f Two configuration attributes for SG objects were not handled correctly by the config parser. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1249 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-28 Hans Feldt Patches from Mathieu.Marie@sun.com: 2- On Solaris, the SA components executed have no names. 3- When killing the testamf1 component, it makes the aisexec process crash on both of my nodes. 4- max priority for RR on solaris is 59. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1247 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-25 Hans Feldt An update of README.amf to match current state of the implementation. README.amf now also includes a detailed list of what is currently NOT implemented. README.amf includes now, as before, a "demo example". git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1244 fd59a12c-fef9-0310-b244-a6a79926bd2f - Fix for bug: 'default section created when syncing' - Section count synced correctly git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1243 fd59a12c-fef9-0310-b244-a6a79926bd2f global_ckpt_id fix #2 ckpt dump function git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1242 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-20 Hans Feldt Correction to a problem when a cluster consisting of several nodes starts initially in an order such that at least two nodes start after at least one node has been started and its SUs has been instantiated. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1241 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-12 Hans Feldt Created git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1240 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-11 Hans Feldt Fix for global_ckpt_id not synced git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1239 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-06 Hans Feldt - ckpt_id was not synced. - debug printout of list reduced git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1238 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-05 Hans Feldt 1. Improvement to manage more than one SG within an Application and to asymmetrically distribute the SG:s among the Nodes. 2. strcmp bug fixes several *_find functions. 3. Minor bug fixes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1237 fd59a12c-fef9-0310-b244-a6a79926bd2f - "No need for DNS or /etc/hosts" The call to gethostbyaddr() has been removed. This has been replaced by a protocol where each node multicasts its hostname (obtained with gethostname()). - "Logical AMF nodes" The AMF node name is no longer a hostname. The saAmfNodeClmNode configuration attribute of the AMF node is now the hostname. This config attribute is now mandatory. The change to amf.conf file shows required changes. - Some other AMF sync bug fixes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1236 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-09-01 Hans Feldt Added file and line of caller, useful for troubleshooting. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1235 fd59a12c-fef9-0310-b244-a6a79926bd2f - enable the global debug flag again, individual 'logger' directives might be used to disable a certain logger source. - when DEBUG compiled it does not use the new printer threads (printouts are not buffered) - man page update - openais.conf update git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1234 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-28 Hans Feldt Allow AMF to handle health check responses while syncing. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1233 fd59a12c-fef9-0310-b244-a6a79926bd2f 1. Improvement of the use case 'Amf node leave spontaneously' 2. Improvement of the use case 'Amf node join' 3. Improvement to manage more than one SG within an Application. 4. Improvement to manage an arbitrary number of Csi-assignments associated to the Csi git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1232 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-28 Fabien Thomas add missing clean for libcfg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1231 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-24 Fabien Thomas correct fd leak on error case git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1229 fd59a12c-fef9-0310-b244-a6a79926bd2f correct broken POLLHUP, POLLERR under BSD git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1228 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-24 Hans Feldt AMF sync improvements: change assert to return in mcast rec. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1227 fd59a12c-fef9-0310-b244-a6a79926bd2f testamf1.c improvements git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1226 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-23 Fabien Thomas return SA_AIS_ERR_INVALID_PARAM when vector ptr is NULL or len equal to 0 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1225 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-21 Fabien Thomas doc was not updated when switching command line options to lowercase git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1222 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-18 Fabien Thomas do not include alloca.h under BSD; alloca is in stdlib.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1221 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-17 Hans Feldt AMF sync #2 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1220 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-17 Fabien Thomas add command line support with: launch as a foreground application, do not set priority git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1219 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-16 Steven Dake Add scalability to 128 nodes by adding new parameter to protocol which is a random timeout bounded by a configuration parameter when sending join messages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1214 fd59a12c-fef9-0310-b244-a6a79926bd2f Return ERR_TIMEOUT if timeout value is zero in saEvtChannelOpen git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1211 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix make install to install clm shared object files properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1208 fd59a12c-fef9-0310-b244-a6a79926bd2f Improve recovery code to produce correct printf notice outputs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1207 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix debug output for testckpt service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1206 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-11 Hans Feldt - New sync state machine, implemented and described in amf.c - One AMF node reads the AMF config file (IMM style) - One AMF node syncs others AMF nodes - One AMF object is serialized and sent as one message - Serialization/deserialization of most objects is trivial (memcpy) except for component and csi-attributes objects which have variable size arrays/strings. - Depth first AMF object tree traversal preserves relations when syncing - Ordered lists of SUs and SIs - Constructors/destructor per class - Serializers/deserializers per class - Config-change changes sync state - Sync callbacks executes the sync - "Use case" tracing for sync using the SYNCTRACE macro (trace6) - Sync master is initially the winner of a timeout race and if the master leaves the cluster, the node with the lowest node ID becomes new master. - amf_malloc implements an AMF central malloc routine with error handling. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1200 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-11 Patrick Caulfield fixe a bug in cpg where get_group() will return the wrong group info structure if there is a hash collision. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1199 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-08 Steven Dake Fix checkpoint header file error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1178 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-05 Steven Dake Committed a bunch of changes for testing scalability - reverting patch git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1177 fd59a12c-fef9-0310-b244-a6a79926bd2f non-blocking syslog and file logging support git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1176 fd59a12c-fef9-0310-b244-a6a79926bd2f Solaris port for openais git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1175 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-03 Steven Dake Make sure sync_activate is called only once per service handler. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1174 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-02 Hans Feldt Removes the hardcoded limit of environment variables and argvs from components, now unlimited. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1172 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-08-01 Hans Feldt - Handling of HUP and other poll errors improved in saAmfDispatch. - Termination of testamf1 when saAmfDispatch returns an error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1171 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-29 Steven Dake Patch so realloc reverts to old buffer if reallocation fails. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1170 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix lock marshalling. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1169 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-26 Steven Dake Endian conversion for evs service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1168 fd59a12c-fef9-0310-b244-a6a79926bd2f Endian cleanup for ykd. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1167 fd59a12c-fef9-0310-b244-a6a79926bd2f Cleanup log_printf to use gnu attributes to do automatic type checking. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1166 fd59a12c-fef9-0310-b244-a6a79926bd2f Endian conversion for the lock service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1165 fd59a12c-fef9-0310-b244-a6a79926bd2f Use memb_ring_id_copy for alignment purposes on 64 aligned arches and keep the port id in host byte order until it is used in the totem protocol stack. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1164 fd59a12c-fef9-0310-b244-a6a79926bd2f Add endian cleanup fixes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1163 fd59a12c-fef9-0310-b244-a6a79926bd2f Clean up endian swabbing for cpg service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1162 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix where setsockopt is bound to in totemnet. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1161 fd59a12c-fef9-0310-b244-a6a79926bd2f Cleanup comparisons in lcr_ifact and use strtok_r instead of junky parser. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1160 fd59a12c-fef9-0310-b244-a6a79926bd2f Add errno.h include since it was removed from swab.h. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1159 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove bunch of unused includes from swab.h. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1158 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix processor count in evs interface. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1157 fd59a12c-fef9-0310-b244-a6a79926bd2f Endian cleanup for the clm service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1156 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-24 Steven Dake Allow build type of COVERAGE for code coverage analysis git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1152 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-21 Steven Dake Ensure make install works with recent libcfg changes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1151 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-21 Patrick Caulfield Add a 'family' parameter to totemip_parse so it can be told to look for either IPv4 or IPv6 addresses, or both. As we get the (unambiguous) multicast address first, we can make sure we always look for the right type of node address afterwards. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1150 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-21 Steven Dake Increase IPC thread stack size from 100k to 200k to accomodate larger data structures in ipc message handlers (for the CLM service). git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1149 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove TODO for swabbing conn data structure git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1148 fd59a12c-fef9-0310-b244-a6a79926bd2f Validate IO Vector elements in a saCkptCheckpointWrite operation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1147 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove TODO comment that has long been fixed in the code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1146 fd59a12c-fef9-0310-b244-a6a79926bd2f Correct malloc of checkpoint iteration size from 500 bytes to max section id size bytes for the created checkpoint git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1145 fd59a12c-fef9-0310-b244-a6a79926bd2f Reduce memory usage in large configurations by dynamically allocating fragmentation assembly buffer. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1144 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove marshall TODO items as they are not needed git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1143 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove unnecessary exit from testevs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1142 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-20 Steven Dake Remove debug printf in totemsrp git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1141 fd59a12c-fef9-0310-b244-a6a79926bd2f Don't segfault if unauthorized user connects git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1140 fd59a12c-fef9-0310-b244-a6a79926bd2f Make checkpoint service work according to specifications with regards to the unlink operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1139 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-19 Steven Dake Remove compile warning from cfgtool commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1138 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for reenabling a failed redundant ring and printing ring status through the test/opeanis-cfgtool application. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1137 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-19 Patrick Caulfield Send the new joinlists using the sync service, so it happens atomically. This should fix some odd sequencing bugs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1136 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-18 Patrick Caulfield printing ipv6 addresses often needs more than a 32 byte buffer. THis could causes a crash with sone ipv6 installations. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1135 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-18 Steven Dake Support for ia64 arch builds. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1133 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-17 Steven Dake Fix synchronization not working properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1132 fd59a12c-fef9-0310-b244-a6a79926bd2f Event marshalling patch for 32/64/endian support. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1131 fd59a12c-fef9-0310-b244-a6a79926bd2f If version field is NULL as passed to saClmInitialize, return INVALID_PARAM git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1130 fd59a12c-fef9-0310-b244-a6a79926bd2f If TRACK_CURRENT is specified in CLM service and notify buffer is null, return tracking data in callback as per specification. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1129 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove debug printf in track stop operation git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1128 fd59a12c-fef9-0310-b244-a6a79926bd2f Check for invalid handles first in API calls. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1127 fd59a12c-fef9-0310-b244-a6a79926bd2f If the max section size is less then the read size, return INVALID_PARAM. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1126 fd59a12c-fef9-0310-b244-a6a79926bd2f Return INVALID_PARAM when section read is larger then checkpoint section git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1125 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-16 Steven Dake CheckpointRead wasn't checking the active replica was set. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1124 fd59a12c-fef9-0310-b244-a6a79926bd2f The creation attributes set bit wasn't set from the library to executive message handlers causing significant problems with open was called from a app. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1123 fd59a12c-fef9-0310-b244-a6a79926bd2f The open flags are used before they are verified to be valid. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1122 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-14 Steven Dake Proper barrier operation as requested. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1121 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for s390 and s390x architectures. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1120 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-13 Steven Dake Fix library renames to 2.0.0 as needed by distros. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1119 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-12 Steven Dake Update to checkpoint service to use new APIs as rest of services do. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1118 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-11 Steven Dake Fix broken timers when release type set to RELEASE git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1117 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove dead definition of struct queue git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1116 fd59a12c-fef9-0310-b244-a6a79926bd2f Missing commit from previous rename of saServiceConnectTwo git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1115 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename saConnectServiceTwo to saConnectService git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1114 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix typo in saMsg.h header file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1113 fd59a12c-fef9-0310-b244-a6a79926bd2f Rev versions to 2.0 and update versions script for all services git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1112 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-07 Steven Dake The member list, joined list, and left list in configuration changes was not valid. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1111 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-07 Fabien Thomas remove commited conflict git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1110 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-07 Patrick Caulfield testcpg -i shows node ids as IP addresses. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1109 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-07 Hans Feldt - Error escalation improved, SU failover recovery action added - Most runtime attributes in the inf. model calculated in runtime from more fundamental information. (improves consistency) - sg_assign_si can now recalculate workloads considering existing assignments - Logging improvements, similar to what is required as notification in AMF spec. - CLC-CLI INSTANTIATE now exits aisexec when it fails (should later be sent as an NTF alarm) - CLC-CLI CLEANUP correctly handles already terminated processes - testamf1.c printouts removed for normal operation - Iterator functions for SI/CSI assignments git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1108 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-07 Steven Dake Make sure RELEASE version detaches from tty git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1105 fd59a12c-fef9-0310-b244-a6a79926bd2f The testcpg tool now prints IP addresses instead of a hex value indicating the node id. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1103 fd59a12c-fef9-0310-b244-a6a79926bd2f The recent endian/32/64 changes broke cpg callbacks. The left list address was incorrectly calculated. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1102 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-07-06 Steven Dake The totem rrp incorrectly increased the wrong failure counter. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1101 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-30 Steven Dake marshall of cpg_join name field is wrong. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1100 fd59a12c-fef9-0310-b244-a6a79926bd2f Rework of the timer system to allow timers to be added in dispatch handlers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1099 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-29 Steven Dake Rewrite of the checkpoint benchmark using threads tool git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1098 fd59a12c-fef9-0310-b244-a6a79926bd2f set serialize lock to proper function. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1097 fd59a12c-fef9-0310-b244-a6a79926bd2f Rework of IPC layer once again git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1096 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-28 Steven Dake Fix problem where AMF locks up system if two or more components are members of the same service unit. Also fixes problem where AMF asserts if two or more components are specified in a service unit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1095 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix 32/64 endian for all services from a previous missed commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1094 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix double free problem in ipc by reworking libais_disconnect to match previous rewritten model in picacho. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1092 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-27 Hans Feldt AMF changes: - Revised cluster start - Includes Steven's "amf invalid write patch" - Includes "components not started with 0.76" patch - New timer API use backed out of AMF (temporary) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1091 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-26 Steven Dake Finally remove all references to ais_amf.h and replace with saAmf.h. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1090 fd59a12c-fef9-0310-b244-a6a79926bd2f Corrected timer deadlock that occurs when a timer add or delete operation occurs within a timer expiration event. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1089 fd59a12c-fef9-0310-b244-a6a79926bd2f Removed ais_amf.h and instead point all refs to saAmf.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1088 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-25 Steven Dake Remove dead file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1087 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-23 Steven Dake Missed commit of marshall file for some reason. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1086 fd59a12c-fef9-0310-b244-a6a79926bd2f Make cpg 32/64 userland safe and endian safe. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1085 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-22 Patrick Caulfield Fix message alignment in CPG. we now unpack the message in the same way as we pack it. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1084 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-22 Steven Dake Change makefile to install swab from correct place git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1081 fd59a12c-fef9-0310-b244-a6a79926bd2f New make release in top level makefile git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1077 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-21 Steven Dake Modify AMF to use new timer.c/timer.h routines properly git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1076 fd59a12c-fef9-0310-b244-a6a79926bd2f 32/64/mixed endian support for checkpoint service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1074 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix for early logging from Hans. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1073 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix error where pathlist buffer is overrun resulting in segfault git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1072 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-20 Hans Feldt Refactoring of AMF into several files (based on classed in inf. model). A central header file (amf.h) keeps all the definitions and prototypes needed. New things apart from that: - some doxygen html generated from AMF e.g. each file has a description - saAmfHAStateGet() now works - component invoked healthchecks implemented (but not tested) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1071 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-20 Steven Dake Fix off by one error in totemsrp. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1070 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-19 Steven Dake Missed timer commit. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1069 fd59a12c-fef9-0310-b244-a6a79926bd2f missed commit git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1068 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-16 Steven Dake deferred timer system so that timers may be deferred during synchronization. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1067 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix dependencies and install all header files for external service handlers. New defination required to build external service handlers. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1066 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow CFLAGS and LDFLAGS to be overridden through the environment or command line. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1065 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-06-06 Steven Dake Remove warnings in AMF executive service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1061 fd59a12c-fef9-0310-b244-a6a79926bd2f Update TODO file with cluster membership 32/64/endian work being completed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1060 fd59a12c-fef9-0310-b244-a6a79926bd2f 32/64/endian everything should work now for openais clm service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1059 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-31 Hans Feldt - (Re-)introduction of event based multicast messages (not all yet) - Use of Distinguished Names (DN) in API and multicast messages - CSI resassignment properly handled (by using restarting state) - State 'setter' functions with uniform printouts - Simple 'assign SU to host' algorithm: - based on saAmfSUHostedByNode config attribute - see config file for example - Debug print runtime attributes upon user request: $ pkill -USR2 aisexec - Object-oriented naming of functions started (but not finished) - testamf1.c updated with some new tests - Minor fix in print.h and print.c - AMF can be started on two nodes (example config file needs modification for this) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1058 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-29 Steven Dake Set to SCHED_RR:1 to match ipc layer git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1057 fd59a12c-fef9-0310-b244-a6a79926bd2f sched_setscheduler was passing wrong argument git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1056 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-27 Steven Dake Update TODO to match 2006 project priorities. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1055 fd59a12c-fef9-0310-b244-a6a79926bd2f This sanitizes the makefiles in several ways * .so and .so.1 files are linked to library.so.1.0.0 and installed with make install * renames all build targets to library.so.1.0.0 from library.so.1.0 * puts ld.so.conf.d files in the correct place * allows not installing static libraries by using make install STATICLIBS=NO git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1054 fd59a12c-fef9-0310-b244-a6a79926bd2f This patch checks the result of read operations on a socket which can return errors or 0. Now if those cases happen, the operation is ignored. This part of the code needs more attention later to handle short reads. This removes a warning when fortify source is defined to the compiler. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1053 fd59a12c-fef9-0310-b244-a6a79926bd2f This patch does the following things: * changes the default search path for lcrso files to /usr/libexec/lcrso * checks the result of getcwd which can fail and return an error - in that case handle the error appropriately * changes a comment that was incorrectly stating only the cwd was being searched for lcrso files git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1052 fd59a12c-fef9-0310-b244-a6a79926bd2f Under load, it was observed that the token could be lost because the totem protocol was not being scheduled above the other I/O processes. This patch reinstalls the sched_setscheduler call which for some reason was commented out. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1051 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-26 Steven Dake defect 1270 Fix checkpoint read operation which would return invalid operation in some circumstances. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1050 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove scandir error=%s printf since it spews a bunch of errors when the aisexec is run after a make install git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1049 fd59a12c-fef9-0310-b244-a6a79926bd2f sanitize make install in Makefile git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1048 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix segfault if rrp_mode: MODE isn't set in configuration file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1047 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warning about memb_set_print not being used. This is only useful for debugging. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1046 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove deliver_fn which is not the ipc delivery function handler but the executive multicasted messages delivery function. This was inadvertantly copied and pasted from main.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1045 fd59a12c-fef9-0310-b244-a6a79926bd2f Properly process the ld.so.conf file if it has includes. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1044 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove warning about unsigned/signed passed to strcpy git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1043 fd59a12c-fef9-0310-b244-a6a79926bd2f Modified initscript to not start by default on redhat systems git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1042 fd59a12c-fef9-0310-b244-a6a79926bd2f Return unsigned char as needed by gcc 4.1 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1041 fd59a12c-fef9-0310-b244-a6a79926bd2f code analysis found a memset overwrote a data structure. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1040 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-25 Patrick Caulfield Add missing endian conversion to memb_merge_detect git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1039 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-23 Patrick Caulfield Remove poinless man-page. bug fix CPG example. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1038 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-22 Steven Dake commit for redundant ring take 4 was only done from exec directory missing all of the commits for the rest of the directories. This commit will now allow the tree to compile. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1035 fd59a12c-fef9-0310-b244-a6a79926bd2f First take at doxygen support for openais APIs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1034 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-19 Steven Dake Endian fixes for the recent redundant ring protocol work plus the cluster membership API support. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1033 fd59a12c-fef9-0310-b244-a6a79926bd2f The redundant ring take 4 patch. This includes modes for active, passive, and none. Read openais.conf.5 for information regarding how to configure redundant ring. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1032 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to allow system to work if no ld.so.conf is present. ld.so.conf is optional and may not be present on a system. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1031 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-19 Patrick Caulfield Don't crash if we get an unathenticated connection from a library. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1030 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow the syslog facility type to be set in the configuration file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1029 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-17 Patrick Caulfield Move CPG_SERVICE into service_types where it belongs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1028 fd59a12c-fef9-0310-b244-a6a79926bd2f Close ld.so.conf file descriptor when finished with it. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1027 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-17 Hans Feldt Introduction of SA Forum information model for AMF as specified in SAI-Overview-B.02.01.pdf. Other AMF changes as specified in SAI-AIS-AMF-B.02.01. Summary: - SA Forum B.02 Information model for AMF - groups.conf renamed to amf.conf - amf.conf syntax changed heavily to follow SA Forum specs. - AMF works when daemon. - linux lists removed from AMF - component cmd environment variables support - component argv support - multi value csi attributes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1026 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-15 Patrick Caulfield getaddrinfo() doesn't actually set errno, it has its own error variable, so returning -errno is not useful (it may be zero even if getaddrinfo failed). So, simply return -1 if getaddrinfo fails, to indicate a name resolution or badly formed address. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1025 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-11 Steven Dake Environment variable cleanup, documentation of environment variables in man pages, and rename of one of the environment variables used to specify the main openais configuration file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1024 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-10 Fabien Thomas fix compile under darwin: sched_setscheduler does not exist git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1023 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-10 Hans Feldt - Preprocessor flags to control user, group and directory for configuration files removed. - Environment variables for the same thing added: OPENAIS_AISPARSER_FILE OPENAIS_AMF_CONFIG_FILE OPENAIS_TOTEM_AUTHKEY_FILE - Make depend target in exec makefile updated with missing source files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1022 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-03 Hans Feldt - printouts buffered before log_setup() has been called, flushed at early exit. - rests of old logging removed from all code (#define LOG_SERVICE...). - line feed added if not in message. - new trace() function added so that trace macros adds minimum of code and runtime penalties to user code. - ENTER_ARGS macro changed to ENTER. ENTER macro now requires arguments. - openais.conf.5 man page updated with logger directives. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1021 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-05-02 Patrick Caulfield Cope with >32 groups on a node that goes down. Add a missing endian conversion. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1020 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-30 Steven Dake Fix comile failures for BSD/Darwin port git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1019 fd59a12c-fef9-0310-b244-a6a79926bd2f add vsf none option for those that don't want a virtual synchrony filter git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1018 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-28 Steven Dake Fix up mutexes to avoid deadlocks git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1017 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-28 Patrick Caulfield A misplaced close brace, caused cpg to only return the first node in the list went several went down. Also, replaced totemip_equal() calls with nodeid comparisons as CPG works entirely on nodeIDs anyway. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1016 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-27 Steven Dake Remove prio commented out code git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1015 fd59a12c-fef9-0310-b244-a6a79926bd2f Add invalid handle definition git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1014 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove priority from aispoll since we now use the kernel scheduler for priorities for polling git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1013 fd59a12c-fef9-0310-b244-a6a79926bd2f Add IPC files from missing previous commit git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1012 fd59a12c-fef9-0310-b244-a6a79926bd2f This patch reworks IPC to use threads instead of the main poll loop git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1011 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix segfault because list was not reinitialized after its entry was deleted and it would later be deleted by closing the ipc. the git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1010 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-26 Hans Feldt test commit, one line amf.c change in clc_cli_cleanup git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1009 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-25 Fabien Thomas Remove warnings under Darwin git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1008 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-25 Steven Dake Fix scanning of LCRSOs not working on various systems git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1007 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch to ensure backlogs are never negative which would cause problems with the flow control algorithm and protocol in general. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1006 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow running with BUILD_DYNAMIC set to zero. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1005 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-24 Steven Dake Patch from Hans to clean up some error handling in main.c when service handlers do the wrong thing. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1002 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Hans to clean up main error handling a little bit git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1001 fd59a12c-fef9-0310-b244-a6a79926bd2f Clean out private key memory area in case of parser override is used git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1000 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Hans to fix segfault in loading of LCR components git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@999 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-21 Steven Dake More make install work to install all necessary files git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@998 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-20 Mark Haverkamp Updated copyright dates. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@997 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-19 Steven Dake Make install now works along with different search paths for openais's lcrsos. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@996 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-18 Steven Dake Patch from Hans to significantly improve the logging functionality read openais.conf.5 for info on how the new logging works. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@995 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-16 Steven Dake Remove segfault when object database can't be loaded git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@994 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove segfaults when object database can't be loaded for some reason. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@993 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-15 Steven Dake remove -DDEBUG from release build git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@992 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1201 cleanup poll_dispatch_delete in trunk git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@991 fd59a12c-fef9-0310-b244-a6a79926bd2f remove warnings form totemrrp and also fix bug where send_flush wasn't being called for the active replication algorithm git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@990 fd59a12c-fef9-0310-b244-a6a79926bd2f remove printf on evs join because groups may be binary data and crash executive git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@989 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix warning about unsigned int passed to orf_token_rtr for flow control count git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@988 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix warning regarding unsigned int for node_id git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@987 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix object_priv_get to actually call object_priv_get instead of object_priv_set git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@986 fd59a12c-fef9-0310-b244-a6a79926bd2f cleanup warning in service.c because unsigned char * is passed to atoi instead of char * git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@985 fd59a12c-fef9-0310-b244-a6a79926bd2f Add missing vsf.h from previous commit git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@984 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-14 Steven Dake fix fc5 segfault correctly by removing code that violates strict aliasing rules. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@983 fd59a12c-fef9-0310-b244-a6a79926bd2f scale part 3 componentize YKD dynamic linear voting algorithm git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@982 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-13 Steven Dake Improvement of the rrp_algo data structure to support only running totemnet api calls on the appropriate totemnet interfaces. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@981 fd59a12c-fef9-0310-b244-a6a79926bd2f Workaround possible optimizer bug in gcc 4.1 by forcing a function not to inline. This would cause segfaults on fc4. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@980 fd59a12c-fef9-0310-b244-a6a79926bd2f move nodeid from interface section to totem section git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@979 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-10 Patrick Caulfield - Fix BUILD_DYNAMIC=0 (add amfconfig.o to SERV_OBJS) - add objdb->object_find_reset() before looking for user/group names. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@978 fd59a12c-fef9-0310-b244-a6a79926bd2f Split the logging config options into three keys: to_file, to_stderr & to_syslog git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@977 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-09 Steven Dake defect 1191 Add more support for the redundant ring protocol. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@976 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1190 scale to 128 nodes more effectively by dynamically sending partial structures in the commit token ahd memb_join messages. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@975 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1139 reorg of code to better support creating external service handlers git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@972 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1170 another fix for the assertion in memb_recovery_enter git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@971 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-07 Patrick Caulfield Use the tmp variable in the right iterator loop ! With debug enabled, that's a guaranteed crash in cpg when a node leaves. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@970 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-06 Patrick Caulfield Use objdb for configuration. All components now get a reference to the objdb rather than openais_config. The default config object "aisparser" reads openais.conf as before, but can be overridden by an environment variable. Bug 1132 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@969 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-06 Steven Dake defect 1170 remove extra debug exit(1 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@968 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1170 Fix recovery protocol to avoid assertion in memb_state_recovery_enter git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@967 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-04 Steven Dake defect 205 implement totem single ring protocol flow control algorithm git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@966 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-04-03 Patrick Caulfield Set the object value length too. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@965 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-31 Steven Dake Fix typo is clc_cli_script git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@963 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1172 checkpoint service asserts under load during configuration changes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@962 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-31 Fabien Thomas defect 1178: use synchronous lock structure on reply git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@961 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-29 Steven Dake defect 1153 Fix segfault with sync service if syncronization is interrupted during recovery. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@960 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-28 Muni Bajpai defect 1192 Fixes the issue of ckpt sections getting reordered and also fixes the issue of synchronizing ckpt while under the retention timer. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@959 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-28 Patrick Caulfield Call a service's config_init_fn() as soon as it is loaded. Then call exec_init_fn() after other initialisation has happened. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@958 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-27 Steven Dake patch from Hans to support amf B types git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@957 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-24 Steven Dake enhancement 1145 Patch from Lars to implement csi attribute setting in config file and delivered via callback. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@956 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Hans to fix up the configurable /var/run and /etc/ais directory support. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@955 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-24 Fabien Thomas Bug 1130: add totempg log; remove warnings; add DPRINT macro git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@954 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-23 Steven Dake objdb merge add missing service.c file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@953 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-18 Steven Dake defect 1139 merge object database and do a general refactor of the code git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@952 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-17 Steven Dake Patch from Hans This patch (against r950) makes it possible to change the directory where aisexec searches for configuration files. Pretty much in line with the possibility to specify user and group. Just do: make OPENAIS_CONFDIR=/tmp/ais git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@951 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-16 Steven Dake Patch from Hans Feldt This small patch (against r948) adds variable CPPFLAGS to all make rules that compiles `.c' files into `.o' files. This makes it possible to set CPPFLAGS on the command line as in: $ make CPPFLAGS=-DAMFDEBUG Editing the makefile when prototyping is then not needed. Another reason is that some of the openais C files are built using the implicit rule for C files (which uses CPPFLAGS). The change makes rules consistent with the implicit rule. It also adds a few missing files to the clean make target. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@950 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-15 Muni Bajpai Fix the innacurate dataSize in the Checkpoint Read response reported by Bjorn. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@949 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-08 Steven Dake defect 1113 Checkpoint iteration is totally broken. This patch makes checkpoint iteration work properly for multiple checkpoint iterators and now is compliant with the specifications for the trunk version. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@948 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1117 binding to localhost doesn't work. This patch reenables that functionality. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@947 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1120 The AMF code doesn't detect invalid healthcheck keys and crashes when an invalid healthcheck key is specified. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@946 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1116 The IPC code spins in recvmsg in the library resulting in poor performance and deadlock in the AMF service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@945 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-07 Fabien Thomas repair OPENAIS_COVERAGE, OPENAIS_PROFILE git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@944 fd59a12c-fef9-0310-b244-a6a79926bd2f use sched_get_priority_max to set the maximum priority git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@943 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-07 Muni Bajpai defect 1115 added support for reinitializing synchrony to support ongoing sync during a re-configuration. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@942 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-06 Muni Bajpai defect 1115 fix faulty check. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@941 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-06 Patrick Caulfield Add man pages for the libcpg functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@940 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix testcpg.c so it actually works. in exec/cpg: Don't regard a process as joined until all all nodes have received the message. Don't send other nodes' processes in a joinlist message! git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@939 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-06 Muni Bajpai bug 1115. Fixes the synchronization algorithm which was skipping services. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@938 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-05 Muni Bajpai Bug Fix for memory leak in ckpt section management. Bug 1112 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@937 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-03 Patrick Caulfield Add cpg (closed process groups) component. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@936 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-03 Steven Dake defect 981 This patch fixes a problem where the synchronization engine would not work cross endian. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@935 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 981 This patch fixes a problem where ykd would not work cross endian git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@934 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 981 This patch fixes a problem where totempg would not work cross-endian. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@933 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-02 Muni Bajpai reverting fix to man page as only 0.72 is broken with last byte zero in bindnetaddress git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@932 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-03-01 Muni Bajpai Remove the reference to the use of 0 as last byte in the bindnetaddr git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@931 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-02-21 Steven Dake defect 1099 move "ais" init script to mvlcge add redhat init script from Bjorn git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@927 fd59a12c-fef9-0310-b244-a6a79926bd2f Fabien's patch for the BSD/Darwin port. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@926 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-02-15 Steven Dake Patch from Patrick This patch restores the functionality in previous versions where the node address could be specified as a network address in openais.conf git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@925 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 1049 Patch from Patrick This simple patch stops a potential DoS. If a library tries to access a component that is not loaded into the exec then it will crash trying to deref ais_service_handlers[ service ] git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@924 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-02-11 Steven Dake enhancement 1088 This replaces MSG_DONTWAIT with an fcntl to O_NONBLOCK to be more portable for the BSD port since BSD doesn't support MSG_DONTWAIT properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@923 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 981 big endian and little endian in the same network causes infinite loop. This patch fixes that problem for the totem layer only. Other components are not resolved. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@922 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-02-10 Steven Dake Get rid of junk debug statement git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@921 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1088 First patch for porting to BSD systems. This patch removes the WAITALL flag entirely from the library handlers, as it appears there may be some portability problems with this flag. The code already handles partial reads anyway, so it was not necessary. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@920 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1066 original 1066 fix introduced new bug found with saftest git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@918 fd59a12c-fef9-0310-b244-a6a79926bd2f Some versions of GCC were optimizing out the static ctor section. This patch makes the ctor non-static so it is not optimized out. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@917 fd59a12c-fef9-0310-b244-a6a79926bd2f Cleanup of dynamic loading to allow using the same interface factory code for statically linked components. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@916 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-02-02 Steven Dake Patch from Patrick to enable configuring the list of dynamic service handlers in the configuration file. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@915 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-02-01 Steven Dake 1049 make all service handlers dynamically loadable or compilable statically use the BUILD_DYNAMIC flag in the makefile to set dynamic loading or static compile. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@914 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1066 memory leak in saCkptSectionIterationInitialize git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@912 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1065 memory leak in checkpoint iteration when IterationNext has a failure condition (like NO_MORE_SECTIONS) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@910 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1068 bug in saHandleDestroy could cause extra put on handle when the check is invalid git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@909 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-25 Mark Haverkamp defect 1049 Fix compile error in testlck and testmsg. Use SA_AIS_OK. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@906 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-25 Steven Dake enhancement 1049 enhance services so dynamic service handlers are more easily possible git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@905 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-24 Mark Haverkamp defect 1048 - make_event uses wrong handle database Correct calls to saHandleDestroy to use the correct handle database. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@903 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-24 Steven Dake defect 1046 SaErrorT in trunk branch, but only SaAisErrorT should be used git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@902 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-22 Steven Dake defect 1045 totempg is not thread safe, and AMF requires threads to instantiate components git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@898 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-20 Steven Dake This is a major rework of the service handling code. Now service handlers can be dynamically loaded via the live component replacement service. Sync handlers are also dynamically contributed. It is possible to build using either dynamic loading via LCR or static linking of the entire executive. This is controlled by the BUILD_DYNAMIC configuration option in the Makefile. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@892 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-16 Steven Dake remove old files that are no longer needed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@891 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-14 Steven Dake Small man page cleanup git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@890 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-11 Mark Haverkamp defect 1030 Check return pointer from malloc for NULL. Back out any previous malloc to eliminate memory leaks. Return proper status. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@887 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 1030 This fixes the event handle leak on failure, the malloc check for hl, removes the redundant memset when creating a handle, and makes sure that the put of the channel handle is a valid handle. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@886 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-07 Steven Dake defect 1024 YKD algorithm doesn't always work when new_message_queue is full. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@885 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-05 Mark Haverkamp Fix for bug 1023. Fixes a problem where the dispatcher can lose track of available events if it gets SA_ERR_TRY_AGAIN from the exec. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@883 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-03 Steven Dake Add information about the event and amf directive in the openais.conf.5 man page. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@882 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete empty files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@881 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 1020 adds missing file from commit git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@880 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 1020 Adds AMF B.01.01 support - still needs alot of work git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@879 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 1019 Modify YKD to select primary component and execute the synchronization operation only in the main partition. In the non-primary partition, no new requests are allowed - they are all returned with the error code SA_AIS_ERR_TRY_AGAIN. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@878 fd59a12c-fef9-0310-b244-a6a79926bd2f 2006-01-02 Steven Dake defect 1006 on 64 bit platforms, the timer is not properly cleared resulting in segfaults git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@876 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 1007 need way to install openais into user selectable directories git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@874 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 1018 Add YKD dynamic voting algorithm to executive code git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@873 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-27 Steven Dake defect 999 clm library doesn't exit from poll when executive crashes git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@870 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 989 improve process group membership interface in totem_pg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@869 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-22 Steven Dake lock service locks up under certain conditions this patch fixes that problem from Mark git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@868 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-20 Steven Dake defect 993 ckpt-rd.c and ckpt-wr.c in the test directory don't run with the latest code. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@866 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 998 Sometimes the default section isn't synchronized git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@864 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-08 Steven Dake defect 982 Fixes ckpt list corruption on failure to allocate checkpoint replica git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@862 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-06 Steven Dake defect 988 The totem SRP handle is passed up the entire stack is not needed past certain functions. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@860 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-05 Steven Dake fix documentation error from specification which identifies SaLckResourceLockAsync as the function name in some places but saLckResourceLockAsync in other places. We settled on saLck since it matches the rest of the specifications. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@859 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-12-01 Steven Dake shared object name incorrectly set for the lock service to libSaLCK instead of libSaLck. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@858 fd59a12c-fef9-0310-b244-a6a79926bd2f fix documentation error from specification which identifies SaLckResourceLockAsync as the function name in some places but saLckResourceLockAsync in other places. We settled on saLck since it matches the rest of the specifications. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@857 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-30 Steven Dake defect 979 This enhancement adds support for IPV6 to the trunk of openais. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@856 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix defect 974 There was an infinite loop problem in the fix for defect 974 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@854 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-25 Steven Dake defect 932 This patch adds token sequence number and global sequence number rollover support. A window is used to ensure comparisons are done properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@852 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-23 Steven Dake defect 974 checkpoint service segfaults during synchronization because iteration item is deleted and iteration continues in unsafe fashion. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@850 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 969 processor_count_set is called in the wrong place causing the protocol to fail to receive. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@848 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 968 Heartbeat failure detection man page updates git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@846 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-22 Mark Haverkamp Fix for Bug 875. Cleans up a channel that actually opened but the library request timed out. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@844 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-18 Steven Dake defect 965 Fix synchronization service lockup if the new_message_queue is full git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@842 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 956 fix assertion where new_message_queue is overflowed when a message is pending in the fragmentation queue. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@839 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-18 Mark Haverkamp Fix for BUG 955. The base event ID needed to be set to one. event zero was being detected as already delivered and thrown away. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@837 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-11-18 Steven Dake defect 968 Improve worst-case failure detection time using active healthchecking git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@836 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-10-27 Steven Dake defect 914 fix gcc 4 specific compile warnings and compile errors git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@834 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-10-04 Steven Dake defect 909 c++ keywords are used in the internal implementation of list.h git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@832 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-29 Mark Haverkamp Fix compiler warnings when HZ is defined to be a long. Bugzilla #904 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@830 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-29 Steven Dake defect 903 First cut at a distributed locking service. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@829 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-26 Steven Dake defect 898 don't need to copy message to fragmentation data buffer if message can be multicasted as is. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@827 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 897 fix new_message_queue can be overwritten git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@825 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-22 Steven Dake defect 896 Ruppert reported there was a missing typecast git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@822 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 895 Ruppert reported that there is code that doesn't do anything but should. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@821 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-21 Steven Dake reduce maximum message size since 253000 is beyond the max. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@818 fd59a12c-fef9-0310-b244-a6a79926bd2f remove extraneous debug printf git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@816 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-20 Steven Dake defect 892 Fix performance degradation when sending 10-15 messages per second because of a large seqno_unchanged_const. Also, seqno_unchanged_const does not have a configurable option and this patch adds that support. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@814 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-09-06 Steven Dake defect 856 - CHANGES and CHANGES_ONLY have identical effect with saClmClusterTrack() git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@812 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 855 - implement view numbers and report them correctly as per specs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@811 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 854 - invalid return value displayed in test program git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@810 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-30 Steven Dake defect 841 Rabbe reported that cluster track callback operations dont work properly. This patch fixes that problem. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@809 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-29 Steven Dake defect 839 The timer interval can be set to less then the platform timing interval. This could result in negative timer values configured by the user which confuse the totem protocol. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@808 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 828 assert in totemsrp_avail occurs with certain test cases. The code was rounding down to zero when calculating the number of messages required. This patch adds one in all cases so no roundoff occurs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@807 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 840 J Seltzer reported that closed checkpoints in the TRY_AGAIN state are not closed in the executive but are closed in the library. This patch fixes that problem. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@806 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-26 Steven Dake defect 837 Muni reported the token retransmission timer doesn't need to be reset when receiving a retransmission git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@805 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 833 Rabbe reported that the encoding of the ipv4 address in SaClmNodeAddressT is incorrect git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@804 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 824: replace network directive with totem directive in default configuration file git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@803 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 823 Typo in openias conf manpage reported by Rabbe git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@802 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-19 Mark Haverkamp Fix for bug 825. SaEvtChannelClose needed to handle SA_AIS_ERR_TRY_AGAIN so that the eci_closing would be cleared before returning. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@800 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-18 Steven Dake This sets the receive and send transmission buffers to a larger size to avoid overruns of the multicast buffer. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@799 fd59a12c-fef9-0310-b244-a6a79926bd2f This fixes an off by one in queue_avail which resulted in an assertion during testing. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@798 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-17 Steven Dake defect 501 this patch fixes short reads and writes between the library and executive git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@797 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancement 813 Rename ais_types.h header file to be more compliant with sa forum git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@796 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 822 checkpoint synchronization has serious bug after saftest fixups git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@795 fd59a12c-fef9-0310-b244-a6a79926bd2f enhancmement 821 Global reorganization of totem code and also many feature enhancments These include: need to specify whether authentication is enabled or dislabed in config file need to specify frame size in config file need redundant ring placeholder need to specify version field of totem need to support large frame sizes need to break out threading code from totemsrp need to break out network code from totemsrp need to break out parser code from parse.c and some others git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@794 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-13 Steven Dake Patch from Russell Bryant to fix up gcc 4 warnings git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@793 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-11 Mark Haverkamp The current event service code will start rejecting received events after 4gig because it thinks that they are duplicates. This update fixes that problem. Now I am keeping a full 64 bit id for checking for duplicate/re-sends, etc. separate from the event ID. I also check that a new event ID is not in use by a retained event. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@792 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-05 Mark Haverkamp Add a check field to the handle structure to make it less likely to get a random valid handle. Fix a couple bugs in the event service that this change exposed. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@791 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-08-02 Mark Haverkamp Fix for BUG 803. We need to complete a library call even if the channel requested for unlink has been deleted previous to processing an unlink request. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@790 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-30 Steven Dake fixes segfault when ctrl-c pressed with new totemmrp code git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@789 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-29 Steven Dake fixes a missed merge in the totemmrp mergeup git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@788 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix a few compile warnings. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@787 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 796 fix saClmClusterTrack to operate according to specs. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@786 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 793 dont return SA_AIS_ERR_NOT_EXIST when tracking started with SA_TRACK_CURRENT only git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@785 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 792 saClmTrackStop not returning SA_AIS_ERR_NOT_EXIST git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@784 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 790 if sectionDescriptor is null in iteration next call, segfault occurs git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@783 fd59a12c-fef9-0310-b244-a6a79926bd2f Add infrastructure support for multiring to totem library Make totemsrp support multiple instances of a running protocol within one app. Rename libtotem to libtotem_pg because of a name conflict with some movie player git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@782 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-27 Mark Haverkamp Move the check of subscription ID in lib_evt_event_subscribe before processing the filters. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@781 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix for bug 776. Don't require retained events to expire before deleting the channel on unlink. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@780 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-27 Steven Dake defect 784 readSize is not properly set after return from checkpoint read operation. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@779 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 785 ckptbenchth is completely broken. This patch fixes it to operate properly. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@778 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 788 ckptbench returns error 7 at 20000 byte size writes. The benchmark program improperly creates the checkpoint parameters. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@777 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-27 Mark Haverkamp Fix for bug 773. Not quite the full fix, but the best we can do for now. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@776 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix for bug 774. Check malloc return before accessing pointer. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@775 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix for bug 782. Receved events may not be modified. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@774 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-26 Steven Dake defect 777 fix reference counting bugs in aispoll git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@773 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-25 Mark Haverkamp Update saEvtEventPublist to return the correct error code when the event data size in too big. Bug 768. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@772 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-15 Steven Dake defect 754 tests dont build because makefile damaged git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@771 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 752 fix reference counting in checkpoint library git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@770 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 751 when ckptSectionIterationNext iterates all sections, SA_AIS_ERR_NO_SECTIONS not being returned. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@769 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 750 in saCkptIterationFinalize if no active replica set, return error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@768 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 749 Make handle put work properly for IterationFinalize git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@767 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 748 rename sectioniterator to sectioniteration in executive and library git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@766 fd59a12c-fef9-0310-b244-a6a79926bd2f defecct 747 in saCkptSectionIterationInitialize if sectionsChosen invalid, return INVALID_PARAM git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@765 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 746 return INVALID_PARAM in saCkptSectionIterationInitialize if address is NULL git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@764 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 745 in saCkptSectionCreate if initialData == NULL return INVALID_PARAM git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@763 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 744 return SA_AIS_ERR_EXIST in saCkptSectionCreate if maxSections == 1 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@762 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 743 in saCkptCheckpointSectionCreate return SA_AIS_ERR_NO_SPACE if current sections == maxSections git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@761 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 742 error not returned in saCkptSectionCreate if sectionCreationAttributes == NULL git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@760 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 741 saCkptCheckpointOpenAsync doesn't return error when checkpointSize > maxSections * maxSectionsSize git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@759 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 740 if open callback isn't set on saCkptCheckpointOpenAsync, return SA_AIS_ERR_INIT git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@758 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 739 saCkptCheckpointOpenAsync callback doesn't return error as per spec git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@757 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-13 Steven Dake defect 718 if no active replica is not set do not set expiration time and return error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@756 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 717 if checkpoint is not writeable in durationset, return error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@755 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 716 in durationtimeset if sectionId is null, return error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@754 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 715 synchronize open missing break in dispatch causing checkpointsyncasync callback not to be called. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@753 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 714 if checkpoint doesn't have write permissions in section delete, return error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@752 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 713 if active replica not set in section delete, return error git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@751 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 712 if sectionId is null in sectiondelete, return INVALID_PARAM git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@750 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 711 if no active replica set in checkpoint write, error not returned git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@749 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 710 if ioVector == NULL in checkpoint read error should be returned git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@748 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 709 if synchronize async called, but no callback set, error not returned git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@747 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 708 checkpoint synchronize async call not implemented git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@746 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 707 if checkpoint synchronize executedd with timeout=0, TIMEOUT error not returned git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@745 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 706 replica is not set based upon open flags as per specification git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@744 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 705 if synchronize executed on a checkpoint that was created WR_ALL_REPLICAS return error. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@743 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 704 if checkpoint is opened without read permissions, checkpoint synchronize should return SA_AIS_ERR_ACCESS. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@742 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 703 checkpoint synchronize calls do not check if active replica set git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@741 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 702 checkpoint synchronize missing executive handler git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@740 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 684 return INVALID_PARAM in checkpoint read if dataSize greater then maxSections * maxsectionsSize. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@739 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 683 if active replica not set, checkpointread should return SA_AIS_ERR_NOT_EXIST git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@738 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 682 null iovector caues checkpointRead to segfault git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@737 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 681 if null paramter passed to checkpoint service as iovector element, allocate the io vector element git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@736 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 680 ckptsectionoverwrite should return INVALID if dataSize greater then maxSections * maxSectionsSize git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@735 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 677 SectionOverwrite with null sectionId segfaults git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@734 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 676 sectionoverwrite doesn't return correct error when checkpoint section doesn't exist git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@733 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 675 section overwrite with null dataBuffer parameter locks up git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@732 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 734 cleanup include files and exports from libraries git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@731 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 732 req_amf_componentregister used instead of req_lib_amf_componentregister. There is no definition for req_amf_componentregister. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@730 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 731 error - saSendReceiveReply instead of error = function git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@729 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-07 Mark Haverkamp Check for reserved event ID and return SA_AIS_ERR_INVALID_PARAM. Bug 694 git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@728 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-07-01 Mark Haverkamp Wait to return status to the library until the clear request was received over the network so that the publish and receipt of the event is in sync with the time clear request. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@727 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-30 Steven Dake defect 673 fix checkpoint unlink not cleaning up checkpoints. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@726 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 502 fix assert when packet added in multicast message handler. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@725 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove some warnings from the compile. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@724 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-30 Mark Haverkamp Error comparing unsigned to less than zero. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@723 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-29 Steven Dake Enables test caes in saftest to pass by returning failure return codes in both callback and return function. This may have to change later if a later errata changes this functionality. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@722 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 669 token retransmits dont work under heavy load. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@721 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 656 libraries not built with position independent code. This causes x86_64 not to build. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@720 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 655 invalid checkpoint open flags should return ERR_BAD_FLAGS git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@719 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 654 wrong error code returned when checkpointSize > maxSections * maxSectionsSize in checkpoint open. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@718 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 653 saCkptCheckpointOpen segfaults if null parameter passed in checkpointName git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@717 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 652 saCkptCheckpointOpen segfaults if null parameter passed to checkpointHandle git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@716 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 651 - saCkptCheckpointUnlink segfaults if checkpointName attribute is null git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@715 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 646 - wrong return code in checkpoint open git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@714 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-28 Steven Dake Patch from Muni Bajpai to improve synchronization after a merge. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@713 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-27 Mark Haverkamp saEvtEventAttributesSet needs to check that the priority value passed in is valid. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@712 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-27 Steven Dake Patch from Szakacsits Szabolcs to improve error detection in parsing configuration files. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@711 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-24 Mark Haverkamp The channel open functions need to check for bad flags. I set the newly created event elements to the default values in the B spec. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@710 fd59a12c-fef9-0310-b244-a6a79926bd2f I discovered that our SaAisErrorT is incorrect. I have included a patch to fix that. The SA_AIS_ERR_BAD_CHECKPOINT code doesn't exist. I replaced it with SA_AIS_ERR_BAD_OPERATION. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@709 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-23 Mark Haverkamp The A spec required patterns to be set but the B spec doesn't. Fix lib/evt.c and test/testevt.c git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@708 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-22 Mark Haverkamp This fixes some B spec related parameter checks git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@707 fd59a12c-fef9-0310-b244-a6a79926bd2f Some fixes to the event service based on the saftest event tests results. The changes may affect applications currently using the event service. 1. Timeout value to the saEvtChannelOpen call was updated to use SA_TIME_MAX instead of 0 for infinite timeout. 2. added cleanup in the library to remove associated events when a channel is closed, and remove associated channels when finalize is called. 3. Added some new checking args for NULL and returning the correct error code. 4. fixed dispatch to return correct status with SA_DISPATCH_ONE and no available poll data. 5. Makefile had bad dependency for evt library build. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@706 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-17 Steven Dake defect 643 saClmNodeGet timeout parameter of 0 should return SA_AIS_ERR_TIMEOUT (Logical change 1.224) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@705 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 643 saClmNodeGet timeout parameter of 0 should return SA_AIS_ERR_TIMEOUT BKrev: 42b31c07wymW-ntnqdOvHrTrCDEEhA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@704 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 642 fix segfault when null clusterNode parameter passed to saClusterNodeGet (Logical change 1.223) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@703 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 642 fix segfault when null clusterNode parameter passed to saClusterNodeGet BKrev: 42b31bd8J6eYpNHnpFWwHWc3waURXw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@702 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 641 NodeGetAsync called with no nodeget callback should return SA_AIS_ERR_INIT BKrev: 42b31ba3yncxyr2C6XoRwB_9yMdvRA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@701 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 641 NodeGetAsync called with no nodeget callback should return SA_AIS_ERR_INIT (Logical change 1.222) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@700 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 640 fix wrong error code when null version parameter passed to saClmInitialize (Logical change 1.221) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@699 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 640 fix wrong error code when null version parameter passed to saClmInitialize BKrev: 42b31b73Cok4gPBc42AbPIksg9Rw2w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@698 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 639 fix segfault if null callback parameter passed to saClmInitialize BKrev: 42b31b3dnxjnqS8cEzAPHPJmbMdVEw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@697 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 639 fix segfault if null callback parameter passed to saClmInitialize (Logical change 1.220) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@696 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 638 fix segfault if clmHandle is null to saClmInitialize (Logical change 1.219) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@695 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 638 fix segfault if clmHandle is null to saClmInitialize BKrev: 42b31b12gslEYBvbGYQJgGi6uFw8hg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@694 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 637 Fix saClmFinalize will block with threads BKrev: 42b31ad2mqut41t3GjnF-5BmQYDkOA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@693 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 637 Fix saClmFinalize will block with threads (Logical change 1.218) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@692 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 636 fix saClmDispatch blocks on invalid dispatch flags (Logical change 1.217) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@691 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 636 fix saClmDispatch blocks on invalid dispatch flags BKrev: 42b31aa7DNo7fwD1STjEtZQflKEaCw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@690 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 635 saClmSelectionObjectGet crashes if selection object pointer is null BKrev: 42b31a7e1tftUaCVpz36dDVxSI0wBA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@689 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 635 saClmSelectionObjectGet crashes if selection object pointer is null (Logical change 1.216) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@688 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 634 saCkptDispatch blocks if invalid dispatch flag is set (Logical change 1.215) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@687 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect 634 saCkptDispatch blocks if invalid dispatch flag is set BKrev: 42b31a459dDwB00enI3nSeayQwFODA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@686 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 633 saCkptInitialize crashes if callbacks parameter is null (Logical change 1.214) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@685 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect 633 saCkptInitialize crashes if callbacks parameter is null BKrev: 42b31a19Ti58H5PxsI2NaDivhyz-fQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@684 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: Fix segfault when address of checkpoint handle is null to the initialize function BKrev: 42b319e8cJKg9zY0XT9um2oqVst5Ug git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@683 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix segfault when address of checkpoint handle is null to the initialize function (Logical change 1.213) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@682 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect 631 Fix segfault if null pointer passed to selection object address of saCkptSelectionObjectGet BKrev: 42b319acUTulJHw99ALuUlMGTcgL1g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@681 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 631 Fix segfault if null pointer passed to selection object address of saCkptSelectionObjectGet (Logical change 1.212) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@680 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect 630 if a checkpoint is unlinked then opened it should return SA_AIS_ERR_NOT_EXIST BKrev: 42b31972GC0d7zd0Xw4yt4RcQrxcCg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@679 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 630 if a checkpoint is unlinked then opened it should return SA_AIS_ERR_NOT_EXIST (Logical change 1.211) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@678 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect 629 Return error if checkpoint has been unlinked on retentation duration set BKrev: 42b3192dcHnUOXNAKirryjp4WHDl9g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@677 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 629 Return error if checkpoint has been unlinked on retentation duration set (Logical change 1.210) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@676 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 628 saCkptCheckpointStatusGet test case 13 from saftest fails (Logical change 1.209) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@675 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c, ckpt.h: defect 628 saCkptCheckpointStatusGet test case 13 from saftest fails BKrev: 42b318f7gBulPAY6sscL0tMMMi9jMw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@674 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile, ckpt.c: defect 627 Fix API crash when second parameter of saCkptCheckpointStatusGet is null BKrev: 42b318bd2NjZ6GGEcjf0mUQr9yL1EA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@673 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 627 Fix API crash when second parameter of saCkptCheckpointStatusGet is null (Logical change 1.208) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@672 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 611 add some manual pages to openais (Logical change 1.207) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@671 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 577 Implement token holding mode (Logical change 1.207) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@670 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile, index.html: defect 611 add some manual pages to openais openais_overview.8, openais.conf.5: new file Many files: defect 577 Implement token holding mode BKrev: 42b31834M2cICKgskYf4EnywBr9Fiw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@669 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.207) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@668 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@667 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-15 Mark Haverkamp Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/06/15 14:09:09-07:00 osdl.net!markh Fix version handling code to be B spec compliant. BUG 623. BKrev: 42b09916lexB-dFgQMudnN6k_mmmkw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@666 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix version handling code to be B spec compliant. BUG 623. (Logical change 1.206) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@665 fd59a12c-fef9-0310-b244-a6a79926bd2f Auto merged 2005/06/15 14:09:08-07:00 osdl.net!markh Fix version handling code to be B spec compliant. BUG 623. (Logical change 1.206) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@664 fd59a12c-fef9-0310-b244-a6a79926bd2f Move the closing of file descriptors from the destructor to the finalize function. This allows threads waiting on poll to wake up and release handle references. BKrev: 42b097dceYknwQw6iUHoWmtoiZRCAQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@663 fd59a12c-fef9-0310-b244-a6a79926bd2f Move the closing of file descriptors from the destructor to the finalize function. This allows threads waiting on poll to wake up and release handle references. (Logical change 1.205) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@662 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-13 Mark Haverkamp Fixes to patterns and filters for B API spec support. (Logical change 1.204) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@661 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes to patterns and filters for B API spec support. BKrev: 42ade79b0MPjVuydg8XjvOCQs9MTkw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@660 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-07 Steven Dake totempg.c: defect 604 report fragmentation messages missing. BKrev: 42a61064-RatmX2Oh0W-yAQkVrhuLA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@659 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 604 report fragmentation messages missing. (Logical change 1.203) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@658 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-06-06 Steven Dake defect 600 Qian Zhang reported defect 599 which was a missing pthread_mutex_unlock. Patch attached to fix it. (Logical change 1.202) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@657 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.202) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@656 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 600 Qian Zhang reported defect 599 which was a missing pthread_mutex_unlock. Patch attached to fix it. BKrev: 42a4b379jtJP5rnRmyVL92o1PyIDDw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@655 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: defect 599 Qian Zhang reported defect 599 which was a missing pthread_mutex_unlock. Patch attached to fix it. BKrev: 42a4b337flt6FdzG6hqwbxOqSyl59w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@654 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 599 Qian Zhang reported defect 599 which was a missing pthread_mutex_unlock. Patch attached to fix it. (Logical change 1.201) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@653 fd59a12c-fef9-0310-b244-a6a79926bd2f ipc_ckpt.h, testckpt.c, ckptbench.c, util.c, ckpt.c: defect 595 There are various bugs with saCkptCheckpointOpenAsync that result in it crashing the executive, library, or just failing the saftest conformance suite. BKrev: 42a4afd8Fg5CFXDzyZ_v5qo_ad-Guw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@652 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 595 There are various bugs with saCkptCheckpointOpenAsync that result in it crashing the executive, library, or just failing the saftest conformance suite.. (Logical change 1.200) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@651 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 595 There are various bugs with saCkptCheckpointOpenAsync that result in it crashing the executive, library, or just failing the saftest conformance suite. (Logical change 1.200) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@650 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: The selection object get in sync with openAsync doesn't work. BKrev: 42a4ae24bww-nX_J3YlTL9lMO3KZvQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@649 fd59a12c-fef9-0310-b244-a6a79926bd2f The selection object get in sync with openAsync doesn't work. (Logical change 1.199) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@648 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c, ipc_ckpt.h: defect 592 If ActiveReplicaSet is called, the correct return values are not returned, causing failures in the saf test suite. BKrev: 42a4ade8M7A9p_GJDKQGsWWbJxc41w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@647 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 592 If ActiveReplicaSet is called, the correct return values are not returned, causing failures in the saf test suite. (Logical change 1.198) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@646 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 591 If checkpoint open is called, but checkpoint close isn't called before saCkptFinalize is called, the reference count of the checkpoints gets out of kilter. (Logical change 1.197) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@645 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect 591 If checkpoint open is called, but checkpoint close isn't called before saCkptFinalize is called, the reference count of the checkpoints gets out of kilter. BKrev: 42a4ada5nUMOYQy74W2MQ1eTlNNC0g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@644 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-05-27 Steven Dake (Logical change 1.196) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@643 fd59a12c-fef9-0310-b244-a6a79926bd2f adds evs_membership_get api (Logical change 1.196) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@642 fd59a12c-fef9-0310-b244-a6a79926bd2f Many files: adds evs_membership_get api evs_membership_get.3: new file BKrev: 42964fab28riN6pUGbG3uqbjbAjKcA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@641 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@640 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-05-27 Mark Haverkamp Allow services to use the openais.conf file for setting custom options. Evt now allows the maximum delivery queue size and the resume size to be set in openais.conf (Logical change 1.195) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@639 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow services to use the openais.conf file for setting custom options. Evt now allows the maximum delivery queue size and the resume size to be set in openais.conf BKrev: 42964b6eDjhuwHSUD_2OVfOPwqZf3w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@638 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow services to use the openais.conf file for setting custom options. (Logical change 1.195) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@637 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-05-25 Miyotaka Sakai Failover doesn't happen when CTL-Z and process kill (Logical change 1.194) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@636 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-05-25 Mark Haverkamp Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/05/18 01:03:02+09:00 sakai!sakai amf.c: Failover doesn't happen when CTL-Z and process kill BKrev: 4294e4525GqfTV54xRLGWs-383Stsg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@635 fd59a12c-fef9-0310-b244-a6a79926bd2f More updates to make event conform to B spec. BKrev: 4294e431odUeu4s7HWbqMRrsByv4rQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@634 fd59a12c-fef9-0310-b244-a6a79926bd2f More updates to make event conform to B spec. (Logical change 1.193) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@633 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix memory leak. BKrev: 4294e345EM8L82mcgFGtNXNOOrANVg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@632 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix memory leak. (Logical change 1.192) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@631 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-05-04 Mark Haverkamp Added a description of the timeout section of openais.conf (Logical change 1.191) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@630 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for user specified timeouts from openais.conf BKrev: 427901a7TTHofqEBWm_tyZgxLVSn8g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@629 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for user specified timeouts from openais.conf (Logical change 1.191) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@628 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-29 Steven Dake defect 529 dont ignore commit token which was causing strange semantics. (Logical change 1.190) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@627 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: defect 529 dont ignore commit token which was causing strange semantics. BKrev: 4272a2cfQng6C3XBRPdeo8GZx7KIlQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@626 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-22 Steven Dake Many files: defect 512 - some ais header file defines are wrong. BKrev: 4269467fUqljxZ1cZm7rYtXJgozkZQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@625 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 512 - some ais header file defines are wrong. (Logical change 1.189) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@624 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: defect 498 - reduce network traffic from merge detection BKrev: 42694604csBxR35HgvFh1cX-WdsjPw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@623 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 498 - reduce network traffic from merge detection (Logical change 1.188) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@622 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-21 Steven Dake testckpt.c, ckpt.c, ipc_ckpt.h: defect 323 - defect 410 - CheckpointOpenAsync and Dispatch not working BKrev: 4267f1b1iKpaZFwASGi0Hpg6NPVlvA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@621 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 323 - defect 410 - CheckpointOpenAsync and Dispatch not working (Logical change 1.187) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@620 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 505 - fix uncompilable with gcc 2.95 (Logical change 1.186) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@619 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt-wr.c, evt.c, ckpt.c, amf.c: defect 505 - fix uncompilable with gcc 2.95 BKrev: 4266fa7e2AAxpdYH2FJH4NEZ75Hc9w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@618 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-21 Mark Haverkamp Defect 501. Fix some mutex and error return problems. (Logical change 1.185) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@617 fd59a12c-fef9-0310-b244-a6a79926bd2f Defect 501. Fix some mutex and error return problems. BKrev: 4266d40eIENsfJQEvDM6MjMDhFcqLA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@616 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-20 Mark Haverkamp For defect 501. Fix possible stale pointers in async lists if an application disconnects before its command has been fully processed. (Logical change 1.184) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@615 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/04/20 14:43:05-07:00 osdl.net!markh For defect 501. Fix possible stale pointers in async lists if an application disconnects before its command has been fully processed. BKrev: 4266cda65e-fXv0kW4Qe-4Fr4Sbrww git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@614 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-18 Steven Dake evs.c: defect 42 - evs service doesn't send config change on evs_initialize BKrev: 4264263fzzgV2yL8rAEqgs69wjGnZA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@613 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 42 - evs service doesn't send config change on evs_initialize (Logical change 1.183) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@612 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Fix assert when recovery fails and messages are accepted in the gather state. BKrev: 42641035MxBKYwCZ1zOkFr_h-WES3Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@611 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix assert when recovery fails and messages are accepted in the gather state. (Logical change 1.182) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@610 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-16 Steven Dake totemsrp.c: Fixes a condition which would result in a proc set and failed set being equal which would force the algorithm to never reach consensus in the membership algorithm. BKrev: 42604e9fCBYactncuQuguPZ_IEfQsQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@609 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes a condition which would result in a proc set and failed set being equal which would force the algorithm to never reach consensus in the membership algorithm. (Logical change 1.181) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@608 fd59a12c-fef9-0310-b244-a6a79926bd2f totem packet size changed from 1408 to 1404 because a field was added to the mcast header. (Logical change 1.180) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@607 fd59a12c-fef9-0310-b244-a6a79926bd2f add some sort queue functions. (Logical change 1.180) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@606 fd59a12c-fef9-0310-b244-a6a79926bd2f turn off random dropping of packets by default. 2005/04/15 16:27:14-07:00 mvista.com!sdake Major fixes to the recovery phase of the totem protocol. The remainder of the protocol remains unchanged. The protocol now properly adds the right messages to the right queues during recovery. The protocol properly handles failures in the recovery state. (Logical change 1.180) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@605 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: turn off random dropping of packets by default. totemsrp.h: totem packet size changed from 1408 to 1404 because a field was added to the mcast header. sq.h: add some sort queue functions. totemsrp.c: Major fixes to the recovery phase of the totem protocol. The remainder of the protocol remains unchanged. The protocol now properly adds the right messages to the right queues during recovery. The protocol properly handles failures in the recovery state. totempg.c: add an assert to catch a weird case. BKrev: 42604e5bSfwCdUnySrgU1nlV7yDYNQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@604 fd59a12c-fef9-0310-b244-a6a79926bd2f add an assert to catch a weird case. (Logical change 1.180) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@603 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-15 Steven Dake crypto.c: autodetect endian and wordsize with gnuisms BKrev: 42602efdZ8LfQwIHBFrdtsjrK3BtCg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@602 fd59a12c-fef9-0310-b244-a6a79926bd2f autodetect endian and wordsize with gnuisms (Logical change 1.179) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@601 fd59a12c-fef9-0310-b244-a6a79926bd2f evs.c: fix defect 477 - header size calculated incorrectly results in assert BKrev: 42602cf5j6Zi2RZtyz9xB83lZW9R6g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@600 fd59a12c-fef9-0310-b244-a6a79926bd2f fix defect 477 - header size calculated incorrectly results in assert (Logical change 1.178) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@599 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2005/04/15 13:48:35-07:00 mvista.com!sdake Makefile, util.h, util.c, evt.c, evs.c, clm.c, ckpt.c, amf.c: defect 188 missed initial checkin BKrev: 426028b9DQDC6BgUEBBsQmVJmhyxOg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@598 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 188 missed initial checkin (Logical change 1.177) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@597 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-15 Mark Haverkamp Test updates to handle SA_AIS_ERR_TRY_AGAIN return codes. (Logical change 1.176) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@596 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/04/15 13:01:00-07:00 osdl.net!markh Test updates to handle SA_AIS_ERR_TRY_AGAIN return codes. BKrev: 42601e9aBWGIREypBcTjO5NC8bK8uA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@595 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-15 Steven Dake defect 188 - use two fds instead of one fd for I/Os to executive (Logical change 1.175) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@594 fd59a12c-fef9-0310-b244-a6a79926bd2f Many files: defect 188 - use two fds instead of one fd for I/Os to executive testevsth.c: test evs threading BKrev: 42601124xiPxCobiccGpS7CZ62Ol7w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@593 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.175) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@592 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@591 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 478 - remove extra parameter to config change. (Logical change 1.174) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@590 fd59a12c-fef9-0310-b244-a6a79926bd2f Many files: defect 478 - remove extra parameter to config change. BKrev: 42600ff6Tg7hfUjwYnckeK8uBxBGrg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@589 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-11 Steven Dake Fix defect 456 when checkpoint expirse, the executive crashes if no bind address was specified (Logical change 1.173) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@588 fd59a12c-fef9-0310-b244-a6a79926bd2f main.c: Fix defect 456 when checkpoint expirse, the executive crashes if no bind address was specified BKrev: 425aed2d6P3dBt_7UO1Cv6d5kt4haQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@587 fd59a12c-fef9-0310-b244-a6a79926bd2f add default section to testcase (Logical change 1.172) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@586 fd59a12c-fef9-0310-b244-a6a79926bd2f add default section to testcase. (Logical change 1.172) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@585 fd59a12c-fef9-0310-b244-a6a79926bd2f Add default section support to checkpoints. (Logical change 1.172) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@584 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.172) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@583 fd59a12c-fef9-0310-b244-a6a79926bd2f testckpt.c, ckpt-rd.c, ckpt-wr: add default section to testcase. ckpt.c: Add default section support to checkpoints. BKrev: 425aeb47Mb_N8HKGtX_BdmRGaLP-Jg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@582 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-08 Steven Dake ckpt.c: Patch from Muni and Mark to properly calculate the header size field so that the totem delivery assertion doesn't assert when using ckpt services. BKrev: 4256f3d0FFsh6CwpsXs-w4_225C4Wg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@581 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Muni and Mark to properly calculate the header size field so that the totem delivery assertion doesn't assert when using ckpt services. (Logical change 1.171) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@580 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-06 Mark Haverkamp Make sure that the message count in the message matches the actual length of the message. BKrev: 42543a7aj_fChUtiZ_ZWH0wdZ6JN3Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@579 fd59a12c-fef9-0310-b244-a6a79926bd2f Make sure that the message count in the message matches the actual length of the message. (Logical change 1.170) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@578 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-05 Mark Haverkamp Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/04/05 08:56:39-07:00 osdl.net!markh Replace assert with a return. This will allow the custer to continue to run. This happens when a joining node receives a message from a node that it doesn't know about yet. This is a temporary fix for now. BKrev: 4252b541e1CWSNFoD816nTIzzKKPDg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@577 fd59a12c-fef9-0310-b244-a6a79926bd2f Replace assert with a return. This will allow the custer to continue to run. This happens when a joining node receives a message from a node that it doesn't know about yet. This is a temporary fix for now. (Logical change 1.169) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@576 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-05 Steven Dake Patch from Miyotaka Sakai to fix access to free area defect 426. (Logical change 1.168) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@575 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Patch from Miyotaka Sakai to fix access to free area defect 426. BKrev: 4251ef0dubnPmmnqD-elKTQ_vgpq9Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@574 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-04-01 Steven Dake change around this_ip to better support ifup/ifdown (Logical change 1.167) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@573 fd59a12c-fef9-0310-b244-a6a79926bd2f add some support functions relating to this_ip (Logical change 1.167) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@572 fd59a12c-fef9-0310-b244-a6a79926bd2f add ifup/ifdown binding to totem single ring protocol (Logical change 1.167) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@571 fd59a12c-fef9-0310-b244-a6a79926bd2f minor improvements to the ckpt tests (Logical change 1.167) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@570 fd59a12c-fef9-0310-b244-a6a79926bd2f testckpt.c: minor improvements to the ckpt tests totemsrp.h, totemsrp.c: add ifup/ifdown binding to totem single ring protocol main.h, main.c: add some support functions relating to this_ip clm.c, ckpt.c, amf.c: change around this_ip to better support ifup/ifdown BKrev: 424dbb0bUeDXpnbGn8TxJlPYWRvT6A git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@569 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-31 Miyotaka Sakai fix not to transit state when process terminate (Logical change 1.166) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@568 fd59a12c-fef9-0310-b244-a6a79926bd2f amf.c: fix not to transit state when process terminate BKrev: 424b286648uPUwF_B-hMgKOF5Mgwzw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@567 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-30 Steven Dake Updated with comments from Michael Howard added evt and evs service tests to quickstart information added text about running as root removed default route setup instructions since they are no longer needed. (Logical change 1.165) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@566 fd59a12c-fef9-0310-b244-a6a79926bd2f QUICKSTART: Updated with comments from Michael Howard added evt and evs service tests to quickstart information added text about running as root removed default route setup instructions since they are no longer needed. BKrev: 424b198bYLqB2blTRdYtgLgjFmHjIA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@565 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2005/03/29 15:03:30-07:00 mvista.com!sdake testckpt.c: Create section after section is unlinked in test code. ckpt.c: Patch from Muni Bajpai to not setup a cleanup handler for a checkpoint when a checkpoint open fails. Patch also fixes up checkpoint iterators so they do not crash on process exit. BKrev: 4249da03fKPlzZG0QP8eZriaAtoM-w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@564 fd59a12c-fef9-0310-b244-a6a79926bd2f Patch from Muni Bajpai to not setup a cleanup handler for a checkpoint when a checkpoint open fails. Patch also fixes up checkpoint iterators so they do not crash on process exit. (Logical change 1.164) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@563 fd59a12c-fef9-0310-b244-a6a79926bd2f Create section after section is unlinked in test code. (Logical change 1.164) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@562 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-29 Miyotaka Sakai fix configuration change (Logical change 1.163) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@561 fd59a12c-fef9-0310-b244-a6a79926bd2f amf.c: fix configuration change BKrev: 424889eehbHC-A5YNtbXzaEzVMhcVQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@560 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-28 Steven Dake Remove extra debug printf. (Logical change 1.162) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@559 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Remove extra debug printf. BKrev: 42485391qM7HG2et7RcmNIHInqXxTA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@558 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 368 A report of totemsrp not merging configurations led to this enhancement. totemsrp.c: The totem protocol would not previously merge a configuration until a multicast message was sent. This change sends a special "merge detect" message if no message has been multicast in some time from the representative. This merge detect message will trigger other processors to enter the gather state and form a new configuration if they were not previously part of the current configuration. Makefile: Build aisexec when libtotem.a changes. BKrev: 42484f5453Wf6HN2Gbyg9dznFaQGtw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@557 fd59a12c-fef9-0310-b244-a6a79926bd2f The totem protocol would not previously merge a configuration until a multicast message was sent. This change sends a special "merge detect" message if no message has been multicast in some time from the representative. This merge detect message will trigger other processors to enter the gather state and form a new configuration if they were not previously part of the current configuration. (Logical change 1.161) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@556 fd59a12c-fef9-0310-b244-a6a79926bd2f Build aisexec when libtotem.a changes. (Logical change 1.161) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@555 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-28 Mark Haverkamp This update allows retained events from a merging partition to be delivered to applications with the associated channels already open at the time of the merge. BKrev: 42484b6f0IXKK1Bql-GCaHwTbXg0dQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@554 fd59a12c-fef9-0310-b244-a6a79926bd2f This update allows retained events from a merging partition to be delivered to applications with the associated channels already open at the time of the merge. (Logical change 1.160) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@553 fd59a12c-fef9-0310-b244-a6a79926bd2f Async open and subscribe needed to check for registered call back functions and retrun an error if there were no assocated callbacks. BKrev: 42483e43sOS_W8zCqoAZNHTy43FhkA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@552 fd59a12c-fef9-0310-b244-a6a79926bd2f Async open and subscribe needed to check for registered call back functions and retrun an error if there were no assocated callbacks. (Logical change 1.159) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@551 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-23 Mark Haverkamp Only dispatch a callback if it is non-null. (Logical change 1.158) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@550 fd59a12c-fef9-0310-b244-a6a79926bd2f Only dispatch a callback if it is non-null. BKrev: 4241cdbcbgCCwsZLJEXicZZTvGpuGQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@549 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-23 Steven Dake defect325 - rename saCkptActiveCheckpointSet to saCkptActiveReplicaSet (Logical change 1.157) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@548 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt.c: defect325 - rename saCkptActiveCheckpointSet to saCkptActiveReplicaSet BKrev: 4240ac49svEd0Uoaf0zn8-6YXK5akw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@547 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile: Link to seperate libraries. Provide seperate libraries per service as well as the consolidated libais library. BKrev: 4240ac15wtabDEmO2ooaShdbFZP-wg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@546 fd59a12c-fef9-0310-b244-a6a79926bd2f Link to seperate libraries. (Logical change 1.156) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@545 fd59a12c-fef9-0310-b244-a6a79926bd2f Provide seperate libraries per service as well as the consolidated libais library. (Logical change 1.156) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@544 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-23 Mark Haverkamp Fix an off by one error causing a bad event ID to be sent after a recovery in some cases. BKrev: 4240a8ba6cGIAgqLoTZNAUZJJOgyrg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@543 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix an off by one error causing a bad event ID to be sent after a recovery in some cases. (Logical change 1.155) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@542 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-17 Mark Haverkamp Event service now reconciles open channels and retained events between active merging partitions. (Logical change 1.154) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@541 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/03/17 14:44:09-08:00 osdl.net!markh Event service now reconciles open channels and retained events between active merging partitions. BKrev: 423a084c-3ULQ_tcgSf5isGBiqzUWA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@540 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-17 Steven Dake Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2005/03/17 14:25:22-07:00 mvista.com!sdake ckpt.c: Change few ERROR loggings to DEBUG loggings from Muni Bajpai. BKrev: 4239f5cbSrwx6_k9jxG2_GjW1OoVHQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@539 fd59a12c-fef9-0310-b244-a6a79926bd2f Change few ERROR loggings to DEBUG loggings from Muni Bajpai. (Logical change 1.153) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@538 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-17 Mark Haverkamp Handle possible SA_AIS_ERR_TRY_AGAIN status. BKrev: 4239c886n6J6MzMfIVjaN1QvFnsfzg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@537 fd59a12c-fef9-0310-b244-a6a79926bd2f Handle possible SA_AIS_ERR_TRY_AGAIN status. (Logical change 1.152) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@536 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-17 Steven Dake Block multicast messages during synchronization. (Logical change 1.151) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@535 fd59a12c-fef9-0310-b244-a6a79926bd2f ckptbench.c: retry writes when it appears the system is blocked, perhaps during a resynchronization. Many files: Block multicast messages during synchronization. BKrev: 4238c435y6ZGwBr-M4xFHDUJ7HhLaQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@534 fd59a12c-fef9-0310-b244-a6a79926bd2f retry writes when it appears the system is blocked, perhaps during a resynchronization. (Logical change 1.151) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@533 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-16 Steven Dake cleanup some shared datatypes. (Logical change 1.150) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@532 fd59a12c-fef9-0310-b244-a6a79926bd2f cleanup some shared datatypes (Logical change 1.150) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@531 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.150) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@530 fd59a12c-fef9-0310-b244-a6a79926bd2f Mark Haverkamp reported some compile warnings with his compiler. Cleanup those warnings by unifying the datatypes used in totempg and totemsrp into one set of datatypes. Many files: cleanup some shared datatypes for the totem protocol. totem.h: new file BKrev: 423879baJvLZpm8nNaRfQHRfWB2fOA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@529 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@528 fd59a12c-fef9-0310-b244-a6a79926bd2f Improved synchronization test code from Muni Bajpai. (Logical change 1.149) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@527 fd59a12c-fef9-0310-b244-a6a79926bd2f ckpt-wr.c, ckpt-rd.c: Improved synchronization test code from Muni Bajpai. BKrev: 4238784c5RBxBXc3aHA68KOVGhAEWw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@526 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-15 Steven Dake Fix bug in sync which caused segfault. (Logical change 1.148) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@525 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.h, totemsrp.c: Allow totemsrp to remove the reference information for a token callback. sync.c: Fix bug in sync which caused segfault. BKrev: 42371b753plEvd2J96qRpg6mRxki1Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@524 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow totemsrp to remove the reference information for a token callback. (Logical change 1.148) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@523 fd59a12c-fef9-0310-b244-a6a79926bd2f Add checkpoint reader and writer to test synchronization (Logical change 1.147) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@522 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile: Add checkpoint reader and writer to test synchronization ckpt-wr.c, ckpt-rd.c: new file BKrev: 42363081enPpMuQpdvw2e1uqFAqD0A git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@521 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.147) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@520 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@519 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-14 Steven Dake Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2005/03/14 15:39:42-07:00 mvista.com!sdake ipc_gen.h, ipc_ckpt.h, ckpt.c: Checkpoint synchronization patch from Muni Bajpai. BKrev: 423612bc5lRZOqj0qi_o6zXGw1bAwg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@518 fd59a12c-fef9-0310-b244-a6a79926bd2f Checkpoint synchronization patch from Muni Bajpai. (Logical change 1.146) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@517 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-11 Mark Haverkamp Update the publish API to return SA_AIS_ERR_TRY_AGAIN to the application instead of handling it in the library. (Logical change 1.145) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@516 fd59a12c-fef9-0310-b244-a6a79926bd2f Update the publish API to return SA_AIS_ERR_TRY_AGAIN to the application instead of handling it in the library. BKrev: 4231eb69MvlifP_ykH0Nfj693tUWMA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@515 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-09 Mark Haverkamp New event service recovery code implementation for totem and the new sync services. (Logical change 1.144) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@514 fd59a12c-fef9-0310-b244-a6a79926bd2f New event service recovery code implementation for totem and the new sync services. BKrev: 422f73c7NkihQaud_tc4WYQOjavwhg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@513 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-09 Steven Dake Cluster membership synchronization support (Logical change 1.143) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@512 fd59a12c-fef9-0310-b244-a6a79926bd2f clm.c: Cluster membership synchronization support BKrev: 422f5283JgT5AkInLBoHrZMu0wx2rQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@511 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-03-02 Steven Dake Added synchronization base code. Four new APIs are required for a service to support synchronization. sync_init, sync_process, sync_activate, and sync_abort provide the calls into the recovery mechanism. sync.h, sync.c: new file totemsrp.h, totemsrp.c, print.h, print.c, Makefile, main.c, handlers.h: Synchronization base code added. ipc_gen.h: Synchronization base code. BKrev: 422639e5L_FEDTWgRgI-w8vKm8zhMQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@510 fd59a12c-fef9-0310-b244-a6a79926bd2f Synchronization base code. (Logical change 1.142) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@509 fd59a12c-fef9-0310-b244-a6a79926bd2f Synchronization base code added. (Logical change 1.142) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@508 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.142) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@507 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@506 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-27 Steven Dake em64t support (Logical change 1.141) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@505 fd59a12c-fef9-0310-b244-a6a79926bd2f Many files: em64t support BKrev: 42216853DGp9Hwgh8mvnixFj_QMRUQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@504 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-18 Steven Dake Many files: Pass handle by value instead of address. BKrev: 4216488aoAf2Eu5qvs7qGxx8rO9zXw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@503 fd59a12c-fef9-0310-b244-a6a79926bd2f Pass handle by value instead of address. (Logical change 1.140) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@502 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-17 Steven Dake Auto merged 2005/02/16 17:24:12-07:00 mvista.com!sdake send ring_id through configuration changes patch from Muni Bajpai. (Logical change 1.139) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@501 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2005/02/16 17:24:48-07:00 mvista.com!sdake Many files: send ring_id through configuration changes patch from Muni Bajpai. clm.c: mutex bug fixes as reported by Kristen Smith. BKrev: 4213e45dnMl87bYQKSfi4_98X352Lg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@500 fd59a12c-fef9-0310-b244-a6a79926bd2f send ring_id through configuration changes patch from Muni Bajpai. (Logical change 1.139) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@499 fd59a12c-fef9-0310-b244-a6a79926bd2f mutex bug fixes as reported by Kristen Smith. (Logical change 1.139) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@498 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-16 Mark Haverkamp Look for SA_EVT_EVENTID_LOST when receiving an event. (Logical change 1.138) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@497 fd59a12c-fef9-0310-b244-a6a79926bd2f Set default event ID. (Logical change 1.138) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@496 fd59a12c-fef9-0310-b244-a6a79926bd2f Set lost event ID on dropped events. (Logical change 1.138) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@495 fd59a12c-fef9-0310-b244-a6a79926bd2f Use special event ID for setting the default in a new event and to indicate a lost event. Update subscription test to look for the "lost" event ID. BKrev: 42128170Q5DcNymwbx8NushEykXwmg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@494 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-15 Mark Haverkamp Add unlink function. (Logical change 1.137) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@493 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_work 2005/02/15 08:54:34-08:00 osdl.net!markh Add unlink function. BKrev: 42122956O-InvJqb6K70vMTy4gl8yQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@492 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-09 Steven Dake Increase code coverage by calling more API functions. (Logical change 1.136) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@491 fd59a12c-fef9-0310-b244-a6a79926bd2f testevs.c, testckpt.c: Increase code coverage by calling more API functions. testamf.c: Fix bug in test script which was causing test not to run. Increase code coverage by allowing few more apis to be called. totemsrp.c: Increase code coverage by removing some debug code BKrev: 42095a88Q0lU2eqEirC1FAZ05pxlmg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@490 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix bug in test script which was causing test not to run. Increase code coverage by allowing few more apis to be called. (Logical change 1.136) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@489 fd59a12c-fef9-0310-b244-a6a79926bd2f Increase code coverage by removing some debug code (Logical change 1.136) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@488 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-08 Steven Dake (Logical change 1.135) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@487 fd59a12c-fef9-0310-b244-a6a79926bd2f Many files: defect 245 - revise checkpoint service to B.01.01. saCkpt.h, ipc_ckpt.h, sa_error.h: new file .del-ais_clm.h~ed02cd4c7506e43: Delete: include/ais_clm.h .del-ais_ckpt.h~b3c15abf536a6fbc: Delete: include/ais_ckpt.h BKrev: 42092786pSJQ8uC11PWAhWTC1Hwjqw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@486 fd59a12c-fef9-0310-b244-a6a79926bd2f defect 245 - revise checkpoint service to B.01.01. (Logical change 1.135) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@485 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: include/ais_ckpt.h }(Logical change 1.135) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@484 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: include/ais_clm.h }(Logical change 1.135) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@483 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@482 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Add more text output to display what occurs during recovery. Fix recovery bug which results in segfault. fix defect 228 - ring id file deleted causes assert. Fix recovery bug where recovery doesn't complete. Fix assert on commit phase. BKrev: 42092662LEVSqJlhbISw-Hweb4Cbfg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@481 fd59a12c-fef9-0310-b244-a6a79926bd2f Add more text output to display what occurs during recovery. Fix recovery bug which results in segfault. fix defect 228 - ring id file deleted causes assert. Fix recovery bug where recovery doesn't complete. Fix assert on commit phase. (Logical change 1.134) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@480 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-08 Mark Haverkamp Add test for channel open async (Logical change 1.133) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@479 fd59a12c-fef9-0310-b244-a6a79926bd2f Add handler for channel open async (Logical change 1.133) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@478 fd59a12c-fef9-0310-b244-a6a79926bd2f Add handler for channel open async and add a test to testevt for the async channel open function. Bug fix for event retention time clear exec code and added comments when converting nanoseconds to milliseconds. BKrev: 4208f4048DxJP7FLwfqHo7TfAoEJlA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@477 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-04 Mark Haverkamp This fixes a potential problem where, because of a config change, a joining node may not have a previous fragment of a message. It now discards continuations of that message until it is complete and a new message arrives. (Logical change 1.132) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@476 fd59a12c-fef9-0310-b244-a6a79926bd2f This fixes a potential problem where, because of a config change, a joining node may not have a previous fragment of a message. It now discards continuations of that message until it is complete and a new message arrives. BKrev: 4203ea20pYSrD8ZyY3pxIHSXFSooeg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@475 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove ais_evt.h since its content has been moved. BKrev: 4203e785HE6cQ-KCAgc-CHHOiZ0tEg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@474 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: include/ais_evt.h }(Logical change 1.131) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@473 fd59a12c-fef9-0310-b244-a6a79926bd2f Update to B spec API (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@472 fd59a12c-fef9-0310-b244-a6a79926bd2f Update event service to B spec API. BKrev: 4203e6d8nLXD7EMTNFZNfFwMnzt8mA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@471 fd59a12c-fef9-0310-b244-a6a79926bd2f Conver to B spec API. (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@470 fd59a12c-fef9-0310-b244-a6a79926bd2f update dependencies. (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@469 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@468 fd59a12c-fef9-0310-b244-a6a79926bd2f Update evt to B spec remove event related code and move to ipc_evt.h and saEvt.h (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@467 fd59a12c-fef9-0310-b244-a6a79926bd2f Use B spec include files (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@466 fd59a12c-fef9-0310-b244-a6a79926bd2f Convert to B spec. Add in endian conversion functions. (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@465 fd59a12c-fef9-0310-b244-a6a79926bd2f Moved from ais_msg.h so ais_msg.h doesn't need to be included by evt. (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@464 fd59a12c-fef9-0310-b244-a6a79926bd2f update evt to B spec. remove evt related code and move to ipc_evt.h and saEvt.h (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@463 fd59a12c-fef9-0310-b244-a6a79926bd2f update dependencies (Logical change 1.130) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@462 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@461 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-04 Steven Dake util.c: Fix merge error in util.c file BKrev: 4203d35fqEwtXJ4ZtIAnGz5HWpHsEQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@460 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix merge error in util.c file (Logical change 1.129) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@459 fd59a12c-fef9-0310-b244-a6a79926bd2f Small fix for data types. (Logical change 1.128) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@458 fd59a12c-fef9-0310-b244-a6a79926bd2f util.c: Small fix for data types. BKrev: 4203d2d97z9HmoblaHq8etKUqRGF0w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@457 fd59a12c-fef9-0310-b244-a6a79926bd2f Update to use 64 bit data types for handles. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@456 fd59a12c-fef9-0310-b244-a6a79926bd2f testamf1.c, testamf2.c: 64 bit handles. testevs.c, testclm.c, testamfth.c, testamf6.c, testamf4.c, testamf3.c: 64 bit handles evs.h: change data type of handle to 64 bits for evs_handle_t. ais_types.h: remove cluster membership types and put in saClm.h file. ais_msg.h: remove cluster membership code and put in ipc file. util.h, util.c: Update to use 64 bit data types for handles. clm.c: Update cluster membership to B.01.01. print.h: Update print data to new node structure. clm.h, clm.c: Update cluster membership service to B.01.01. saClm.h, ipc_gen.h, ipc_clm.h: new file BKrev: 4203ce72I415G1q4yQQNjFfAxSJVOA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@455 fd59a12c-fef9-0310-b244-a6a79926bd2f 64 bit handles (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@454 fd59a12c-fef9-0310-b244-a6a79926bd2f remove cluster membership code and put in ipc file. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@453 fd59a12c-fef9-0310-b244-a6a79926bd2f Update cluster membership service to B.01.01. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@452 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@451 fd59a12c-fef9-0310-b244-a6a79926bd2f 64 bit handles. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@450 fd59a12c-fef9-0310-b244-a6a79926bd2f Update print data to new node structure. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@449 fd59a12c-fef9-0310-b244-a6a79926bd2f remove cluster membership types and put in saClm.h file. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@448 fd59a12c-fef9-0310-b244-a6a79926bd2f change data type of handle to 64 bits for evs_handle_t. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@447 fd59a12c-fef9-0310-b244-a6a79926bd2f Update cluster membership to B.01.01. (Logical change 1.127) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@446 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@445 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-02-01 Steven Dake fix defect 131 - member element not set in cluster membership service (Logical change 1.126) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@444 fd59a12c-fef9-0310-b244-a6a79926bd2f More fixes for defect 204. From Mark Haverkamp: |Looking at the totempg config change function, I think that leaving |members should have their assembly area reset. I assume that any data |that is there is now invalid, and we wouldn't want it hanging around if |they return. Also, I think that the wrong index was being used to |initialize the assembly area index. (Logical change 1.126) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@443 fd59a12c-fef9-0310-b244-a6a79926bd2f totempg.c: More fixes for defect 204. From Mark Haverkamp: |Looking at the totempg config change function, I think that leaving |members should have their assembly area reset. I assume that any data |that is there is now invalid, and we wouldn't want it hanging around if |they return. Also, I think that the wrong index was being used to |initialize the assembly area index. clm.c: fix defect 131 - member element not set in cluster membership service BKrev: 41ffe9278sM8ZyWmj_3tmUK0YiqgSQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@442 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-31 Steven Dake Fix from mark and daniel for small packet sizes in totempg resulting in segfault. (Logical change 1.125) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@441 fd59a12c-fef9-0310-b244-a6a79926bd2f random drop defined to on.. turning off. (Logical change 1.125) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@440 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: random drop defined to on.. turning off. totempg.c: Fix from mark and daniel for small packet sizes in totempg resulting in segfault. BKrev: 41feac34ILMg8MsBZNAXgHefIA22zw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@439 fd59a12c-fef9-0310-b244-a6a79926bd2f totempg.c: Fixes defect 204 : messages not delivered correctly Patch from Mark Haverkamp. BKrev: 41fe8cbaM4eR7_3dP91qFSahtT23dA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@438 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes defect 204 : messages not delivered correctly Patch from Mark Haverkamp. (Logical change 1.124) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@437 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix bug in implementation that deviates from specification. (Logical change 1.123) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@436 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Fix bug in implementation that deviates from specification. BKrev: 41fe8c84mIHGgf3brH_kZTiOR_ACvQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@435 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-29 Steven Dake bug 214 Fix pthread mutex not unlocked in error path (Logical change 1.122) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@434 fd59a12c-fef9-0310-b244-a6a79926bd2f remove priority fields from evs service. .. (Logical change 1.122) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@433 fd59a12c-fef9-0310-b244-a6a79926bd2f remove priority fields from evs service. (Logical change 1.122) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@432 fd59a12c-fef9-0310-b244-a6a79926bd2f evs_mcast_joined.3: remove priority fields from evs service. .. evs_mcast_groups.3, evs.h, ais_msg.h: remove priority fields from evs service. util.c: bug 214 Fix pthread mutex not unlocked in error path BKrev: 41fbd660W-BROulgsZt4S6LYD_pcvw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@431 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-27 Steven Dake testevs.c, evsbench.c: Remove priorities from interfaces. evs.c: Remove priorities from evs interfaces. totempg.h, totempg.c, main.c, handlers.h, evt.c, evs.c, clm.c, ckpt.c, amf.c: Remove priorities from all interfaces. BKrev: 41f943030jN3Y5g5v10371Hgb2007A git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@430 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove priorities from evs interfaces. (Logical change 1.121) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@429 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove priorities from interfaces. (Logical change 1.121) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@428 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove priorities from all interfaces. (Logical change 1.121) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@427 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-24 Steven Dake Fix defect 203 commit token asserts (Logical change 1.120) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@426 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Fix defect 203 commit token asserts BKrev: 41f55007suViMhWrhOICprHxyacUwg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@425 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-24 Mark Haverkamp Small fixes. evt: fix member count until recovery code is done. totempg: remove dbug print. BKrev: 41f546cd0Fq27HJzalqHeE69x99WKg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@424 fd59a12c-fef9-0310-b244-a6a79926bd2f Temp config change code (Logical change 1.119) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@423 fd59a12c-fef9-0310-b244-a6a79926bd2f remove debug print (Logical change 1.119) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@422 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-22 Steven Dake Remove random dropping of packets in released version. (Logical change 1.118) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@421 fd59a12c-fef9-0310-b244-a6a79926bd2f totemsrp.c: Remove random dropping of packets in released version. BKrev: 41f2c58dbLMQ6YcKCJxEwIKRUk7lxw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@420 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-22 Steven Dake update to new totem code (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@419 fd59a12c-fef9-0310-b244-a6a79926bd2f enable some testing code. (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@418 fd59a12c-fef9-0310-b244-a6a79926bd2f Add test.cpp to makefile (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@417 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: exec/gmi.c }(Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@416 fd59a12c-fef9-0310-b244-a6a79926bd2f new benchmark runs for 10 seconds. (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@415 fd59a12c-fef9-0310-b244-a6a79926bd2f update to new crypto code (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@414 fd59a12c-fef9-0310-b244-a6a79926bd2f update to new crypto code. (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@413 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@412 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile: Add test.cpp to makefile testckpt.c: enable some testing code. evsbench.c, ckptbench.c: new benchmark runs for 10 seconds. test.cpp, rmd.h, totemsrp.h, totemsrp.c, totempg.h, totempg.c, swab.h: new file sq.h, Makefile, evt.c, evs.c, clm.c, amf.c, crypto.c, ckpt.c, aispoll.c: update to new totem code. queue.h, ais_msg.h: update to new totem code parse.h, parse.c, Makefile, main.h: update to new crypto code main.c, handlers.h: update to new crypto code. .del-gmi.h~7d81bcdb10af22b3: Delete: exec/gmi.h .del-gmi.c~df0f77a7b91ff206: Delete: exec/gmi.c BKrev: 41f2bdd3a_mEhs2wkBZHsD4_aft9vA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@411 fd59a12c-fef9-0310-b244-a6a79926bd2f update to new totem code. (Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@410 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: exec/gmi.h }(Logical change 1.117) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@409 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@408 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-11 Mark Haverkamp add in missing mutex unlock BKrev: 41e405deOyfzWPCaxv7_aIpgxL5C5g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@407 fd59a12c-fef9-0310-b244-a6a79926bd2f add in missing mutex unlock (Logical change 1.116) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@406 fd59a12c-fef9-0310-b244-a6a79926bd2f Need to specify create because the channel probably doesn't exist anymore. BKrev: 41e40050NKYAEN3N5kB1-R-klUXqUQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@405 fd59a12c-fef9-0310-b244-a6a79926bd2f Need to specify create because the channel probably doesn't exist anymore. (Logical change 1.115) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@404 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-10 Miyotaka Sakai amf.c: For Protection Group Tracking Bug BKrev: 41e29f00Yz2GqTwTyBhpW_zo6WjI1Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@403 fd59a12c-fef9-0310-b244-a6a79926bd2f For Protection Group Tracking Bug (Logical change 1.114) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@402 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-08 Steven Dake tlist.h: Fix required for previous tlist.c commit. BKrev: 41e01e1cFsurlTBuApZjiZ3l9RFdBw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@401 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix required for previous tlist.c commit. (Logical change 1.113) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@400 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2005/01/08 02:16:10-07:00 mvista.com!sdake tlist.c: Fix use of memory area after free when timer_fn deletes a timer. The 3 cases are: 1. timer_fn deletes its own timer 2. timer_fn deletes next timer after its own timer 3. timer_fn deletes any other timer BKrev: 41dfa4faNWgA_s0fcyzlj-jhOFNKAA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@399 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix use of memory area after free when timer_fn deletes a timer. The 3 cases are: 1. timer_fn deletes its own timer 2. timer_fn deletes next timer after its own timer 3. timer_fn deletes any other timer (Logical change 1.112) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@398 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-07 Steven Dake evs.c, clm.c, amf.c: Fix missing unlock in error conditions reported by Kristen Smith BKrev: 41deef37lfq4PXPbgolOpenG8xUJYg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@397 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix missing unlock in error conditions reported by Kristen Smith (Logical change 1.111) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@396 fd59a12c-fef9-0310-b244-a6a79926bd2f 2005-01-07 Kristen Smith Add missing mutex unlocks in evt dispatch function. BKrev: 41dec6bdm_JzS8aFCPMDziJhBZprSw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@395 fd59a12c-fef9-0310-b244-a6a79926bd2f I was running into a problem where the evt api appeared to be getting into a deadlock situtation. The problem would occur when I would kill aisexec while my program was running (using EVT and CLM apis). My program is multi-threaded where 1 thread is calling evtDispatch and other threads can be calling evtPublish at various times. The problem I ran into is when I killed aisexec, the evtDispatch would take a lock, but never give it back. At the same time, my sending thread would call evtPublish which would take the lock and hang since evtDispatch never gave up the lock it took. The fix was to add a few unlocks in evt.c where they appeared to be missing. Here is the info: 1) line 504 in evt.c (lib dir) calls pthread_mutex_unlock(&evti->ei_mutex); goto error_unlock; 2) There are subsequent calls to goto error_unlock in later error statements that do not unlock the mutex before the goto call - the lines are 534 and 541 Adding the unlock right before the goto @ 534 and @ 541 fixes the deadlock for my scenario. Kristen Smith Nortel Networks (Logical change 1.110) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@394 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-29 Steven Dake Improve code coverage by testing a few more APIs in the AMF. (Logical change 1.109) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@393 fd59a12c-fef9-0310-b244-a6a79926bd2f testamf.c: Improve code coverage by testing a few more APIs in the AMF. BKrev: 41ab821fPmG01mXBZYuPJWKuOLHj5A git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@392 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-25 Steven Dake code coverage work cleanup (Logical change 1.108) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@391 fd59a12c-fef9-0310-b244-a6a79926bd2f fix double ;; which causes gcc 2.95 to fail to compile (Logical change 1.108) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@390 fd59a12c-fef9-0310-b244-a6a79926bd2f testparse.c: code coverage work cleanup evt.c: fix double ;; which causes gcc 2.95 to fail to compile BKrev: 41a51dc9RLGeGsr9z5GLjSGzFovoKQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@389 fd59a12c-fef9-0310-b244-a6a79926bd2f correct stack corruption when logging data. (Logical change 1.107) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@388 fd59a12c-fef9-0310-b244-a6a79926bd2f remove extra printf from gmi. (Logical change 1.107) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@387 fd59a12c-fef9-0310-b244-a6a79926bd2f parse.c: correct stack corruption when logging data. gmi.c: remove extra printf from gmi. BKrev: 41a51930u36bUFf2s34EDiXBXWb-1Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@386 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-24 Steven Dake Fix compile with gcc 2.95. (Logical change 1.106) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@385 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c, amf.c: Fix compile with gcc 2.95. BKrev: 41a50bf5bDdOboBSLlLamrDIChW6LQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@384 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-12 Steven Dake evs.c: Kristen Smith reported a bug where evs would return 0.0.0.0 in the source address. This patch fixes that defect 182. BKrev: 41950c4eWm2WAOmtw1VmnIPUzCirKw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@383 fd59a12c-fef9-0310-b244-a6a79926bd2f Kristen Smith reported a bug where evs would return 0.0.0.0 in the source address. This patch fixes that defect 182. (Logical change 1.105) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@382 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-08 somacoma Merge 2004/10/29 00:13:35+02:00 somacoma.net!dns evt.c: Fix type-punning warnings with gcc-3.3 and later. BKrev: 418eb0e5AwiqPJ0GA8LlrTmNOv1pVQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@381 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix type-punning warnings with gcc-3.3 and later. (Logical change 1.104) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@380 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-06 Steven Dake Commit timeout wasn't stopped when entering gather state. This patch stops the commit timeout when the gather state is entered. (Logical change 1.103) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@379 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2004/11/06 10:42:19-07:00 mvista.com!sdake gmi.c: Commit timeout wasn't stopped when entering gather state. This patch stops the commit timeout when the gather state is entered. BKrev: 418d0d02UJqL-86F2zLxnkruJk2Z7Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@378 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-05 Miyotaka Sakai Makefile: append keygen.o to clean target amf.c: match function name to coding style BKrev: 418baa69pjW8OB2yd60kweHMtHG5Fg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@377 fd59a12c-fef9-0310-b244-a6a79926bd2f match function name to coding style (Logical change 1.102) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@376 fd59a12c-fef9-0310-b244-a6a79926bd2f append keygen.o to clean target (Logical change 1.102) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@375 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-04 Miyotaka Sakai implement gmi_token_callback in amf.c (Logical change 1.101) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@374 fd59a12c-fef9-0310-b244-a6a79926bd2f Makefile: get rid of make error amf.c: implement gmi_token_callback in amf.c BKrev: 418aaf0fKs_99rjhstkG78ZR02mT9g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@373 fd59a12c-fef9-0310-b244-a6a79926bd2f get rid of make error (Logical change 1.101) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@372 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-02 Miyotaka Sakai fix wrong Hastat after node join (Logical change 1.100) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@371 fd59a12c-fef9-0310-b244-a6a79926bd2f fix wrong HaStat after node join (Logical change 1.100) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@370 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-11-02 Steven Dake Merge persist.az.mvista.com:/home/sdake/openais into persist.az.mvista.com:/export/hadev/openais/defect-174 2004/10/31 00:48:17+09:00 sakai!sakai ais_msg.h: fix wrong Hastat after node join amf.c: fix wrong HaStat after node join BKrev: 4187f5f99iXw5l-V34v_kR2YTLDpgg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@369 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-30 Steven Dake Add rlimit code to allow openais to work with linux kernel 2.6.9 or later (Logical change 1.99) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@368 fd59a12c-fef9-0310-b244-a6a79926bd2f Add rlimit code to allow openais to work with linux kernel 2.6.9 or later BKrev: 4182db2fMpOhxCxRnyhHxC5YOCUhvg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@367 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-28 Steven Dake 64bit safe ais types (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@366 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove specific o files instead of all objects. (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@365 fd59a12c-fef9-0310-b244-a6a79926bd2f Type checking changes for printf's (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@364 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix off by one which oculd cause invalid handle to be used. (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@363 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix off by one which could cause invalid handle to be used. (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@362 fd59a12c-fef9-0310-b244-a6a79926bd2f type safeness printing. (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@361 fd59a12c-fef9-0310-b244-a6a79926bd2f Several fixes by Daniel Stodden. Possible crash on invalid handle fixed in library and executive. Also parser could crash when out of memory occurs. util.c: Fix off by one which oculd cause invalid handle to be used. testevt.c, testckpt.c, subscription.c, evtbench.c: type safeness printing. publish.c: type safeness prnting. ais_types.h: 64bit safe ais types Makefile: Remove specific o files instead of all objects. parse.c: Fix crash in parser. hdb.c: Fix off by one which could cause invalid handle to be used. gmi.c: remove type-punned pointer warning ckpt.c, amf.c: Type checking changes for printf's BKrev: 4180200fVk1m035hXoENX87UgLUrKg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@360 fd59a12c-fef9-0310-b244-a6a79926bd2f type safeness prnting. (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@359 fd59a12c-fef9-0310-b244-a6a79926bd2f remove type-punned pointer warning (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@358 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix crash in parser. (Logical change 1.98) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@357 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-22 Mark Haverkamp I added some cases to test multiple channel and subscriptions as well as some retained event tests. (Logical change 1.97) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@356 fd59a12c-fef9-0310-b244-a6a79926bd2f Here some updates to the event code. The first are changes to exec/evt.c: 1. manage the base event ID a little better. 2. I also added some private log levels to allow me to selectively turn on debug output in some sections of the code without turning on everything. 3. Remove (EVT) from all the printf calls. The next is an update to the testevt program. I added some cases to test multiple channel and subscriptions as well as some retained event tests. BKrev: 417978c5I2I15AFzIQ0zITa5_ESuZQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@355 fd59a12c-fef9-0310-b244-a6a79926bd2f 1. manage the base event ID a little better. 2. I also added some private log levels to allow me to selectively turn on debug output in some sections of the code without turning on everything. 3. Remove (EVT) from all the printf calls. (Logical change 1.97) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@354 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-18 Steven Dake Change logging to include service and description. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@353 fd59a12c-fef9-0310-b244-a6a79926bd2f Change loggint o include service and description. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@352 fd59a12c-fef9-0310-b244-a6a79926bd2f Add log print service. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@351 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: exec/log/print.c }(Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@350 fd59a12c-fef9-0310-b244-a6a79926bd2f Add log service level. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@349 fd59a12c-fef9-0310-b244-a6a79926bd2f Big update for better logging to file, syslog, or stderr. print.h: Change loggint o include service and description. print.c: Change logging to include service and description. parse.h, parse.c: Change parser to read new configuration file format. main.c: Some changes for log services. gmi.c, evt.c, evs.c, clm.c, ckpt.c: Add log service level. amf.c: Add log print service. openais.conf: new file .del-network.conf~b38a0f011c4341a7: Delete: conf/network.conf QUICKSTART: Updates that explains new configuration file options. .del-print.h~e83281cecec7f02d: Delete: exec/log/print.h .del-print.c~53000a4a22b4cd: Delete: exec/log/print.c BKrev: 41740e46Y1NJgmUMM6WceFwxBVXOVg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@348 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@347 fd59a12c-fef9-0310-b244-a6a79926bd2f Updates that explains new configuration file options. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@346 fd59a12c-fef9-0310-b244-a6a79926bd2f Change parser to read new configuration file format. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@345 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: conf/network.conf }(Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@344 fd59a12c-fef9-0310-b244-a6a79926bd2f Delete: exec/log/print.h }(Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@343 fd59a12c-fef9-0310-b244-a6a79926bd2f Some changes for log services. (Logical change 1.96) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@342 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@341 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-15 Mark Haverkamp Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_event 2004/10/15 07:34:46-07:00 osdl.net!markh Fix some problems in the open channel recovery code that could cause remaining nodes to have an incorrect count when a node left the membership. BKrev: 416fe0393RmyVFqRVwmPFENov-OyGw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@340 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix some problems in the open channel recovery code that could cause remaining nodes to have an incorrect count when a node left the membership. (Logical change 1.95) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@339 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-15 Steven Dake Make testevs exit on evs_initialize if the return code is not EVS_OK. (Logical change 1.94) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@338 fd59a12c-fef9-0310-b244-a6a79926bd2f Add handle instance destructor code. Previously it was set to null and was being called which caused a null jump. (Logical change 1.94) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@337 fd59a12c-fef9-0310-b244-a6a79926bd2f testevs.c: Make testevs exit on evs_initialize if the return code is not EVS_OK. evs.c: Add handle instance destructor code. Previously it was set to null and was being called which caused a null jump. BKrev: 416f1bdbIKOv0YEK2JzYcGImsLWrsA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@336 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-12 Mark Haverkamp Fix some compiler warnings with gcc 3.4 (Logical change 1.93) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@335 fd59a12c-fef9-0310-b244-a6a79926bd2f Auto merged 2004/10/12 14:57:45-07:00 osdl.net!markh Message type support for tracking open channels (Logical change 1.93) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@334 fd59a12c-fef9-0310-b244-a6a79926bd2f Auto merged 2004/10/12 14:57:45-07:00 osdl.net!markh This takes care of tracking open channels through configuration changes. The channel structures and data are maintained until the last instance is closed and there are no unexpired retained events. Then the data is freed up. (Logical change 1.93) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@333 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_event 2004/10/12 14:57:46-07:00 osdl.net!markh Handle open channels cluster wide and track opens. Free up channel data when there are no more references. Also, fix some compiler warnings in lib/evt.c BKrev: 416c53d279cT2JNVM_jQ5qBjLGe6EQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@332 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-11 Miyotaka Sakai correct defalut component name (Logical change 1.92) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@331 fd59a12c-fef9-0310-b244-a6a79926bd2f testamf5.c, testamf3.c: correct defalut component name testamf4.c: correct defalut component name BKrev: 416a4e740QCv2KoVOb0lbFRJYINodA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@330 fd59a12c-fef9-0310-b244-a6a79926bd2f correct defalut component name (Logical change 1.92) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@329 fd59a12c-fef9-0310-b244-a6a79926bd2f main.c, handlers.h, evt.c, evs.c, clm.c, ckpt.c, amf.c: exec_dump_fn support as SIGUSR2 handler to easy to debug BKrev: 416a3b42053878SDRpbH_G7EUB4rAQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@328 fd59a12c-fef9-0310-b244-a6a79926bd2f exec_dump_fn support as SIGUSR2 handler to easy to debug (Logical change 1.91) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@327 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-05 Steven Dake Auto merged 2004/10/04 16:08:46-07:00 mvista.com!sdake Remove unneeded debug printf (Logical change 1.90) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@326 fd59a12c-fef9-0310-b244-a6a79926bd2f Change req_header to res_header to match rest of library, especially for out of order queued messages. (Logical change 1.90) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@325 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2004/10/04 16:10:02-07:00 mvista.com!sdake testamf.c: Change testamf to just test protection group tracking and componentcapabilitymodelget. amf.c: Change req_header to res_header to match rest of library, especially for out of order queued messages. Remove unneeded debug printf BKrev: 416301fc-l-UbKOcLV0FMuNqzCEQIw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@324 fd59a12c-fef9-0310-b244-a6a79926bd2f Auto merged 2004/10/04 16:09:33-07:00 mvista.com!sdake Change testamf to just test protection group tracking and componentcapabilitymodelget. (Logical change 1.90) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@323 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-05 Miyotaka Sakai amf.h, main.c, amf.c: add Amfcomponent state dump mechanism BKrev: 4162c542Q_AtRTLkaWtprRi7H3ew7w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@322 fd59a12c-fef9-0310-b244-a6a79926bd2f add Amfcomponent state dump mechanism (Logical change 1.89) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@321 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-02 Miyotaka Sakai add surpressing health check printf message (Logical change 1.88) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@320 fd59a12c-fef9-0310-b244-a6a79926bd2f testamf.c: add to reduce health check printf message testamf6.c, testamf5.c, testamf4.c, testamf3.c, testamf2.c, testamf1.c: add to reduce health check printf message BKrev: 415e7532j5RNbHSwQl4tF2HzMJjayQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@319 fd59a12c-fef9-0310-b244-a6a79926bd2f add suppressing healthcheck pritf message (Logical change 1.88) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@318 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-10-02 Steven Dake Fix a bunch of errors in node get and async node get. (Logical change 1.87) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@317 fd59a12c-fef9-0310-b244-a6a79926bd2f Increase code coverage of clm code. (Logical change 1.87) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@316 fd59a12c-fef9-0310-b244-a6a79926bd2f testclm.c: Increase code coverage of clm code. clm.c, ais_msg.h: Fix a bunch of errors in node get and async node get. BKrev: 415e032aF1mVsl5HqRqEZTGL5S90VA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@315 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-29 Miyotaka Sakai get rid of compile warning (Logical change 1.86) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@314 fd59a12c-fef9-0310-b244-a6a79926bd2f testckpt.c: get rid of compile warning BKrev: 415a0e3b7pcmfNPh8_SQDhuaxhArpQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@313 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-28 Mark Haverkamp Auto merged 2004/09/28 11:29:35-07:00 mvista.com!sdake Configuration change support from Miyotaka Sakai. (Logical change 1.85) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@312 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge markh@bk.osdl.org:/var/bk/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_event 2004/09/28 11:29:45-07:00 mvista.com!sdake parse.h, amf.c: Configuration change support from Miyotaka Sakai. BKrev: 4159bb79gTMIV1ezWSXqMb61zwoXkg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@311 fd59a12c-fef9-0310-b244-a6a79926bd2f Auto merged 2004/09/28 11:29:17-07:00 mvista.com!sdake Configuration change support from Miyotaka Sakai. (Logical change 1.85) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@310 fd59a12c-fef9-0310-b244-a6a79926bd2f Moved the SaNameTisNNameT function to util.c and called it name_match. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@309 fd59a12c-fef9-0310-b244-a6a79926bd2f Replace SaNameTisNameT with name_match from util.[ch] (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@308 fd59a12c-fef9-0310-b244-a6a79926bd2f evt code updated to handle cluster config changes better. Now, when a node joins, it is sent any retained events that have time left on them. Also, if the joining node had been a part of the cluster in the past, it is sent the next event ID that it should use so as to not generate duplicate event IDs. Channel open requests are now completed in the exec handler, with channel close code to follow later. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@307 fd59a12c-fef9-0310-b244-a6a79926bd2f Mostly event service updates to handle recovery after a configuration change. (Selecting next event ID and sending retained events to the joiner). BKrev: 4159ad7atHUdo0CF1QjlYHOM-fjAvQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@306 fd59a12c-fef9-0310-b244-a6a79926bd2f testparse.c needs util.o now. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@305 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@304 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove some old TODO comments. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@303 fd59a12c-fef9-0310-b244-a6a79926bd2f Added util.[ch] for time and SaNameT match functions. Also updated dependencies. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@302 fd59a12c-fef9-0310-b244-a6a79926bd2f Updates for evt to handle recovery after a config change. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@301 fd59a12c-fef9-0310-b244-a6a79926bd2f added a semi-quiet mode. (Logical change 1.84) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@300 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@299 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-28 Steven Dake Add token callback for recovery routines. (Logical change 1.83) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@298 fd59a12c-fef9-0310-b244-a6a79926bd2f Add token callback for recovery. gmi.h: Add token callback functions to header. gmi.c: Add token callback for recovery routines. BKrev: 4159aa0ejs1nwJhT7hT1XL-gr9wv2Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@297 fd59a12c-fef9-0310-b244-a6a79926bd2f Add token callback functions to header. (Logical change 1.83) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@296 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-24 Mark Haverkamp Check to see that the message can be sent before proceeding. (Logical change 1.82) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@295 fd59a12c-fef9-0310-b244-a6a79926bd2f add assert around clmNodeJoinSend since the call to gmi_mcast can return a failure now. (Logical change 1.82) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@294 fd59a12c-fef9-0310-b244-a6a79926bd2f add assert around gmi_mcast calls since it can return a failure now. BKrev: 4154791ch3ag3FHVGxaUfrVFsvN3sQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@293 fd59a12c-fef9-0310-b244-a6a79926bd2f add assert around gmi_mcast since it can return a failure now. (Logical change 1.82) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@292 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-24 Steven Dake testparse.c: Fix commit error in changeset 1.77. BKrev: 41534ab0cY4dYHQw-qoPHLMpXQTAAQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@291 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix commit error in changeset 1.77. (Logical change 1.81) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@290 fd59a12c-fef9-0310-b244-a6a79926bd2f Allow getSaNameT to be compiled in for application reporting. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@289 fd59a12c-fef9-0310-b244-a6a79926bd2f Add sectione xpiration and get checkpoint durations working properly. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@288 fd59a12c-fef9-0310-b244-a6a79926bd2f Clean up duration and expiration functions. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@287 fd59a12c-fef9-0310-b244-a6a79926bd2f Finalize expiration of sections and checkpoints. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@286 fd59a12c-fef9-0310-b244-a6a79926bd2f Test expiration timer. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@285 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix build error with -DDEBUG set. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@284 fd59a12c-fef9-0310-b244-a6a79926bd2f Add final support for duration timers on checkpoints and expiration timers. This cleans up memory leaks that could occur because checkpoints are expected to cleanup with the expiration and duration timers. testckpt.c: Test expiration timer. ckptbenchth.c: Reduce number of threads so runs with valgrind operate faster. ckpt.c: Clean up duration and expiration functions. ais_types.h: Add sectione xpiration and get checkpoint durations working properly. ais_msg.h: Add section expiration and get checkpoint durations working properly. ckpt.h, ckpt.c: Finalize expiration of sections and checkpoints. print.c: Allow getSaNameT to be compiled in for application reporting. evs.c: Fix build error with -DDEBUG set. BKrev: 41534a3dcm_0gpB32jNbsek3bGYwXQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@283 fd59a12c-fef9-0310-b244-a6a79926bd2f Reduce number of threads so runs with valgrind operate faster. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@282 fd59a12c-fef9-0310-b244-a6a79926bd2f Add section expiration and get checkpoint durations working properly. (Logical change 1.80) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@281 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-23 Steven Dake Store handle address in timer structure. When timer expires, wipe out the handle address's value, since the timer is no longer valid. This allows double frees, or frees on handles that haven't been added. One note of caution: a handle cannot be moved into another variable and be expected to work properly for double frees. (Logical change 1.79) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@280 fd59a12c-fef9-0310-b244-a6a79926bd2f Change define for timer handle. (Logical change 1.79) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@279 fd59a12c-fef9-0310-b244-a6a79926bd2f tlist.h: Change interface to allow storing of handle address in timer structure. aispoll.h, aispoll.c: Change define for timer handle. tlist.c: Store handle address in timer structure. When timer expires, wipe out the handle address's value, since the timer is no longer valid. This allows double frees, or frees on handles that haven't been added. One note of caution: a handle cannot be moved into another variable and be expected to work properly for double frees. BKrev: 4152267afe09VjiyO_78GrWKiND_oQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@278 fd59a12c-fef9-0310-b244-a6a79926bd2f Change interface to allow storing of handle address in timer structure. (Logical change 1.79) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@277 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-22 Steven Dake Fix annoying build failure because of code coverage increases. (Logical change 1.78) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@276 fd59a12c-fef9-0310-b244-a6a79926bd2f testparse.c: Fix annoying build failure because of code coverage increases. BKrev: 4151d91edCQRlmhK78LajPaUV35NyQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@275 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-21 Steven Dake Add retainined events while also cleaning up memory leakage that occurs because of a lack of retained events. (Logical change 1.77) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@274 fd59a12c-fef9-0310-b244-a6a79926bd2f Add duration timer support. ckpt.h: Add retained checkpoints timer to checkpoint structure. ckpt.c: Add retained checkpoints while also cleaning up memory leakage that occurs because of a lack of retained events. BKrev: 414f7d20vmWMyWW9eWJST5Ew5sw_yw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@273 fd59a12c-fef9-0310-b244-a6a79926bd2f Add retained events timer to checkpoint structure. (Logical change 1.77) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@272 fd59a12c-fef9-0310-b244-a6a79926bd2f Get rid of valgrind warning and possible segfault. (Logical change 1.76) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@271 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: Get rid of valgrind warning and possible segfault. BKrev: 414f7c5cf4HwWODMiTAI2PCkLX1fnw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@270 fd59a12c-fef9-0310-b244-a6a79926bd2f Missed merge of these two files from last changeset. (Logical change 1.75) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@269 fd59a12c-fef9-0310-b244-a6a79926bd2f handlers.h, gmi.h: Missed merge of these two files from last changeset. BKrev: 414f573d4f7iW8ZMEKLNAImK24Vn3g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@268 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-18 Steven Dake Add recovery plug support to evs. l (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@267 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support to amf. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@266 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support to openais. This allows messages that are recovery messages to be blocked until recovery completes. All low/medium/high messages cannot be transmitted until all processors have unplugged themselves. If a configuration change occurs, the plugs are invalidated and the recovery starts again. Makefile: Remove two build errors with extra object file included that is not needed. main.c: Add recovery plug support. gmi.c: Add recovery plug support to group messaging. evt.c: Add recovery plug support to evt. evs.c: Add recovery plug support to evs. l clm.c: Add recovery plug support to clm. ckpt.c: Add recovery plug support to ckpt. amf.c: Add recovery plug support to amf. BKrev: 414bddd7HCsNs1rz-sJV92mB6fupCw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@265 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support to clm. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@264 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support to group messaging. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@263 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support to evt. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@262 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@261 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove two build errors with extra object file included that is not needed. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@260 fd59a12c-fef9-0310-b244-a6a79926bd2f Add recovery plug support to ckpt. (Logical change 1.74) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@259 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-16 Steven Dake gmi.c: Bug 44. Fixes assertion in executive when running ckptbenchth. BKrev: 4148dc42NSqyi9F4s6exhsVarsF10Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@258 fd59a12c-fef9-0310-b244-a6a79926bd2f Bug 44. Fixes assertion in executive when running ckptbenchth. (Logical change 1.73) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@257 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-15 Steven Dake main.c: Call poll_destroy when executing ais_done. This increases code coverage from 66.9% to 82.3%. BKrev: 4148ac12oFAraidHBF8lhdpMgBXc1w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@256 fd59a12c-fef9-0310-b244-a6a79926bd2f Call poll_destroy when executing ais_done. This increases code coverage from 66.9% to 82.3%. (Logical change 1.72) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@255 fd59a12c-fef9-0310-b244-a6a79926bd2f Increase code coverage from 19.4% to 100% by adding defines to remove debug print code in production builds. Also removed function by ifdef that is never used in the project. (Logical change 1.71) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@254 fd59a12c-fef9-0310-b244-a6a79926bd2f print.c: Increase code coverage from 19.4% to 100% by adding defines to remove debug print code in production builds. Also removed function by ifdef that is never used in the project. BKrev: 4148a813APgP44Mw4XR-P--e0qYzTw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@253 fd59a12c-fef9-0310-b244-a6a79926bd2f Increased code coverage of tlist.c from 74.5% to 95.9%. (Logical change 1.70) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@252 fd59a12c-fef9-0310-b244-a6a79926bd2f tlist.c: Increased code coverage of tlist.c from 74.5% to 95.9%. BKrev: 4148a64akC3-Hr8RMOSHHChVWBYM5Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@251 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove unused code. (Logical change 1.69) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@250 fd59a12c-fef9-0310-b244-a6a79926bd2f crypto.h: Remove unused code. crypto.c: Remove unused code and change some error detection to assertions. This increases code covergae from 80.2% to 92.7% with no change in functionality. BKrev: 4148a3f73A3zw2reb3HkDh6RWIrcag git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@249 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove unused code and change some error detection to assertions. This increases code covergae from 80.2% to 92.7% with no change in functionality. (Logical change 1.69) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@248 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-10 Steven Dake BUG 37. Fix several leaks during configuration changes. Also fixes a possible assert with many large messages being sent from multiple processors at the same time. (Logical change 1.68) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@247 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: BUG 37. Fix several leaks during configuration changes. Also fixes a possible assert with many large messages being sent from multiple processors at the same time. BKrev: 4140fd9dwjk3xOLpFw3Ivhp0_f_oYw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@246 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-08 Steven Dake Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2004/09/08 01:11:43-07:00 mvista.com!sdake Code coverage support in build environment and test programs. Many files: Add signal handler so code coverage records coverage Makefile: Add code coverage build options and make clean target BKrev: 413ebecc_2LPT2fuaQZhw9BymLz6bQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@245 fd59a12c-fef9-0310-b244-a6a79926bd2f Add signal handler so code coverage records coverage (Logical change 1.67) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@244 fd59a12c-fef9-0310-b244-a6a79926bd2f Add code coverage build options and make clean target (Logical change 1.67) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@243 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-08 Steven Dake Get rid of magic number 1500 and replace with PACKET_SIZE_MAX. Also fix a glaring memory overwrite bug in gmi_init which would init 256k of memory instead of PACKET_SIZE_MAX memory. (Logical change 1.66) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@242 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: Get rid of magic number 1500 and replace with PACKET_SIZE_MAX. Also fix a glaring memory overwrite bug in gmi_init which would init 256k of memory instead of PACKET_SIZE_MAX memory. BKrev: 413e7bc48wgkqG1E4wSbG9KQkBJMkg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@241 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-07 Steven Dake EVS library makes compiler warning on some compilers. Found and fixed by Sakai Miyotaka. (Logical change 1.65) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@240 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-07 Mark Haverkamp Merge 2004/09/04 16:52:55-07:00 broked.org!sdake Makefile missing clean target for evs bench. Found and fixed by Sakai Miyotaka. (Logical change 1.65) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@239 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-07 Steven Dake (Logical change 1.65) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@238 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-07 Mark Haverkamp Merge 2004/09/06 13:30:28-07:00 broked.org!sdake Added man pages and html generation for the EVS interface. 2004/09/04 16:54:20-07:00 broked.org!sdake One serious bug in AMF and a few minor nits fixed from patch from Sakai Miyotaka. Makefile: Makefile missing clean target for evs bench. Found and fixed by Sakai Miyotaka. evs.c: EVS library makes compiler warning on some compilers. Found and fixed by Sakai Miyotaka. amf.c: State change from standby-active to outofservice could result in invalid number of active units. Found and fixed by Sakai Miyotaka. BKrev: 413dd134zK97xpVttMuRVm6GdcbQlg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@237 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-07 Steven Dake State change from standby-active to outofservice could result in invalid number of active units. Found and fixed by Sakai Miyotaka. (Logical change 1.65) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@236 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@235 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-07 Mark Haverkamp Clean up some comments code. (comments, old macro). (Logical change 1.64) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@234 fd59a12c-fef9-0310-b244-a6a79926bd2f Add return value to main. (Logical change 1.64) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@233 fd59a12c-fef9-0310-b244-a6a79926bd2f Some code cleanup. BKrev: 413dd073MFU2gjJ72eQd8SOvDfpBwQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@232 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-09-02 Mark Haverkamp Development, updates, and bug fixes to event service lib. (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@231 fd59a12c-fef9-0310-b244-a6a79926bd2f Added special SA_CLM_LOCAL_NODE_ID case to receive your own cluster node data. (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@230 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@229 fd59a12c-fef9-0310-b244-a6a79926bd2f Added event testing programs: evtbench, subscription, publish (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@228 fd59a12c-fef9-0310-b244-a6a79926bd2f Add in list_add_tail and list_empty functions (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@227 fd59a12c-fef9-0310-b244-a6a79926bd2f Check to make sure that sequence ID passed into sq_item_inuse is valid. (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@226 fd59a12c-fef9-0310-b244-a6a79926bd2f Event Service Implementation and fixes. BKrev: 41375569R3AaZBcK1LtaD9gt36SuLQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@225 fd59a12c-fef9-0310-b244-a6a79926bd2f Add event service message types. (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@224 fd59a12c-fef9-0310-b244-a6a79926bd2f Completed most of the event service functionality. (Logical change 1.63) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@223 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@222 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-31 Steven Dake Mark a bug for later resolution (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@221 fd59a12c-fef9-0310-b244-a6a79926bd2f Added the EVS service and changed the library queue to 256 entries. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@220 fd59a12c-fef9-0310-b244-a6a79926bd2f Major rewrite of saRecvQueue. Fixed is: activate poll messages are not sent over and over The message header is read into the return buffer if the message doesn't match, a new message is allocated This allows the message buffer for saRecvQueue to be small, but allows receiving very large messages. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@219 fd59a12c-fef9-0310-b244-a6a79926bd2f Add the evs library (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@218 fd59a12c-fef9-0310-b244-a6a79926bd2f Added the evs target. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@217 fd59a12c-fef9-0310-b244-a6a79926bd2f This changeset includes major fixes to the IPC from the executive to the library. Also included is an entirely new API called the EVS api (Extended Virtual Synchrony). This API provides EVS semantics for those developers that require this model of programming. The API is defined in include/evs.h and is very simple. The API provides: group semantics with 32 byte group keys. delivery callback configuration change callback join one or more groups leave one or more groups multicast a message to the instance's joined groups multicast a message to any other group Makefile: Add the testevs and evsbench targets. evs.c, testevs.c, evsbench.c, evs.h: new file Makefile: Add the evs library util.c: Major rewrite of saRecvQueue. Fixed is: activate poll messages are not sent over and over The message header is read into the return buffer if the message doesn't match, a new message is allocated This allows the message buffer for saRecvQueue to be small, but allows receiving very large messages. amf.c: Mark a bug for later resolution ais_msg.h: Add the evs messages and descriptors. Makefile: Added the evs target. main.h: Added the EVS service and changed the library queue to 256 entries. main.c: major rewrite of the IPC code for sending messages to the library. What was there previously was very broken. gmi.c: Fix bug where transition from multiple members to single members would cause messages not to be sent. Also fixed an assertion in transition from multiple processors to one processor. BKrev: 41343518pVUD6aQu4urTw6ClPiOl3w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@216 fd59a12c-fef9-0310-b244-a6a79926bd2f Add the testevs and evsbench targets. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@215 fd59a12c-fef9-0310-b244-a6a79926bd2f major rewrite of the IPC code for sending messages to the library. What was there previously was very broken. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@214 fd59a12c-fef9-0310-b244-a6a79926bd2f Add the evs messages and descriptors. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@213 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@212 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix bug where transition from multiple members to single members would cause messages not to be sent. Also fixed an assertion in transition from multiple processors to one processor. (Logical change 1.62) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@211 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@210 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-28 Steven Dake gmi.c: Flush all multicast messages by delivering them before processing the token. This ensures that the mcast fd doesn't buffer too many old messages and avoids an assert. BKrev: 412fd3cesE7M-pXl9OZs1X2CyK7Y4A git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@209 fd59a12c-fef9-0310-b244-a6a79926bd2f Flush all multicast messages by delivering them before processing the token. This ensures that the mcast fd doesn't buffer too many old messages and avoids an assert. (Logical change 1.61) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@208 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-24 Steven Dake Add initial support for multipathing to group messaging. (Logical change 1.60) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@207 fd59a12c-fef9-0310-b244-a6a79926bd2f Change gmi interface to support multipathing. (Logical change 1.60) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@206 fd59a12c-fef9-0310-b244-a6a79926bd2f Change network configuration parser interface to support multipathing. (Logical change 1.60) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@205 fd59a12c-fef9-0310-b244-a6a79926bd2f parse.h: Change network configuration parser interface to support multipathing. gmi.h, main.c: Change gmi interface to support multipathing. parse.c: Change network configuration parser to read multiple interfaces. gmi.c: Add initial support for multipathing to group messaging. BKrev: 412a981dC8TjKSqUYOtAx6jKoO-UlA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@204 fd59a12c-fef9-0310-b244-a6a79926bd2f Change network configuration parser to read multiple interfaces. (Logical change 1.60) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@203 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-24 Mark Haverkamp Need to check the size of the response header here. (Logical change 1.59) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@202 fd59a12c-fef9-0310-b244-a6a79926bd2f Need to check the size of the response header instead of the request header in saRecvQueue. BKrev: 412a6f3b4NlVb-n94TuM1jqiD4KUgA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@201 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-23 Steven Dake Clean up usage of ais_done. This includes passing a value for each done type. Also, libais_disconnect cleaned up so it doesn't ais_done when its queues are full. Instead it disconnects the library connection. A new connection state variable added to the conn_info structure in place of active. (Logical change 1.58) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@200 fd59a12c-fef9-0310-b244-a6a79926bd2f Changed number of queueable messages to the library from 8192 to 128 messages. (Logical change 1.58) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@199 fd59a12c-fef9-0310-b244-a6a79926bd2f Use new connection enumeration with AMF code. (Logical change 1.58) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@198 fd59a12c-fef9-0310-b244-a6a79926bd2f main.h: Changed number of queueable messages to the library from 8192 to 128 messages. main.c: Clean up usage of ais_done. This includes passing a value for each done type. Also, libais_disconnect cleaned up so it doesn't ais_done when its queues are full. Instead it disconnects the library connection. A new connection state variable added to the conn_info structure in place of active. amf.c: Use new connection enumeration with AMF code. BKrev: 41297f85ZsPdr8oHUfjQ6v_A6b6ybw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@197 fd59a12c-fef9-0310-b244-a6a79926bd2f Missed commit to changes for queue.h. (Logical change 1.57) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@196 fd59a12c-fef9-0310-b244-a6a79926bd2f queue.h: Missed commit to changes for queue.h. ais_msg.h: Missed commit of changes to ais_msg.h. BKrev: 41292695YG_qjNyfkNoFlMFaeiR7zg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@195 fd59a12c-fef9-0310-b244-a6a79926bd2f Missed commit of changes to ais_msg.h. (Logical change 1.57) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@194 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control documentation to devmap. .l 2004/08/22 15:24:25-07:00 mvista.com!sdake Add event service to devmap. (Logical change 1.56) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@193 fd59a12c-fef9-0310-b244-a6a79926bd2f README.devmap: Add flow control documentation to devmap. Add event service to devmap. BKrev: 412922454HMPjB41f5bgMaos4soalg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@192 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-21 Steven Dake Cleanup errors in Makefile. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@191 fd59a12c-fef9-0310-b244-a6a79926bd2f Change interface so there is a new libais_handler structure. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@190 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for flow control to amf library. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@189 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support to group messaging to get flow control information. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@188 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control support to the checkpoint benchmark program. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@187 fd59a12c-fef9-0310-b244-a6a79926bd2f Flow control changes. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@186 fd59a12c-fef9-0310-b244-a6a79926bd2f testamf3.c: misc flow control changes. ckptbenchth.c: Retry checkpoint writes on threaded writes if SA_ERR_TRY_AGAIn received. ckptbench.c: Add flow control support to the checkpoint benchmark program. util.c: Add flow control to saRecvQueue function. evt.c: Add flow control to eventing. clm.c: Add flow control to cluster membership. ckpt.c: Add flow control to checkpointing. amf.c: Add flow control to amf. Makefile: Cleanup errors in Makefile. main.h: Flow control changes. handlers.h: Change interface so there is a new libais_handler structure. gmi.h: Add support to group messaging for another priority level. main.c: Add support to disconnect and dispatch to utilize flow control. gmi.c: Add support to group messaging to get flow control information. evt.c: Add support to eventing for flow control. clm.c: Add support to clm for flow control. ckpt.c: Add support for flow control to ckpt library. amf.c: Add support for flow control to amf library. BKrev: 412678baBKkyszbWcphf0Vg85SpLXg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@185 fd59a12c-fef9-0310-b244-a6a79926bd2f Retry checkpoint writes on threaded writes if SA_ERR_TRY_AGAIn received. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@184 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support to group messaging for another priority level. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@183 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control to eventing. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@182 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control to cluster membership. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@181 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support to eventing for flow control. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@180 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support to disconnect and dispatch to utilize flow control. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@179 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control to amf. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@178 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for flow control to ckpt library. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@177 fd59a12c-fef9-0310-b244-a6a79926bd2f misc flow control changes. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@176 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control to saRecvQueue function. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@175 fd59a12c-fef9-0310-b244-a6a79926bd2f Add flow control to checkpointing. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@174 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support to clm for flow control. (Logical change 1.55) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@173 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-14 Steven Dake Add priority to poll abstraction Higher priority items will be serviced first (Logical change 1.54) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@172 fd59a12c-fef9-0310-b244-a6a79926bd2f Priorites added to dispatch function. This is in prep for flow control to allow dispatch functions that haven't been serviced in awhile to be bumped up in priority when they are not serviced. The priority of the dispatch handler is passed to the dispatch function which can modify it in place. The new priority will be used the next time the poll system call is executed. main.c: Add library accept handler at lowest priority gmi.c: Make gmi highest priority when adding dispatch functions aispoll.h, aispoll.c: Add priority to poll abstraction Higher priority items will be serviced first BKrev: 411dda8dXGsq4glmjj36km40YZhjCA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@171 fd59a12c-fef9-0310-b244-a6a79926bd2f Make gmi highest priority when adding dispatch functions (Logical change 1.54) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@170 fd59a12c-fef9-0310-b244-a6a79926bd2f Add library accept handler at lowest priority (Logical change 1.54) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@169 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-10 Steven Dake gmi.c: When 2 processors are part of the configuration, then one of the members leaves, then a new configuration occurs with 2 or more members, the "joined" list was not being properly passed to the rest of the executive services. This bug fixed. BKrev: 41185349SwUWKZU-QQ_K91jAnvqYpA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@168 fd59a12c-fef9-0310-b244-a6a79926bd2f When 2 processors are part of the configuration, then one of the members leaves, then a new configuration occurs with 2 or more members, the "joined" list was not being properly passed to the rest of the executive services. This bug fixed. (Logical change 1.53) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@167 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-08-09 Steven Dake Add encryption and authentication to GMI. (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@166 fd59a12c-fef9-0310-b244-a6a79926bd2f Add encryption and authentication to all messages so that messages are secret and are always known to come from a source that knows the private key. SECURITY: Describe latest security system using SOBER, SHA1, and HMAC. QUICKSTART: Add details to creating security key to quickstart guide. LICENSE: Add libtomcrypt's license text for crypto.c and crypto.h Makefile: Add crytpo features to makefile gmi.h: Add ability to pass key and keylen to gmi_init. Add ability to set security logging value. gmi.c: Add encryption and authentication to GMI. BKrev: 4117ed75MEkDZv2CoCUYGolBNHy17Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@165 fd59a12c-fef9-0310-b244-a6a79926bd2f Add details to creating security key to quickstart guide. (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@164 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ability to pass key and keylen to gmi_init. Add ability to set security logging value. (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@163 fd59a12c-fef9-0310-b244-a6a79926bd2f Add libtomcrypt's license text for crypto.c and crypto.h (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@162 fd59a12c-fef9-0310-b244-a6a79926bd2f Add crytpo features to makefile (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@161 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@160 fd59a12c-fef9-0310-b244-a6a79926bd2f Describe latest security system using SOBER, SHA1, and HMAC. (Logical change 1.52) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@159 fd59a12c-fef9-0310-b244-a6a79926bd2f keygen.c, crypto.h, crypto.c: New files for cryptography support. BKrev: 4117ecc6HWTXJ7DG7UZ3E01aKajTBA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@158 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.51) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@157 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@156 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-30 Mark Haverkamp Fix compiler warning (Logical change 1.50) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@155 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix compiler warning BKrev: 410a8aa45tOLcJaeS6TU0H7l55hYiQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@154 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix queue items memory leak. (Logical change 1.49) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@153 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix queue items memory leak. BKrev: 410a8a1arpYlwWZY9PRvbEkRYy7zkQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@152 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-30 Steven Dake Change RecvQueue to use a stack structure for receiving the response instead of passing in the maximum sized value for a response message. (Logical change 1.48) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@151 fd59a12c-fef9-0310-b244-a6a79926bd2f Clean up RecvQueue users and pass in actual buffer instead of "overly large" buffer which has changed because of changes to util.c Also cleaned up memory leak in the dispatch function. (Logical change 1.48) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@150 fd59a12c-fef9-0310-b244-a6a79926bd2f util.c: Change RecvQueue to use a stack structure for receiving the response instead of passing in the maximum sized value for a response message. ckpt.c: Change all RecvQueue users to use RecvRetry since there is no reason to queue out of order messages. amf.c: Clean up RecvQueue users and pass in actual buffer instead of "overly large" buffer which has changed because of changes to util.c Also cleaned up memory leak in the dispatch function. BKrev: 4109819b_adTTm4cCZmfLJcsYb9hyA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@149 fd59a12c-fef9-0310-b244-a6a79926bd2f Change all RecvQueue users to use RecvRetry since there is no reason to queue out of order messages. (Logical change 1.48) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@148 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-29 Steven Dake (Logical change 1.47) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@147 fd59a12c-fef9-0310-b244-a6a79926bd2f Add function in exec/clm to get the full cluster node information for any node in the cluster membership (Logical change 1.47) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@146 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-29 Mark Haverkamp Merge bk://bk.osdl.org/openais into markh1.pdx.osdl.net:/home/localmarkh/views/BK/openais_stage 2004/07/29 12:26:46-07:00 mvista.com!sdake clm.c: Add function in exec/clm to get the full cluster node information for any node in the cluster membership BKrev: 410955capPzVdVwzpMJetS80seWS7g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@145 fd59a12c-fef9-0310-b244-a6a79926bd2f Added event code and dependencies. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@144 fd59a12c-fef9-0310-b244-a6a79926bd2f added event message types and associated data structures. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@143 fd59a12c-fef9-0310-b244-a6a79926bd2f Event service data types. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@142 fd59a12c-fef9-0310-b244-a6a79926bd2f This adds the start of the AIS event service code. The library code is mostly complete. The aisexec part just has placeholders for now and will be filled in later. BKrev: 410944e7-oXL5OZSJvizPPH9dGS2GA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@141 fd59a12c-fef9-0310-b244-a6a79926bd2f Added event library and depend target. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@140 fd59a12c-fef9-0310-b244-a6a79926bd2f added event service handler. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@139 fd59a12c-fef9-0310-b244-a6a79926bd2f added event service. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@138 fd59a12c-fef9-0310-b244-a6a79926bd2f Added clustTimeNow to get current time in nanoseconds. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@137 fd59a12c-fef9-0310-b244-a6a79926bd2f Added event test program and depend target. (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@136 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.46) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@135 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@134 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-29 Steven Dake README.devmap: Document new changes to exec handler function prototype and recommend using the source_addr for deferring requests instead of recording the ip address in the message itself. main.c, handlers.h, clm.c, ckpt.c, amf.c: Add source_addr to exec message handler for event service. BKrev: 41082a5cY6cLQK7NG_rxZrkb7lERfw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@133 fd59a12c-fef9-0310-b244-a6a79926bd2f Document new changes to exec handler function prototype and recommend using the source_addr for deferring requests instead of recording the ip address in the message itself. (Logical change 1.45) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@132 fd59a12c-fef9-0310-b244-a6a79926bd2f Add source_addr to exec message handler for event service. (Logical change 1.45) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@131 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-28 Steven Dake Major cleanup and use hdb.c abstracted out functions now instead of internal hacked together stuff that was there previously. (Logical change 1.44) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@130 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove "old-style" handle database code from aispoll.c and include instead hdb.c/hdb.h. These files are copies of the handle database code used for the library without mutexes. This work for Mark Haverkamp to use the handle database functionality as part of the event service. BKrev: 4106e5a7ANCdXqe3zoIfO1tcYyrQhQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@129 fd59a12c-fef9-0310-b244-a6a79926bd2f Major cleanup to use hdb.c handle database functions. (Logical change 1.44) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@128 fd59a12c-fef9-0310-b244-a6a79926bd2f Add hdb.c to the build. (Logical change 1.44) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@127 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.44) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@126 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@125 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove handle state and handle instance information. Also cleanup saHandleCreate to return unsigned int handle instead of int handle. (Logical change 1.43) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@124 fd59a12c-fef9-0310-b244-a6a79926bd2f Hide handle state and handle instance information in this file instead of in global header file. (Logical change 1.43) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@123 fd59a12c-fef9-0310-b244-a6a79926bd2f util.h: Remove handle state and handle instance information. Also cleanup saHandleCreate to return unsigned int handle instead of int handle. util.c: Hide handle state and handle instance information in this file instead of in global header file. BKrev: 4106e4d1-Ntb973S5ymyNwgL6e0PDw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@122 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-27 Steven Dake Remove BINDTODEVICE socket option and replace with MULTICAST_IF to be more portable and require less root privs. (Logical change 1.42) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@121 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: Remove BINDTODEVICE socket option and replace with MULTICAST_IF to be more portable and require less root privs. BKrev: 410583008afZgkQ66_jDep-8pFf_nw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@120 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-24 Steven Dake Additional information for using the saRecvQueue call in a library. (Logical change 1.41) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@119 fd59a12c-fef9-0310-b244-a6a79926bd2f README.devmap: Additional information for using the saRecvQueue call in a library. BKrev: 41018de8tOmRhu_QtrtzbSGzWHSMKA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@118 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-21 Steven Dake (Logical change 1.40) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@117 fd59a12c-fef9-0310-b244-a6a79926bd2f SECURITY: Description of the security policy of the openais project. Includes a description of the techniques used in openais. BKrev: 40fdaf10zR42cuBrfB9UB-Bc-edNsQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@116 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@115 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-15 Steven Dake Major improvements to fragmentation. It works alot better now. (Logical change 1.39) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@114 fd59a12c-fef9-0310-b244-a6a79926bd2f Major improvements to quality in the GMI. Previously with 12 processors and running ckptstress from two nodes, one node would fail to make forward progress. Sometimes the nodes would assert or crash. All the fragmentation code has been rewritten to be more stable and of better design (at the cost of a little more memory). BKrev: 40f5c9b6KnXRw3_UyUgLV-cIvI7YpA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@113 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-13 Steven Dake Allow NULL delivery_fn in gmi_join. This basically has no effect but allows the processor to participate in multicasting and membership. (Logical change 1.38) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@112 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: Allow NULL delivery_fn in gmi_join. This basically has no effect but allows the processor to participate in multicasting and membership. BKrev: 40f419f8lTr8W134C7CXrtXRnzoMzw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@111 fd59a12c-fef9-0310-b244-a6a79926bd2f Extraneous tokens were not being rejected on token retransmits that occurred during configuration changes. The result was bad behavior, especially with larger rings. Also cleaned up the token retransmit timer to be deleted if necessary. (Logical change 1.37) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@110 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: Extraneous tokens were not being rejected on token retransmits that occurred during configuration changes. The result was bad behavior, especially with larger rings. Also cleaned up the token retransmit timer to be deleted if necessary. BKrev: 40f419afbeZlmKywfUpsrDkU5kMnHg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@109 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ip to deliver_fn callback (Logical change 1.36) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@108 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ip to deliver_fn callback BKrev: 40f35c58ypi89e5Nq53F73OF8QGakA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@107 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ip to deliver_fn callback Add ip to deliver_fn callback Add ip to deliver_fn callback (Logical change 1.36) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@106 fd59a12c-fef9-0310-b244-a6a79926bd2f Removed something that was necessary in last changeset. (Logical change 1.35) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@105 fd59a12c-fef9-0310-b244-a6a79926bd2f gmi.c: Removed something that was necessary in last changeset. BKrev: 40f35ba0CGzAzJZVAZx-QxSIYzQlNQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@104 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-12 Steven Dake gmi.c: Fix debug exit. BKrev: 40f3069ao4cKWSuICZHrMdMIqJDlMw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@103 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix debug exit. (Logical change 1.34) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@102 fd59a12c-fef9-0310-b244-a6a79926bd2f Merge sdake@bk.osdl.org:/var/bk/openais into persist.az.mvista.com:/home/sdake/openais 2004/07/12 14:40:19-07:00 mvista.com!sdake gmi.c: When a processor left the membership, the next configuration would sometimes cause a form token timeout. While not particularly harmful, it was wasteful and not part of the original design of the group messaging protocol. There was some extra junk code that was added to workaround some other bug that has since been fixed. This junk code removed and now the form token never times out (woohoo). Also removed some extra code that calculates the next ORF processor twice. We only really need to do it once. BKrev: 40f3054fipDDp-KdB8CJpzw0vS3PfA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@101 fd59a12c-fef9-0310-b244-a6a79926bd2f Auto merged 2004/07/12 14:37:13-07:00 mvista.com!sdake When a processor left the membership, the next configuration would sometimes cause a form token timeout. While not particularly harmful, it was wasteful and not part of the original design of the group messaging protocol. There was some extra junk code that was added to workaround some other bug that has since been fixed. This junk code removed and now the form token never times out (woohoo). Also removed some extra code that calculates the next ORF processor twice. We only really need to do it once. (Logical change 1.33) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@100 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-12 Steven Dake Retransmit orf token if no multicast or token received within a timeout period. This could mean that the token was lost, but no configuration change has really occured. Rather then execute the heavyweight membership protocol, just retry the token and if it fails after the token timeout, execute a configuration change sequence. BKrev: 40f21082dvUxH0aOPvKmpqoqlkEgEA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@99 fd59a12c-fef9-0310-b244-a6a79926bd2f Add retransmit of token if no multicast or token received within a timeout period (100 msec). This helps avoid a reconfiguration when only the token is lost, but no real configuration changes have occured. (Logical change 1.32) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@98 fd59a12c-fef9-0310-b244-a6a79926bd2f Changeset 1.22 introduced problem with managing messages in the sort queue. The result was memory leakage. (Logical change 1.31) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@97 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix memory leak introduced in changeset 1.22. BKrev: 40f20a301E28mF_1r27z43zk2MqHeA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@96 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-11 Steven Dake Clean up warnings found with -pedantic. BKrev: 40f0eaa4fMlsgdXtJH-HQEl5nRh78Q git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@95 fd59a12c-fef9-0310-b244-a6a79926bd2f Clean up warnings found with -pedantic. (Logical change 1.30) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@94 fd59a12c-fef9-0310-b244-a6a79926bd2f Changed references to C99 initializers after pedantic cleanup (Logical change 1.30) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@93 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-10 Steven Dake Removes the external dependency from the gmi to the global variable this_ip. This is still passed in for gmi_init users to be notified of which IP was selected, but copied for local use. BKrev: 40ef692cfv-e5JCQ8T9iC-_i3AaBcg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@92 fd59a12c-fef9-0310-b244-a6a79926bd2f Fixes build problem with rename of aispoll.c. (Logical change 1.29) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@91 fd59a12c-fef9-0310-b244-a6a79926bd2f Removes this_ip external dependency and instead copies the bound to address to storage local to the group messaging interface. (Logical change 1.29) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@90 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-09 Steven Dake Rename: exec/poll.h -> exec/aispoll.h }(Logical change 1.28) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@89 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename aispoll.h so that people using the aispoll header file do not collide with sys/poll.h. BKrev: 40ef0fadvg4jQb-J9VhBM25mh_mdMQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@88 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename: exec/poll.h -> exec/aispoll.h (Logical change 1.28) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@87 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename: exec/poll.c -> exec/aispoll.c (Logical change 1.28) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@86 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename: exec/poll.c -> exec/aispoll.c }(Logical change 1.28) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@85 fd59a12c-fef9-0310-b244-a6a79926bd2f Rename poll.h to aispoll.h (Logical change 1.28) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@84 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@83 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-08 Steven Dake Fix a merge problem with the previous update to the amf with the conn_info structure. the track list was not being initialized at start. (Logical change 1.27) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@82 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix merge bugs from changeset 1.23. BKrev: 40edb2ddF4jV4bxQYmbXj7nCSPCe2w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@81 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix a couple merge problems with the previous update to clm with the conn_info structure. the track list was not being initialized. When track start was called the tracking wasn't added to a list. When track stop was called the tracking was not deleted. The result of all this is that cluster membership tracking was broken previously. (Logical change 1.27) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@80 fd59a12c-fef9-0310-b244-a6a79926bd2f Development documentation update. After reading these docs, it should be possible to add a service to the AIS. (Logical change 1.26) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@79 fd59a12c-fef9-0310-b244-a6a79926bd2f Learn how to develop an AIS service with README.devmap. BKrev: 40eda440k9_Mia7kFQvGzgthaN_bWQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@78 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix build errors after previous commit. (Logical change 1.25) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@77 fd59a12c-fef9-0310-b244-a6a79926bd2f Cleanup last commit so build occurs properly. BKrev: 40ec739f-StbBZFtCXNnVcEbdIqOYg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@76 fd59a12c-fef9-0310-b244-a6a79926bd2f pass conn_info to all messages instead of file descriptor. This requires changing the initialization phase of the socket and all calls made. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@75 fd59a12c-fef9-0310-b244-a6a79926bd2f Big cleanup of executive to pass connection info by reference instead of having connection info as an array seperate from the poll interface. This makes the code alot cleaner and easier to read, plus removes duplicated code in the connection array management. BKrev: 40ec72dd7wKGeQDubAA6lmUMc7JjOQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@74 fd59a12c-fef9-0310-b244-a6a79926bd2f update todo by removing completed items. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@73 fd59a12c-fef9-0310-b244-a6a79926bd2f store conn_info field is component structure. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@72 fd59a12c-fef9-0310-b244-a6a79926bd2f pass conn_info to all messages instead of file descriptor. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@71 fd59a12c-fef9-0310-b244-a6a79926bd2f pass conn_info to all messages instead of file descriptor. this requires removing the connection structure and replacing with the conn_info structure. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@70 fd59a12c-fef9-0310-b244-a6a79926bd2f when gmi.c changed, full project would not always be rebuilt fixed this issue. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@69 fd59a12c-fef9-0310-b244-a6a79926bd2f Run full tests instead of writing a bunch of checkpoints. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@68 fd59a12c-fef9-0310-b244-a6a79926bd2f Add track active variable to keep track of active connections. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@67 fd59a12c-fef9-0310-b244-a6a79926bd2f cleanup valgrind warnings. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@66 fd59a12c-fef9-0310-b244-a6a79926bd2f change message source to use conn_info field instead of fd. Also removed a few unneeded calls which were moved to the amf.c file. (Logical change 1.24) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@65 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-07 Steven Dake Change memcpy to memmove to quiet down valgrind. (Logical change 1.23) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@64 fd59a12c-fef9-0310-b244-a6a79926bd2f valgrind found an off-by-one error in message frees that could lead to corruption. l (Logical change 1.23) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@63 fd59a12c-fef9-0310-b244-a6a79926bd2f Clean up some errors found with valgrind 2.1.1. BKrev: 40ec6721IO7rAWx1t4cNnFNTugIZ1A git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@62 fd59a12c-fef9-0310-b244-a6a79926bd2f Get rid of some errors from valgrind by initializing variables. (Logical change 1.23) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@61 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-06 Steven Dake Remove extra unused parameter to exec messages. (Logical change 1.22) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@60 fd59a12c-fef9-0310-b244-a6a79926bd2f Remove extra parameter to exec messages. (Logical change 1.22) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@59 fd59a12c-fef9-0310-b244-a6a79926bd2f Every exec message was of the prototype int func (int fd, void *msg). The "int fd" was not used by an executive message and was dead code from a previous implementation. This dead parameter removed from the tree. BKrev: 40eb05fa_UbGyISyMyNciMoGXAXDeg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@58 fd59a12c-fef9-0310-b244-a6a79926bd2f Add activate poll message. (Logical change 1.21) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@57 fd59a12c-fef9-0310-b244-a6a79926bd2f Use new APIs for handle reference counting (Logical change 1.21) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@56 fd59a12c-fef9-0310-b244-a6a79926bd2f Change clunky locking used in library APIs to use reference counting instead. A BIG thanks to Chris Friesen who provided the initial ideas, additional comments and more ideas leading up to the commit. BKrev: 40eafcb50VMDbK4i9ZEiu0_90gFlPQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@55 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix example to use component names in example service group. (Logical change 1.21) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@54 fd59a12c-fef9-0310-b244-a6a79926bd2f Change activate poll definitions to be generic instead of AMF specific. (Logical change 1.21) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@53 fd59a12c-fef9-0310-b244-a6a79926bd2f Use new APIs for handle reference counting. (Logical change 1.21) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@52 fd59a12c-fef9-0310-b244-a6a79926bd2f add activate poll message (Logical change 1.21) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@51 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix segfault during membership changes with multiple leaves at the same time. BKrev: 40eaeec3CJrXaOzED0qddXmUUurQdg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@50 fd59a12c-fef9-0310-b244-a6a79926bd2f Wrong value being used to determine leave list, resulting in a memcpy with a -1 value in some cases, and the incorrect memcpy in other cases. (Logical change 1.20) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@49 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-07-01 Steven Dake With a two node cluster and one node killed, the remaining node didn't sent the appropriate configuration changes to the clm API or to the rest of the services. (Logical change 1.19) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@48 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix two node cluster membership event not appearing on leave problem reported by Chris Friesen. BKrev: 40e477d75L2YauKHr18UGUlPGfAEoA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@47 fd59a12c-fef9-0310-b244-a6a79926bd2f remove dead code. BKrev: 40e451f2-IOwwPNaNm65NetyBme-nw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@46 fd59a12c-fef9-0310-b244-a6a79926bd2f remove dead code. (Logical change 1.18) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@45 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-30 Steven Dake The group messaging interface has been exported as a library for use in other programs. The key interfaces are exec/gmi.h and exec/poll.h. gmi.h describes the interface for group messaging, while poll.h describes the interface for abstracting poll system call with timers and integrated with gmi. By including these headers in programs and linking with libgmi, it is possible to use the virtual synchrony layer (group messaging interface) used in AIS for other applications. BKrev: 40e30f7bM1KpRbp3-Bf2qVPRH1EsFA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@44 fd59a12c-fef9-0310-b244-a6a79926bd2f Initialize logging function in group messaging interface. (Logical change 1.17) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@43 fd59a12c-fef9-0310-b244-a6a79926bd2f Build gmi static and shared library for use in other programs. (Logical change 1.17) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@42 fd59a12c-fef9-0310-b244-a6a79926bd2f Add logging function init interface. (Logical change 1.17) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@41 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ability to pass in logging function for people that want to use their own logging functions in their own programs. (Logical change 1.17) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@40 fd59a12c-fef9-0310-b244-a6a79926bd2f add debug checking version of logging function. (Logical change 1.17) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@39 fd59a12c-fef9-0310-b244-a6a79926bd2f make clean didn't remove ckptbench and ckptbenchth binaries (Logical change 1.17) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@38 fd59a12c-fef9-0310-b244-a6a79926bd2f Chris Friesen reported the testamf programs don't work correctly. Error in description of quickstart guide about how they should work which has been corrected. Also added information about using the ckptbench and ckptbenchth programs to benchmark checkpoint writes. (Logical change 1.16) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@37 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.16) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@36 fd59a12c-fef9-0310-b244-a6a79926bd2f Modify QUICKSTART to clarify how testamf{1-6} work and added some text about using the ckptbench and ckptbenchth test programs. Also added the ckptbench and ckptbenchth programs to the build environment. BKrev: 40e26a810DYCs3LU79Ne-q51pO2TgA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@35 fd59a12c-fef9-0310-b244-a6a79926bd2f Add ckptbench and ckptbenchth targets (Logical change 1.16) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@34 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@33 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-29 Steven Dake Cluster membership API not being authenticated by openais executive. This results in testclm locking on start in saClmInitialize. BKrev: 40e095e4VUojyuQYOBeAUqjZnbBTCA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@32 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix cluster membership API not being authenticated bug. (Logical change 1.15) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@31 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-27 Steven Dake Make bind to a device really work properly. Now it is possible to specify the bind network and the networking will take place over that interface. (Logical change 1.14) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@30 fd59a12c-fef9-0310-b244-a6a79926bd2f Add priv drop so process doesn't have to run as root in order to lock, set RR 99, and bind to a specific ethernet interface for multicast. (Logical change 1.14) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@29 fd59a12c-fef9-0310-b244-a6a79926bd2f Make binding to a specific network really work. Also added priv dropping so process doesn't have to run as root for process lifetime. BKrev: 40df35a4eUCTfC660C7oBwg-P9YE2g git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@28 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-23 Steven Dake Yixiong Zou reported a problem where on some OSes the aisexec couldn't join the multicast group. This problem fixed. Also changed binding rules for sockets relating to the group messaging. see detailed changlogs for more details. BKrev: 40d9efacQooUDhv3APjn55QVVjMueg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@27 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix binding rules so that instead of binding to INADDR_ANY for UDP sockets, bind to specific interface defined in network.conf. This is done by creating two fds. gmi_fd_token is used for all token communication. gmi_fd_mcast is used for all mcast communication. I'm not sure if gmi_fd_mcast binding rules is correct. Once work begins on multipathing, this will have to be figured out :) 2004/06/23 13:55:52-07:00 mvista.com!sdake Use portable mreq instead of mreqn when joining the multicast group. (Logical change 1.13) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@26 fd59a12c-fef9-0310-b244-a6a79926bd2f QUICKSTART: Modified quickstart guide thanks to comments from Yixiong Zou Information about adding groups added Information about testclm blocking until cluster membership event occurs added. BKrev: 40d920ffgjnZO35fZ2d947AV5TWGWQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@25 fd59a12c-fef9-0310-b244-a6a79926bd2f Modified quickstart guide thanks to comments from Yixiong Zou Information about adding groups added Information about testclm blocking until cluster membership event occurs added. (Logical change 1.12) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@24 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-21 Steven Dake Buffer with message data used outside lock. This creates a possible race where data from another response could be used to execute a dispatch. 2004/06/21 00:59:54-07:00 mvista.com!sdake Remove double pthread_mutex_unlock on saAmfDispatch routine. Unlock could unlock another thread's unlock midthread. (Logical change 1.11) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@23 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix race with saClmDispatch where two threads could race for access to the response data from the AIS Executive. (Logical change 1.11) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@22 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix race relating to threads and saClmDispatch/saAmfDispatch. BKrev: 40d6977ewZ8VFYD8mJyEaPWxg0tI7w git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@21 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-20 Steven Dake Add support for C++ linkage to cluster membership API. Without this change, C++ programs will not link to the library. BKrev: 40d53e4bzcKNiPnfX523_065NBw4gg git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@20 fd59a12c-fef9-0310-b244-a6a79926bd2f Add support for C++ linkage to cluster membership APIs. (Logical change 1.10) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@19 fd59a12c-fef9-0310-b244-a6a79926bd2f Port not actually set to correct port as found with tcpdump. BKrev: 40d53d26QDtzR8msp2zMvJ-9Mq6-Tw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@18 fd59a12c-fef9-0310-b244-a6a79926bd2f x86 was not setting port to network byte order, which resulted in port being byte swapped. This of course, doesn't work well with xscale boards. (Logical change 1.9) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@17 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-18 Steven Dake quickstart gives incorrect info about multicast addresses, now corrected. BKrev: 40d35b80BGcr_8TvtSlrbEZBn14zZA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@16 fd59a12c-fef9-0310-b244-a6a79926bd2f fix error in quickstart (Logical change 1.8) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@15 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix single-node AMF assertion failure (cause runaway recursion). BKrev: 40d22e42IsByk3WqoRIGSlETLqdUgw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@14 fd59a12c-fef9-0310-b244-a6a79926bd2f single node AMF would fail because of a recursion bug. Removed the recursion by queueing single node message delivery as a timer with 0 timeout. This was happening before, but the logic was wrong. (Logical change 1.7) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@13 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-17 Steven Dake Crash when no network.conf file present (missing error checking). (Logical change 1.6) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@12 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix crash when error reading network.conf file. BKrev: 40d21314UfLNnjjrMSt_4U9rJZSVHA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@11 fd59a12c-fef9-0310-b244-a6a79926bd2f Fix bug in membership protocol where form token sometimes times out because the initial send of the token is sent to the wrong address. 2004/06/16 15:42:49-07:00 mvista.com!sdake Performance enhancements: Allow more messages to be multicast per token possession to reach 8.8MB/sec checkpoint performance without remcasts. Trim gather/commit timeouts to 100 msec to speed up the membership gathering process. (Logical change 1.5) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@10 fd59a12c-fef9-0310-b244-a6a79926bd2f Bug fix and performance enhancements to the group messaging protocol. BKrev: 40d0cebf3iPVrudikdxGEhhTs-CQMw git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@9 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-16 Steven Dake QUICKSTART: Test change BKrev: 40cfe45fPOa0mbN6jPO9bRiSG_tZWA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@8 fd59a12c-fef9-0310-b244-a6a79926bd2f Test change (Logical change 1.4) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@7 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-16 John Cherry Import changeset BKrev: 40cf759cAkpvgQbZ43nWNRClHYqlXQ git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@6 fd59a12c-fef9-0310-b244-a6a79926bd2f (Logical change 1.3) git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@5 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@4 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-16 cem Initial repository create BKrev: 40cf7521T7yNtYdteqiCUMgD7RdOCA git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@3 fd59a12c-fef9-0310-b244-a6a79926bd2f Initial revision git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@2 fd59a12c-fef9-0310-b244-a6a79926bd2f 2004-06-16 Steven Dake New repository initialized by cvs2svn. git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1 fd59a12c-fef9-0310-b244-a6a79926bd2f