CHANGELOG 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232
  1. Application Interface Specification Implementation
  2. --------------------------------------------------
  3. 0.30
  4. * Add GMI & sort queues to build environment.
  5. * Changed queue.h to be more consistent with naming conventions used in tree.
  6. * Simplified cluster membmership service by modifying to use GMI.
  7. * Modified availability management framework to use GMI.
  8. * Modified method services connect to main executive to make services standalone
  9. objects. This could facilitate plugin services in the future.
  10. * Modified checkpointing for multinode using GMI.
  11. * healthcheck timeouts were being caused by slow access to the filesystem for
  12. sockets and deleted sockets. This was fixed by using the abstract namespace
  13. which is memory based.
  14. * Generic logging facility added to get rid of numerous #ifdef DEBUGs and avoid
  15. the SIGPIPE and signal changes created by the libc's version of syslog.
  16. * Authentication for API<->executive added. Only uid=0 or gid=ais processes can
  17. connect to the executive via the libraries to provide service.
  18. * This release has alot of cleanups!
  19. * Removed all point-to-point authentication since using GMI now.
  20. * GMI provides extended virtual synchrony semantics with:
  21. * - agreed message ordering (all processors agree on message order)
  22. * - using available hardware multicast
  23. * - group membership algorithm that currently supports 16 processors
  24. * - message fragmentation to fit MTU that avoids UDP fragmentation
  25. * - full recovery of messages during configuration change
  26. * - 512kb message support
  27. * - 3 priority levels
  28. 0.29
  29. * Changed all send/recv functions to sendmsg/recvmsg.
  30. 0.28
  31. * Remove current poll code and replace with poll abstraction.
  32. 0.27
  33. * Add CKPT service to AIS Executive for single node checkpointing.
  34. 0.26
  35. * Added support for pthreads to clm and amf interfaces. Critical
  36. sections and shared data now protected by mutex. If Dispatch in
  37. one thread, Finalize in another thread will cause Dispatch to behave
  38. per spec.
  39. * Moved global receive buffer for APIs into handles or stack.
  40. * Allocate and free instance memory in handle manager instead of in each API.
  41. * Merge defect fixes from 0.22.1-0.22.8 into development tree.
  42. * CkptCheckpointHandleT and CkptSectionIteratorT functions created a new
  43. connection each time any APIs using those types were called. Now these
  44. types have been encapsulated into their own handle database which doesn't
  45. create (expensive) connections for each API call.
  46. * Changed named types such as MESSAGE_CKPT_REQ* to MESSAGE_REQ_CKPT* to match
  47. structure names.
  48. 0.25
  49. * Added ability for authentication to use none, password, or DSA depending on
  50. settings in file /etc/ais/authtype. The values are no authentication, password
  51. authentication, or dsa authentication.
  52. * Added DSA authentication to node-to-node communication.
  53. Server generates 16 byte random number, sends random number to connecting
  54. client, client signs random number message with DSA private key, server
  55. verifies signature with public key of client for random number message.
  56. * Added DSA key generator.
  57. * Added password authentication. File /etc/ais/aiskeys/password is used by the
  58. server to compare the client's password. If they match, the connection is
  59. authenticated.
  60. * Added no authentication option.
  61. * Fixed PPC compile to compile cleanly with -Wall.
  62. * Added version checking to APIs.
  63. 0.24
  64. * Fixed problem if outbound queues have messages queued, they are not
  65. sent during the poll loop because poll isn't passed the correct events flag.
  66. This problem introduced in the select to poll conversion in 0.23.
  67. * Healthchecks for CLM service intra-node now run on seperate timers per connection.
  68. * Fixed problem connections intra-node were completely broken as a result
  69. of the change from select to poll in 0.23.
  70. * Fixed bug in AMF timer_del on NULL timer.
  71. * Fixed few bugs in AMF intra-node communications would result in segfault.
  72. * Made pollfd_table global to reduce variable passing and simplify code.
  73. * Cleaned up with compile of -Wall which found several bugs.
  74. * Some minor cleanups of makefiles from major reorg in 0.23.
  75. * Replaced memory malloc/free/realloc with memory pool versions to avoid
  76. failed memory allocation requests and improve realtime response.
  77. * Implemented the library portion of all checkpointing (Ckpt) APIs.
  78. 0.23
  79. * Reorganized executive into exec directory and split executive components
  80. into seperate files.
  81. * Placed library interfaces into lib directory.
  82. * Placed test components into test directory.
  83. * Abstracted some of the service setup and teardown code that was
  84. integrated into the main loops and disconnect function call to call
  85. generic functions {amf|clm}InitializeExecutive, and {amf|clm}FinalizeApi.
  86. * Cleaned up connection (ci) datatypes.
  87. * Removed old timers, replaced with generic timer implementation.
  88. * replaced select with poll in executive.
  89. * lock memory of process and set RR prio 99 to avoid priority inversions.
  90. * Fixed problem where accept couldn't connect because resource exhaustion,
  91. executive would crash.
  92. 0.22
  93. * Fix defect in HA state and operational state machines where states are not
  94. always determined correctly.
  95. * Fix defect invalid argument to saAmfErrorReport will crash executive.
  96. * Fix defect no /var/run/aisexec.pid created for service.
  97. 0.21
  98. * Fix defect testclm doesn't exit if no connection to AIS executive possible.
  99. * Fix defect aisexec crashes if no /etc/groups.conf file present.
  100. * Fix defect aisexec opens "groups.conf" instead of "/etc/groups.conf" file.
  101. * Fix defect aisexec doesn't set SaClmClusterNodeT data structure if local interface
  102. not defined in /etc/clusterips, or empty/no /etc/clusterips file present.
  103. * Fixed some basic error reporting in aisexec to use syslog's LOG_ERR instead
  104. of LOG_NOTICE.
  105. * Fixed SEGV if component not found for componentcapabilitymodelget API.
  106. 0.20
  107. * Correctly parse model values in configuration file for both service
  108. groups and components.
  109. * Changed variables with text nodeexec to aisexec.
  110. * Fixed a bug select wouldn't retry because errno checked for -EINTR
  111. when it should be checking for EINTR.
  112. * Correctly determine startup HA state and send appropriate ha state
  113. changes to registered receivers.
  114. 0.19
  115. * Implemented saAmfCSISetCallback.
  116. * Implemented saAmfCSIRemoveCallback.
  117. * Implemented saAmfProtectionGroupTrackStart.
  118. * Implemented saAmfProtectionGroupTrackCallback.
  119. * Implemented saAmfProtectionGroupTrackStop.
  120. * Implemented saAmfErrorReport.
  121. * Implemented saAmfErrorCancelAll.
  122. * Implemented saAmfResponse.
  123. * Implemented saAmfComponentCapabilityModelGet.
  124. * Implemented saAmfPendingOperationGet dummy function.
  125. This function will have to be rewritten to be
  126. correct, but completes the API for now.
  127. * Fixed problem where queued messages would not cause select
  128. to be triggered. Occured in component register, unregister,
  129. track start, track stop functions.
  130. 0.18
  131. * Implemented saAmfReadinessStateSetCallback.
  132. * Implemented saAmfStoppingComplete.
  133. * Implemented saAmfComponentTerminateCallback.
  134. * Implemented saAmfHAStateGet.
  135. 0.17
  136. * Implemented saAmfHealthcheckCallback.
  137. * Implemented saAmfResponse.
  138. * Implemented saAmfReadinessStateGet.
  139. * Made connect non-blocking to fix bug where blocking connects
  140. could cause timeout on heartbeating.
  141. * Made recv's non-blocking by adding small buffer to each connection
  142. and recving and processing as needed.
  143. * Integrated message dispatch for libais and nodeexec connections.
  144. * Fixed bug where SA_TRACK_CURRENT does not return current state of
  145. cluster membership after second invocation of the testclm application.
  146. * Seperated several functions from main.
  147. * Fixed bug where outqs were not flushed when data present within them
  148. at end of processing loop before next select. Previously they would
  149. only flush when new data was sent on the queues.
  150. * Fixed bug where CLM and AMF always processed dispatch functions in
  151. SA_DISPATCH_BLOCKING mode.
  152. 0.16
  153. * zero out component data structure during parse.
  154. * make component register/unregister update state in the group list.
  155. * return ERR_NOT_EXIST and ERR_EXIST and BAD_OPERATION error codes for
  156. register and unregister as per spec.
  157. * renamed executive message handlers to include exec in name of handler
  158. function.
  159. * Handle null proxyCompName to register and unregister as per spec.
  160. * Fixed off-by-one in handle database that resulted in badness when
  161. allocating memory after creating any handle (ie: create two handles).
  162. * Added component enumerator which enumerates all components and executes
  163. a function on the component.
  164. * Added component enumerator to unregister all library and nodeexec
  165. connections that are disconnected.
  166. 0.15
  167. * Added correct time stamping for SaClmClusterNodeT structure.
  168. * Made nodeexec message handlers use the message_handler structure.
  169. * Made nodeexec_process_receive handle messages made of only headers
  170. with no payloads. Previously, nodeexec would lock.
  171. * Seperated heartbeat into two shorter messages one request and one response.
  172. * Changed names of some structures to be more consistent.
  173. 0.14
  174. * Added simple linked list implementation list.h.
  175. * Modified parser to read data into linked lists. This makes processing
  176. register/unregister/healthchecks/management of HAState easier.
  177. * Exported queue implementation from nodeexec.c to queue.h.
  178. * Seperated parser and parser testing code to seperate source files.
  179. * Modified makefile to build parser test code.
  180. * Modified parser test code to display new linked-list implementation.
  181. * Partially implemented register/unregister/get component name commands
  182. in AMF spec.
  183. 0.13
  184. * Genericized nodeexec handler so it could run any type of service
  185. and each service has its own set of handler functions as not to crash
  186. the node executive. This allows a set of messages to be designed
  187. to not be crashable, vs trying to figure out all of the interactions
  188. between a flat message name space.
  189. * Added size field for messages stored into the outq so
  190. two send_messages in the nodeexec wouldn't crash. The send_message
  191. function requires the size on messages, and the size was retrieved from
  192. the message header. In a two-part send, there is no message header in
  193. the second message. This was resulting in junk data and possible
  194. crashes on messages that must be queued waiting for the libais to
  195. recv on the other end.
  196. This also fixes the MESSAGE_MAGIC value being displayed in some
  197. NodeId fields of the testclm application.
  198. * Changed lots of type names to something more consistent.
  199. * Changed lots of enumerated types names to something more consistent.
  200. 0.12
  201. * Abstracted some of the networking functions for EINTR and other errors
  202. Added library handle verification and generic handle database mechanism
  203. available for all services.
  204. * Implemented database mechanism and all abstracted functions on cluster
  205. membership service.
  206. 0.11
  207. * Defined AMF configuration file.
  208. * Added configuration parser for AMF service.
  209. * Defined inital AMF header/c files.
  210. 0.1
  211. * Initial release of cluster membership service.