github real-logic/aeron 1.41.0

latest releases: 1.46.2, 1.46.1, 1.46.0...
17 months ago
  • Allow NameResolver to be configured for the ConsensusModule in order to support custom name resolution when configuring the ingress channel.
  • Delay election state transitions if there is an active leader to avoid unnecessary reset and new election.
  • Make AeronCluster.asyncConnect work completely asynchronously. Don't report exceptions to the error handler that are used for async resources.
  • Add a system property and API to allow changing a directory where an Archive mark file (archive-mark.dat) is stored.
  • Check the state of the interface when trying to resolve the multicast interface. Only use interfaces that are up. Issue #1387
  • CnC file length validation. Issue #1410
  • Fix issue of not capturing return code when recording signal arrives after an error to the archive client.
  • Support migrating segments to the beginning or end of an existing archive recording.
  • [C] Fix issue of using transport after it had been removed.
  • [Java] Fix concurrent close of receive destination counters on multi-destination subscriptions.
  • [C] Fix remove_if methods on pointer value maps which previously could miss an item.
  • Add debug logging for clustered service acking.
  • Add a specific error for archive replication failing to create a remote connection.
  • Fix leak with Archive replay session if the async publication has a session clash.
  • Shorten duration of cluster election after a leader has closed gracefully.
  • [C] Fix image rejoin by swapping correcting cooldown map insertion and removal. PR #1338
  • Candidate ballot for 5+ node cluster cannot be cut short on quorum otherwise most up to date member may not be elected.
  • [C] Allow for attempted recreation of an Image if initial attempt fails. PR #1435
  • Perform most replay validations before sending OK to the client so errors are synchronous when starting a replay.
  • Delete all recording segment files when a recording is truncated to its start position.
  • Close ArchiveMarkFile last when shutting down Archive to capture all errors.
  • [C++] Apply std::forward to fragment handler to avoid unnecessary copy. PR #1405
  • Fix handling of padding greater than max message length in Archive replay.
  • Add debug logging for Archive recording signals.
  • Close log subscription first when clustered service is cleanly closed to drop follower out of flow control as soon as possible.
  • Drop cluster follower as soon as possible out of flow control to allow cluster to progress when follower is cleanly closed.
  • [C] Report timeout accurately when driver keepalive beyond timeout. PR #1429
  • Add ability to run Archive with only IPC control channels for clients.
  • Add ClusterTool.isLeader method.
  • Add Image to Subscription before calling available handler rather than after.
  • Set URI in receiver counters to match subscription channel.
  • Add cluster member node state file and migrate out state that needs to be persistent, such as candidateTermId and member list, so the mark file can be in /dev/shm.
  • [C] Fix issue with removing naming resolver neighbor that deleted adjacent memory.
  • [C] Improve socket error handling on Windows.
  • [Java] Add toString() to many Aeron classes to help debugging.
  • [C] Improve parsing of unsigned 32-bit integers.
  • [C] Set max of resource free queue length and resource free limit to INT32_MAX. This stops them being incorrectly set to 0 by aeron_config_parse_uint32 when comparing against int32 0. PR #1421
  • Deprecate cluster dynamic join feature. This is to be replaced with a more robust and user friendly premium offering.
  • [C] Fix counter leak when subscription fails.
  • [C] Fix spy channel memory leak when destination is removed for multi-destination subscription.
  • [C] Fix channel memory leak on error when creating publications or subscriptions.
  • Fix NPE on timeout exception for cluster client in some connect states.
  • [Java] Improve efficiency of URI parsing.
  • [C] Fix error messages with incorrect varargs.
  • Warnings clean up in codebase to have less noisy CodeQL analysis.
  • Support having mark files for Archive, ConsensusModule, and ClusteredServiceContainer to be in alternative directory such a /dev/shm so timeouts can be avoided when recording writes queue up on a network filesystem.
  • Add timestamp params to stripped channel for pass through to Archive operations.
  • Queue resource freeing operations in driver to avoid timeouts when unmapping operations are slow.
  • [C++] Work around compiler concurrency bug for AtomicArrayUpdater that can impact client Subscriptions causing image list to become corrupted.
  • Improve javadoc for recording signal usage.
  • Be strict on handling cluster leader liveness to the current leadership term.
  • Only try unblocking a client command after liveness timeout to avoid "lost" commands. PR #1369
  • Make archive counters unique so multiple archives can run on the same media driver.
  • Truncate files after ArchiveTool.compact is invoked to free disk space.
  • Fix basic auction cluster tutorial configuration.
  • Improve ClusterConfig sample to allow for ingress configuration.
  • Add counters for the number of active recordings or replays in an Archive.
  • Add counters for reporting on read and write operations in an Archive.
  • Support allowing a ClusteredService being started before the ConsensusModule.
  • Improve false sharing protections for more consistent latency.
  • Simplify ReplayMerge samples to not require entity tags.
  • Add batch script for launching low-latency media driver on Windows.
  • Support message lengths greater than MTU in ping pong samples.
  • Fix options handling in cping sample.
  • Improve handling of timeouts in cluster elections for more robust state transitions when network is unstable. Effects are more pronounced in 5+ member clusters.
  • [Java] Add Aeron.addAsyncSubscripiton for non-block setup.
  • Compute source identity of images more precisely based on channel configuration.
  • Improved handling of out of disk space errors.
  • Support taking a cluster consensus module snapshot when member names are greater than MTU in length.
  • Allow a follower to veto a member being elected cluster leader if they believe the leader is not valid. This is important in 5+ node clusters.
  • Extend debugging for voting in cluster elections.
  • Increment error counter when invalid version exceptions occur.
  • Handle backpressure from commands between dedicated threads in driver with controlled polls to avoid live locks.
  • [C] Add support for controlled poll operations on SPSC and MPSC ring buffers.
  • Increase command queues to allow for more concurrent active changes in publications and images.
  • Serve cluster backup queries from followers to take load from the leader.
  • [C] Fix build when dot is used as thousands separator. PR #1372
  • Upgrade to JUnit 5.9.2.
  • Upgrade to BND 6.4.0.
  • Upgrade to ByteBuddy 1.14.3.
  • Upgrade to Mockito 4.11.0.
  • Upgrade to Version 0.46.0.
  • Upgrade to Gradle 7.6.
  • Upgrade to SBE 1.28.1.
  • Upgrade to Agrona 1.18.0.

Don't miss a new aeron release

NewReleases is sending notifications on new releases.