Commit graph

20 commits

Author SHA1 Message Date
Martynas Mickevičius
4ffe267835 =pro verify BC against all binary compatible versions 2015-10-23 09:10:25 +03:00
Patrik Nordwall
94896e8e75 =rem #18339 Use explicit handshake timeout
* 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
2015-10-19 14:34:52 +02:00
Patrik Nordwall
48754bb33f =pro #18447 Check binary compatibility with 2.4.0 2015-09-30 11:31:11 +02:00
Veiga Ortiz, Héctor
c08bc317e2 +clu #13584 Accept joining to be WeaklyUp during network split
* experimental feature, disabled by default
* Adding documentation to mention weakly up members.
  plus adding new diagram.
2015-09-04 12:44:47 +02:00
Patrik Nordwall
f8c1671903 =rem #13783 Make ProtobufSerializer independent of protobuf version
* 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
2015-09-04 09:12:34 +02:00
Patrik Nordwall
737a50ebf3 =clu #17253 Improve cluster startup thread usage
When using a dispatcher (default or separate cluster dispatcher)
with less than 5 threads the Cluster extension initialization
could deadlock.

It was reproducable by adding a sleep before the Await of GetClusterCoreRef
in the Cluster extension constructor. The reason was that other cluster actors were
started too early and they also tried to get the Cluster extension and thereby blocking
dispatcher threads.

Note that the Cluster extension is started via ClusterActorRefProvider before
ActorSystem.apply returns.

The improvement is to start the cluster child actors lazily when the
GetClusterCoreRef is received.
2015-09-03 18:09:31 +02:00
Patrik Nordwall
a94f7cdc98 =clu #15412 Add paths(system) method to Group router
to be able to use the role correctly in cluster aware routers

This solution is very similar to what we did for nrOfInstances
in Pool routers.
2015-08-21 14:40:56 +02:00
Patrik Nordwall
2694e13b32 !per #17862 Remove experimental from persistence 2015-08-12 13:52:19 +02:00
Patrik Nordwall
37321ee63f =act #17805 Don't change self on restart"
* we hold on to the same ActorRef instance anyway in the new
  Actor instance
2015-07-01 17:46:59 +02:00
Konrad Malawski
9e3a9983a7 +act #17719 introduce Tuple3-22 classes for java api 2015-06-23 15:01:35 +02:00
Patrik Nordwall
dec53381b6 =rem #17554 Improve flow control of system message delivery
When watching many (5000) actors at the same time the
following problems were found:

* first send of a sys msg is sent without any flow control
  => limit the number of outstanding sys msg by using
     the buffer to send them later (ordinary resend)
* when msg cannot be written sys msg is dropped (relying on resend),
  but that cause message re-ordering and negative acknowledgment,
  which is very costly
  => buffer the sys msg on write failure
  => minor optimization of AckedReceiveBuffer

I also made the resend-limit configurable.

(cherry picked from commit ecfc271e9a9d7efcf76945632d89c78740291cc6)
2015-06-16 06:55:24 +02:00
Patrik Nordwall
cef397d149 =act #17606 Revert abstract class change of ActorPath
It was not binary compatible. Placed static forwarders for Java API
in ActorPaths instead.
2015-05-29 11:11:09 +02:00
Martynas Mickevičius
7fc2790458 =pro run multi-jvm tests when validating pr
* addunidoc task via an AutoPlugin that depends on PrValidation and Unidoc autoplugins
* separate cli option logic to a case class
* remove autoplugin for root project
2015-05-28 13:57:50 +03:00
Thibaut Robert
12cbf83927 =rem improve remote watching mechanism
This improves the remote watching mechanism as follows: Watch requests
are intercepted by the RemoteWatcher and not sent on the wire,
excepted watches from the remoteWatcher itself.

RemoteWatcher is then in charge of forwarding DeathWatchNotification
messages to the watchers.

This reduces the number of watch message to one per watchee, even if
there are several watcher on the same watchee (instead of n+1 before).

Reversed watch messages, and watch on ref with undefinedUid are excluded from
interception by the RemoteWatcher and so are handled as before this commit.

In addition, the following changes are made:
- Keep watchers in a map watchee -> watchers for more efficient retrieval
(in a scala Multimap)
- Keep watchees in a map address -> watchee for more efficient retrieval
(in a scala Multimap)
- Use of InternalActorRef more thoroughly to avoid casts
- Rewatch use a standard watch message, as the distinction is longer needed
2015-05-13 14:10:35 +02:00
Patrik Nordwall
9b80733dde =pro #16736 Add bin compat problem filter for internal change 2015-05-13 12:52:50 +02:00
Roland Kuhn
25ddd1b253 =act #16327 fix BatchingExecutor.blockOn
It contained a difficult to hit race condition that was exploited with
the help of a custom same-thread execution context by Play (its Iteratee
trampoline). In short: don’t resubmit the current Batch if it contains
an unsynchronized variable.

(cherry picked from commit 6d6b9048ddaa72e7b7f1183dabf550b78de6d4e4)
2015-05-12 12:40:44 +02:00
Patrik Nordwall
b30e460be7 = #17342 Make 2.4 binary compatible with 2.3
(cherry picked from commit 89af8bdb90)

* remove final identifier in serializers

i* revert/deprecate ProtobufSerializer.ARRAY_OF_BYTE_ARRAY

* adding back compatible empty constructor in serializers

* make FSM.State compatible

* add back ActorPath.ElementRegex

* revert SocketOption changes and add SocketOptionV2
  see a6d3704ef6

* problem filter for ActorSystem and ActorPath

* problem filter for ByteString

* problem filter for deprecated Timeout methods

* BalancingPool companion

* ask

* problem filter for ActorDSL

* event bus

* exclude hasSubscriptions

* exclude some problems in testkit

* boundAddress and addressFromSocketAddress

* Pool nrOfInstances

* PromiseActorRef

* check with 2.3.9

* migration guide note

* explicit exclude of final class problems
2015-05-11 21:11:52 +02:00
Konrad Malawski
6f9b36e3a0 Revert "= #17342 Make 2.4 binary compatible with 2.3" 2015-04-30 13:09:27 +02:00
Patrik Nordwall
89af8bdb90 = #17342 Make 2.4 binary compatible with 2.3 2015-04-30 09:27:55 +02:00
Martynas Mickevičius
d29c978871 =pro #16704 add validatePullRequest task to samples
* move validatePullRequest to separate autoplugin
* move MiMa settings to separate autoplugin
2015-01-22 20:26:34 +02:00