Commit Graph

102 Commits

Author SHA1 Message Date
Patrick Caulfield
94561626e6 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
2007-10-10 10:33:55 +00:00
Steven Dake
113a3c4f88 The logsys logging system. Read logsys_overview.8.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1428 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-09-09 06:38:10 +00:00
Fabien Thomas
1c4833edba 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-07-02 12:41:53 +00:00
Steven Dake
6377455cd7 Add passive monitoring support to AMF.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1386 fd59a12c-fef9-0310-b244-a6a79926bd2f
2007-06-23 09:14:15 +00:00
Steven Dake
0a19a21f1b 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
2007-06-05 08:55:44 +00:00
Steven Dake
cb154572a2 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-03-06 16:18:44 +00:00
Steven Dake
aec3f25bc8 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
2007-01-23 17:39:43 +00:00
Lon Hohberger
77668738f6 - 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
2007-01-18 07:39:42 +00:00
Lon Hohberger
8f87e5f413 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-11 05:37:07 +00:00
Hans Feldt
47a5d65e33 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-06 09:02:25 +00:00
Hans Feldt
3d68074945 - 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-12-04 14:28:40 +00:00
Hans Feldt
97919b8d16 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-17 06:57:00 +00:00
Lon Hohberger
9c64bb9878 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-08 11:55:16 +00:00
Steven Dake
336dc17daa 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
2006-11-04 22:29:14 +00:00
Hans Feldt
d6820692e4 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-20 11:20:59 +00:00
Lon Hohberger
5126acc37a 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-10-04 05:24:14 +00:00
Hans Feldt
86431dfc6d 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-20 08:27:01 +00:00
Hans Feldt
da1fc7acd2 - "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-05 07:31:28 +00:00
Hans Feldt
6e34536ead 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
2006-08-28 13:11:23 +00:00
Hans Feldt
634d196c47 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 12:44:15 +00:00
Hans Feldt
004b889124 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
2006-08-24 09:30:27 +00:00
Hans Feldt
4a61871344 AMF sync #2
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1220 fd59a12c-fef9-0310-b244-a6a79926bd2f
2006-08-17 13:25:01 +00:00
Hans Feldt
98dfb95e26 - 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 12:28:10 +00:00
Steven Dake
806258b5c3 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
2006-07-26 07:39:53 +00:00
Hans Feldt
154a857c3b 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-27 08:49:07 +00:00
Steven Dake
f9abb3899e 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
2006-06-21 21:32:03 +00:00
Steven Dake
01afe82393 32/64/mixed endian support for checkpoint service.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1074 fd59a12c-fef9-0310-b244-a6a79926bd2f
2006-06-21 21:15:16 +00:00
Hans Feldt
e993689ac5 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 06:45:16 +00:00
Steven Dake
ad2fa27191 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
2006-06-16 19:51:55 +00:00
Steven Dake
33d89ae7db Remove warnings in AMF executive service.
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1061 fd59a12c-fef9-0310-b244-a6a79926bd2f
2006-06-05 22:39:07 +00:00
Hans Feldt
ef284f2b30 - (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-31 13:20:43 +00:00
Steven Dake
483a9baac7 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
2006-05-19 19:49:40 +00:00
Hans Feldt
5b30c0a120 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-17 07:22:43 +00:00
Hans Feldt
905ba3b406 - 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-03 08:45:44 +00:00
Hans Feldt
947995bd80 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-26 09:00:41 +00:00
Fabien Thomas
f9ce4bea58 Remove warnings under Darwin
git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@1008 fd59a12c-fef9-0310-b244-a6a79926bd2f
2006-04-25 07:28:20 +00:00
Steven Dake
81658a8158 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
2006-04-24 19:00:26 +00:00
Steven Dake
f50a6a11c8 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-18 19:53:18 +00:00
Steven Dake
758719ea87 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
2006-04-13 23:20:03 +00:00
Steven Dake
6a49f1befc 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
2006-04-08 22:05:51 +00:00
Patrick Caulfield
3568f26625 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 10:31:28 +00:00
Steven Dake
1363452887 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-27 17:37:21 +00:00
Steven Dake
cc89d721cc 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
2006-03-24 18:48:47 +00:00
Fabien Thomas
064ffb17a1 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-24 08:28:12 +00:00
Steven Dake
4a33ba11fa 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-18 21:00:19 +00:00
Steven Dake
10c7243f5c 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
2006-03-08 07:13:27 +00:00
Steven Dake
cf160dd9cd 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-21 07:32:00 +00:00
Steven Dake
96deb78110 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
2006-02-10 21:05:57 +00:00
Steven Dake
166609be38 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-10 00:30:29 +00:00
Steven Dake
43a36162b3 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
2006-02-01 21:17:47 +00:00