* Setting to configure where the flight recorder puts its file
* Run ArteryMultiNodeSpecs with flight recorder enabled
* More cleanup in exit hook, wait for task runner to stop
* Enable flight recorder for the cluster multi node tests
* Enable flight recorder for multi node remoting tests
* Toggle always-dump flight recorder output when akka.remote.artery.always-dump-flight-recorder is set
* handle ConductorServiceTimeoutException and
DriverTimeoutException
* shutdown things properly, in the right order, and
without overwhelming the logs with exceptions
This is useful in at least two scenarios:
- Unit testing actors that communicate to their parent directly
- Testing re-creating (typically persistent) actors with the same name
Changes are https://github.com/real-logic/Aeron/releases/tag/1.0.1 :
> * Adjust incremental cleaning to avoid overwrite of cleaned log in loss scenarios to address Issue #271.
> * Correctly initialise cleaning position for late joining a stream. Issue #268.
> * Make clientLivenessTimeout configurable from Context.
> * Shadow samples into aeron-all JAR.
> * Support creating Agent threads via ThreadFactory to enable pinning.
> * Update to Agrona 0.5.4.
> * Update to ByteBuddy 1.4.20.
* track nodes by UniqueAddress in Cluster Singleton, #20942
* reply with HandOverDone from new incarnation, #20942
* confirm as terminated immediately when new incarnation joins, #20942 instead of waiting for failure detector to mark it as unreachable this will speed-up removal when restarting cluster node with same hostname:port
* when rate exceeds 1000 msg/s adaptive sampling of the
heavy hitters tracking is enabled by sampling every 256th message
* also fixed some bugs related to advertise in progress
* update InboundCompression state atomically
* enable compression in LatencySpec
* ignore PubSub Status message from unknown node, #20846
Reproducer:
1. old cluster of node1, node2 and node3
2. shutdown node3 and start it again with same host:port, let it
join itself and not the old cluster
3. node1 and node2 will continue to gossip to the node3 address and
Status message is accepted and replied to (Delta is ignored from
unknown node)
Solution:
* ignore status message from unknown node
* also added a reply flag in the Status message to break the
back-and-forth replies in case the deltas are not accepted,
this is not needed for fixing this bug, but it adds an extra
level of safety
* 20456: add hot connection pool via the minConnections setting
* added the akka.http.host-connection-pool.min-connections setting to reference.conf
* modified config implementation s o it's being read, with 0 as default
* based on the setting two types of pools will be created - hot and cold
* hot ones will start ASAP and not close when the number of active connections fall to 0
* PR remarks: english, remove getIntOpt ...
Moving logic into PoolConductor WIP
* WIP: moving minConnections logic into PoolConductor, needs more precise tests
* added testing via expectNextN in ConnectionPoolSpec.scala; fixed the bug with skipping the actor state in PoolSlot
* fix comments from PR: make sure PoolConductor produces only SwitchSlotCommand
* fix typo: slotSettings -> slots
* Fix style after code review
- inline short snippets
- shorter Mima
- better naming
- make SlotCommands final