github real-logic/aeron 1.40.0

latest releases: 1.44.1, 1.44.0, 1.41.6...
19 months ago
  • Memory align allocated buffers in PublicationTest so it works on Apple M1 processors.
  • Check that NoOpLock is only allowed to be used when using Aeron client in invoker mode.
  • Handle case of a delayed concurrent offer to a publication in which other threads have raced terms ahead without throwing an exception.
  • Collapse term appenders into publications to reduce memory footprint and avoid data dependent loads.
  • Short circuit Image polling operation when bound limit is less than current position to prevent term overrun.
  • Add different aliases for consensus module/service container subscriptions. PR #1366.
  • Stop an active cluster log replay when ClusterBackup is closed rather than waiting for timeout.
  • Send unavailable counter events to Aeron clients when a client closes or times out.
  • Allow Consensus Module Agent to be run via an Invoker in addition to having its own thread.
  • Apply liveness checks to Archive and Cluster mark files so that multiple instances cannot be run in the same directory and corrupt files.
  • [Java] Use fixed format for timestamps in agent debug logs.
  • Allow Archive replicate to overwrite all metadata for an empty recording.
  • [C] Handle log buffer files with term_length == AERON_LOGBUFFER_TERM_MAX_LENGTH on Windows. PR #1360.
  • [C] Fix inclusion of symbols for debug builds on Windows.
  • Remove localhost defaults for Archive and Cluster to help avoid mis-configuration in production. PR #1356.
  • Await 'REPLICATE_END' when catching up as a follower across multiple leadership terms to avoid clashing session-id.
  • Allow setting of receive socket buffer and window on cluster log channel subscribers. PR #1345.
  • Fix application of send socket buffer lengths as configured when using MDC.
  • Fix ArchiveTool.dump when fragment length is set <= 0.
  • Capture closing sessions into snapshot so session close event is lost on cluster shutdown.
  • Remove brackets from counters labels to make it easier for extract to Prometheus.
  • Send cluster client session open acknowledgement before appending to the log to avoid race with service sending egress on open event. Issue #1351.
  • [C] Fix off by one error local socket address into channel indicator counter.
  • Add protocol version support to cluster consensus protocol.
  • Add more context to error messages on Archive ReplaySession. PR #1349.
  • Apply strict validation of consensus module snapshot state when messages are offered from clustered services. A number of customers have not been strict with all cluster nodes being deterministic and doing exactly the same thing which can result in corrupted and diverged snapshots.
  • Consensus module state snapshot can be inspected with the describe-latest-cm-snapshot option to ClusterTool.
  • If a consensus module snapshot is shown to be corrupt it may be fixed by running ConsensusModuleSnapshotPendingServiceMessagesPatch and if non-support customers wish to have help then they can contact sales@aeron.io. The patch can fix the leader and the fixed snapshot then needs to be replicated to the followers which can be done with AeronArchive.replicate using the correct recording ids.
  • Add a tool to replicate a specific recording between archives. PR #1363.
  • [C++] use getAsString calls for pollers for record descriptors for channel fields. Add test from PR #1348.
  • Add ClusteredService.doBackgroundWork which can be used for maintaining external connections beyond ingress and egress.
  • Increase default message timeout from 5 to 10 seconds for Archive clients.
  • Add EOS flag to status messages (SMs) once a stream is totally received so the sender can take clean up action.
  • When EOS status message is received by a sender then allow the publication linger on unicast to be cut short so resources are received sooner.
  • When EOS status message is received by a sender then remove the receiver from flow control for multicast and MDC with tagged and min FC.
  • Fix the closing of session specific subscriptions to prevent resource leak.
  • Add scripts for testing raw network performance on Windows.
  • Close egress from cluster on change of leader so clients can detect it before a new leader is elected.
  • Don't timeout and close cluster client session if quorum cannot be temporarily reached.
  • Add logging support for ClusterBackup state changes.
  • Close cluster clients when complete cluster is restarted.
  • Support automatic reconnect from cluster client when the same leader is re-elected after a net split or temporarily loosing quorum.
  • Add authentication for ClusterBackup to a cluster.
  • Validate Archive mark file length before reading when mapped read-only to avoid access violations.
  • Preserve iteration order for cluster client session based on session id so snapshots can have binary compatibility.
  • Capture leadership term id for cluster backup queries.
  • Account for padding when sweeping pending services messages to avoid out of bounds exception.
  • Prevent -1 leadership term ids appearing in the RecordingLog.
  • Allow Archive replication and replay request to specify session level file IO max buffer length for throttling a stream.
  • Add support for custom app version validation to clustered services with AppVersionValidator.
  • Add false sharing protection to DutyCycleTracker.
  • Update doc on ReplayMerge to indicate the AeronArchive client should not be shared. Issue #1340.
  • Upgrade to Versions 0.43.0.
  • Upgrade to Mockito 4.8.1.
  • Upgrade to Google Test 1.12.1.
  • Upgrade to JUnit 5.9.1.
  • Upgrade to ByteBuddy 1.12.18.
  • Upgrade to Gradle 7.5.1.
  • Upgrade to SBE 1.27.0.
  • Upgrade to Agrona 1.17.1.

Java binaries can be found here.

Don't miss a new aeron release

NewReleases is sending notifications on new releases.