mirror of
https://git.proxmox.com/git/mirror_corosync
synced 2025-07-27 09:22:03 +00:00

git-svn-id: http://svn.fedorahosted.org/svn/corosync/trunk@5 fd59a12c-fef9-0310-b244-a6a79926bd2f
233 lines
11 KiB
Plaintext
233 lines
11 KiB
Plaintext
Application Interface Specification Implementation
|
|
--------------------------------------------------
|
|
0.30
|
|
* Add GMI & sort queues to build environment.
|
|
* Changed queue.h to be more consistent with naming conventions used in tree.
|
|
* Simplified cluster membmership service by modifying to use GMI.
|
|
* Modified availability management framework to use GMI.
|
|
* Modified method services connect to main executive to make services standalone
|
|
objects. This could facilitate plugin services in the future.
|
|
* Modified checkpointing for multinode using GMI.
|
|
* healthcheck timeouts were being caused by slow access to the filesystem for
|
|
sockets and deleted sockets. This was fixed by using the abstract namespace
|
|
which is memory based.
|
|
* Generic logging facility added to get rid of numerous #ifdef DEBUGs and avoid
|
|
the SIGPIPE and signal changes created by the libc's version of syslog.
|
|
* Authentication for API<->executive added. Only uid=0 or gid=ais processes can
|
|
connect to the executive via the libraries to provide service.
|
|
* This release has alot of cleanups!
|
|
* Removed all point-to-point authentication since using GMI now.
|
|
|
|
* GMI provides extended virtual synchrony semantics with:
|
|
* - agreed message ordering (all processors agree on message order)
|
|
* - using available hardware multicast
|
|
* - group membership algorithm that currently supports 16 processors
|
|
* - message fragmentation to fit MTU that avoids UDP fragmentation
|
|
* - full recovery of messages during configuration change
|
|
* - 512kb message support
|
|
* - 3 priority levels
|
|
|
|
0.29
|
|
* Changed all send/recv functions to sendmsg/recvmsg.
|
|
|
|
0.28
|
|
* Remove current poll code and replace with poll abstraction.
|
|
|
|
0.27
|
|
* Add CKPT service to AIS Executive for single node checkpointing.
|
|
|
|
0.26
|
|
* Added support for pthreads to clm and amf interfaces. Critical
|
|
sections and shared data now protected by mutex. If Dispatch in
|
|
one thread, Finalize in another thread will cause Dispatch to behave
|
|
per spec.
|
|
* Moved global receive buffer for APIs into handles or stack.
|
|
* Allocate and free instance memory in handle manager instead of in each API.
|
|
* Merge defect fixes from 0.22.1-0.22.8 into development tree.
|
|
* CkptCheckpointHandleT and CkptSectionIteratorT functions created a new
|
|
connection each time any APIs using those types were called. Now these
|
|
types have been encapsulated into their own handle database which doesn't
|
|
create (expensive) connections for each API call.
|
|
* Changed named types such as MESSAGE_CKPT_REQ* to MESSAGE_REQ_CKPT* to match
|
|
structure names.
|
|
|
|
0.25
|
|
* Added ability for authentication to use none, password, or DSA depending on
|
|
settings in file /etc/ais/authtype. The values are no authentication, password
|
|
authentication, or dsa authentication.
|
|
* Added DSA authentication to node-to-node communication.
|
|
Server generates 16 byte random number, sends random number to connecting
|
|
client, client signs random number message with DSA private key, server
|
|
verifies signature with public key of client for random number message.
|
|
* Added DSA key generator.
|
|
* Added password authentication. File /etc/ais/aiskeys/password is used by the
|
|
server to compare the client's password. If they match, the connection is
|
|
authenticated.
|
|
* Added no authentication option.
|
|
* Fixed PPC compile to compile cleanly with -Wall.
|
|
* Added version checking to APIs.
|
|
|
|
0.24
|
|
* Fixed problem if outbound queues have messages queued, they are not
|
|
sent during the poll loop because poll isn't passed the correct events flag.
|
|
This problem introduced in the select to poll conversion in 0.23.
|
|
* Healthchecks for CLM service intra-node now run on seperate timers per connection.
|
|
* Fixed problem connections intra-node were completely broken as a result
|
|
of the change from select to poll in 0.23.
|
|
* Fixed bug in AMF timer_del on NULL timer.
|
|
* Fixed few bugs in AMF intra-node communications would result in segfault.
|
|
* Made pollfd_table global to reduce variable passing and simplify code.
|
|
* Cleaned up with compile of -Wall which found several bugs.
|
|
* Some minor cleanups of makefiles from major reorg in 0.23.
|
|
* Replaced memory malloc/free/realloc with memory pool versions to avoid
|
|
failed memory allocation requests and improve realtime response.
|
|
* Implemented the library portion of all checkpointing (Ckpt) APIs.
|
|
|
|
0.23
|
|
* Reorganized executive into exec directory and split executive components
|
|
into seperate files.
|
|
* Placed library interfaces into lib directory.
|
|
* Placed test components into test directory.
|
|
* Abstracted some of the service setup and teardown code that was
|
|
integrated into the main loops and disconnect function call to call
|
|
generic functions {amf|clm}InitializeExecutive, and {amf|clm}FinalizeApi.
|
|
* Cleaned up connection (ci) datatypes.
|
|
* Removed old timers, replaced with generic timer implementation.
|
|
* replaced select with poll in executive.
|
|
* lock memory of process and set RR prio 99 to avoid priority inversions.
|
|
* Fixed problem where accept couldn't connect because resource exhaustion,
|
|
executive would crash.
|
|
|
|
0.22
|
|
* Fix defect in HA state and operational state machines where states are not
|
|
always determined correctly.
|
|
* Fix defect invalid argument to saAmfErrorReport will crash executive.
|
|
* Fix defect no /var/run/aisexec.pid created for service.
|
|
|
|
0.21
|
|
* Fix defect testclm doesn't exit if no connection to AIS executive possible.
|
|
* Fix defect aisexec crashes if no /etc/groups.conf file present.
|
|
* Fix defect aisexec opens "groups.conf" instead of "/etc/groups.conf" file.
|
|
* Fix defect aisexec doesn't set SaClmClusterNodeT data structure if local interface
|
|
not defined in /etc/clusterips, or empty/no /etc/clusterips file present.
|
|
* Fixed some basic error reporting in aisexec to use syslog's LOG_ERR instead
|
|
of LOG_NOTICE.
|
|
* Fixed SEGV if component not found for componentcapabilitymodelget API.
|
|
|
|
0.20
|
|
* Correctly parse model values in configuration file for both service
|
|
groups and components.
|
|
* Changed variables with text nodeexec to aisexec.
|
|
* Fixed a bug select wouldn't retry because errno checked for -EINTR
|
|
when it should be checking for EINTR.
|
|
* Correctly determine startup HA state and send appropriate ha state
|
|
changes to registered receivers.
|
|
|
|
0.19
|
|
* Implemented saAmfCSISetCallback.
|
|
* Implemented saAmfCSIRemoveCallback.
|
|
* Implemented saAmfProtectionGroupTrackStart.
|
|
* Implemented saAmfProtectionGroupTrackCallback.
|
|
* Implemented saAmfProtectionGroupTrackStop.
|
|
* Implemented saAmfErrorReport.
|
|
* Implemented saAmfErrorCancelAll.
|
|
* Implemented saAmfResponse.
|
|
* Implemented saAmfComponentCapabilityModelGet.
|
|
* Implemented saAmfPendingOperationGet dummy function.
|
|
This function will have to be rewritten to be
|
|
correct, but completes the API for now.
|
|
* Fixed problem where queued messages would not cause select
|
|
to be triggered. Occured in component register, unregister,
|
|
track start, track stop functions.
|
|
|
|
0.18
|
|
* Implemented saAmfReadinessStateSetCallback.
|
|
* Implemented saAmfStoppingComplete.
|
|
* Implemented saAmfComponentTerminateCallback.
|
|
* Implemented saAmfHAStateGet.
|
|
|
|
0.17
|
|
* Implemented saAmfHealthcheckCallback.
|
|
* Implemented saAmfResponse.
|
|
* Implemented saAmfReadinessStateGet.
|
|
* Made connect non-blocking to fix bug where blocking connects
|
|
could cause timeout on heartbeating.
|
|
* Made recv's non-blocking by adding small buffer to each connection
|
|
and recving and processing as needed.
|
|
* Integrated message dispatch for libais and nodeexec connections.
|
|
* Fixed bug where SA_TRACK_CURRENT does not return current state of
|
|
cluster membership after second invocation of the testclm application.
|
|
* Seperated several functions from main.
|
|
* Fixed bug where outqs were not flushed when data present within them
|
|
at end of processing loop before next select. Previously they would
|
|
only flush when new data was sent on the queues.
|
|
* Fixed bug where CLM and AMF always processed dispatch functions in
|
|
SA_DISPATCH_BLOCKING mode.
|
|
|
|
0.16
|
|
* zero out component data structure during parse.
|
|
* make component register/unregister update state in the group list.
|
|
* return ERR_NOT_EXIST and ERR_EXIST and BAD_OPERATION error codes for
|
|
register and unregister as per spec.
|
|
* renamed executive message handlers to include exec in name of handler
|
|
function.
|
|
* Handle null proxyCompName to register and unregister as per spec.
|
|
* Fixed off-by-one in handle database that resulted in badness when
|
|
allocating memory after creating any handle (ie: create two handles).
|
|
* Added component enumerator which enumerates all components and executes
|
|
a function on the component.
|
|
* Added component enumerator to unregister all library and nodeexec
|
|
connections that are disconnected.
|
|
|
|
0.15
|
|
* Added correct time stamping for SaClmClusterNodeT structure.
|
|
* Made nodeexec message handlers use the message_handler structure.
|
|
* Made nodeexec_process_receive handle messages made of only headers
|
|
with no payloads. Previously, nodeexec would lock.
|
|
* Seperated heartbeat into two shorter messages one request and one response.
|
|
* Changed names of some structures to be more consistent.
|
|
|
|
0.14
|
|
* Added simple linked list implementation list.h.
|
|
* Modified parser to read data into linked lists. This makes processing
|
|
register/unregister/healthchecks/management of HAState easier.
|
|
* Exported queue implementation from nodeexec.c to queue.h.
|
|
* Seperated parser and parser testing code to seperate source files.
|
|
* Modified makefile to build parser test code.
|
|
* Modified parser test code to display new linked-list implementation.
|
|
* Partially implemented register/unregister/get component name commands
|
|
in AMF spec.
|
|
|
|
0.13
|
|
* Genericized nodeexec handler so it could run any type of service
|
|
and each service has its own set of handler functions as not to crash
|
|
the node executive. This allows a set of messages to be designed
|
|
to not be crashable, vs trying to figure out all of the interactions
|
|
between a flat message name space.
|
|
* Added size field for messages stored into the outq so
|
|
two send_messages in the nodeexec wouldn't crash. The send_message
|
|
function requires the size on messages, and the size was retrieved from
|
|
the message header. In a two-part send, there is no message header in
|
|
the second message. This was resulting in junk data and possible
|
|
crashes on messages that must be queued waiting for the libais to
|
|
recv on the other end.
|
|
This also fixes the MESSAGE_MAGIC value being displayed in some
|
|
NodeId fields of the testclm application.
|
|
* Changed lots of type names to something more consistent.
|
|
* Changed lots of enumerated types names to something more consistent.
|
|
|
|
0.12
|
|
* Abstracted some of the networking functions for EINTR and other errors
|
|
Added library handle verification and generic handle database mechanism
|
|
available for all services.
|
|
* Implemented database mechanism and all abstracted functions on cluster
|
|
membership service.
|
|
|
|
0.11
|
|
* Defined AMF configuration file.
|
|
* Added configuration parser for AMF service.
|
|
* Defined inital AMF header/c files.
|
|
|
|
0.1
|
|
* Initial release of cluster membership service.
|