* Reproduced with cluster sample.
* auto-down=45s
* node1 and node2 joins
* suspend node2 (kill -STOP)
* node1 removes and quarantines node2
* resume node2 (kill -CONT)
* node2 receives heartbeat response from node1, which
is not expected since node2 is supposed to be quarantined
* the reason is that the quarantine is overwritten by gating
* minor fixes
* remove now superfluous buffer from MultipartUnmarshaller
* remove unused TokenSourceActor
* remove FIXME: add tests, see #16437
* removed unused param remoteAddress (comment: TODO: remove after #16168 is cleared)
* convert FIXME to TODO (#18709)
* reenable tests in {Request|Response}RendererSpec due to fixed#15981
* remove logging workaround in StreamTestDefaultMailbox due to fixed#15947
This is to ensure Akka Cluster Client will work with Java Serialization turned off.
However for the sake of backward compatibility, the protobuf serialization for `akka.actor.Identify`
and `akka.actor.ActorIdentity` is turned off.
* on local it took 8 seconds for the expected
TimeoutException to occur in the last
EventFilter[TimeoutException](occurrences = 1).intercept {}
Therefore I assume that the 10 seconds timeout was too short
* The configuration of the pool of the SimpleDnsManager
is configured in deployment section "/IO-DNS/inet-address"
* We don't really support deployment configuration of system actors
but here it's used and I don't think we can change that.
* It didn't work when using RemoteActorRefProvider/ClusterActorRefProvider,
so I fixed it so that the behavior is consistent with the
LocalActorRefProvider (verified by tests)
* The problem: ACK that was targeted to an old incarnation
was sent to the new, restarted, system with same host:port, and
therefore resulting issues noticed as
"Error encountered while processing system message acknowledgement buffer: [-1 {}] ack: ACK[0, {}]"
when restarting actor system
* The reason:
1. The endpoint reader was about to send OutgoingAck to parent reader,
targeted to the old system.
2. At the same time there is an incoming connection from new system
that triggered TakeOver in the endpoint writer, i.e. replacing
the handle to the connection of the new system.
3. The OutgoingAck is received by the writer, which happily sends it
to the new handle, the new system.
* The solution: Ignore OutgoingAck during the handoff (TakeOver) process.
remote's shutdown is using `ask` pattern, so it can produce `Status.Failure`, which is not handled in RARP's state `WaitTransportShutdown`.
For fixing it added matching for `Status.Failure` and changed `RemoteTransport`'s shutdown signature to use `akka.Done`, which looks more consistent with other shutdown's and `akka.Done` is more verbose than previously used `Unit`.
Publish appropriate events to the current ActorSystem event stream upon remote ActorSystem shutdown or when current ActorSystem is quarantined by the remote ActorSystem.
* DeathPactException could occur if the ReliableDeliverySupervisor
was gated but not yet received Terminated and got an Ungate message
from the EndpointManager and thereby entered idle state, followed by
receiving the Terminated message, which is not handled in idle
* instead of using transport failure detector
* add a new config property akka.remote.handshake-timeout, but
for netty.tcp and netty.ssl the existing netty.tcp.connection-timeout
setting will be used
* add test of the timeouts
* mima filter for internal ProtocolStateActor
* well, as long as they provide the parseFrom and toByteArray
* it is using reflection to find the `parseFrom` and `toByteArray` methods to avoid
dependency to `com.google.protobuf`.
* also special case com.google.protobuf when loading serialization binding
* migration guide
* mima filters for the serializers (all types changed)
* add real test for ProtobufSerializer
- created new subproject akka-protobuf (and added COPYING and LICENSE)
- renamed com.google.protobuf -> akka.protobuf everywhere
- also added such renaming step to the results of protoc compilation in
project/Protobuf.scala
- had to include transcriptions of Netty’s ProtobufEncoder/Decoder to
make multi-node-testkit compile again