Commit graph

97 commits

Author SHA1 Message Date
Patrik Nordwall
edef9e34c7 serialize-creators=off in tests, #23003 2017-05-22 20:11:03 +02:00
everetennikov
b072b741c6 Proper Logging.simpleName() invocation with Class[_] arg instead of Class[_].getName #22533 2017-04-17 20:44:29 +03:00
Björn Antonsson
2573a02f10 Consolidate various message buffer implementations 2017-03-16 10:00:29 +01:00
Nicolas Rémond
6cb5cbfae7 semicolon aren't such a thing in Scala 2017-02-22 12:58:13 +01:00
Johan Andrén
8f9b4f203a Pass the deserialized message on when serialize-messages on #13751 2017-02-17 16:41:25 +01:00
Patrik Nordwall
b6f4bddea3 Merge pull request #22118 from akka/wip-22117-proxy-remove-patriknw
stop ClusterSingletonProxy when self member removed, #22117
2017-01-24 11:49:51 +01:00
Patrik Nordwall
4bd6b7aab1 improve AbstractActor, #21717
* Receive class that wraps PartialFunction, to avoid
  scary scala types
* move AbstractActorContext to AbstractActor.ActorContext
* converting docs, many, many UntypedActor
* removing UntypedActor docs
* add unit test for ReceiveBuilder
* MiMa filters
* consistent use of getContext(), self(), sender()
* rename cross references
* migration guide
* skip samples for now
* improve match type safetyi, add matchUnchecked
  * the `? extends P` caused code like this to compile:
    `match(String.class, (Integer i) -> {})`
  * added matchUnchecked, since it can still be useful (um, convenient)
    to be able to do:
    `matchUnchecked(List.class, (List<String> list) -> {})`
* eleminate some scala.Option
  * preRestart
  * findChild
  * ActorIdentity.getActorRef
2017-01-23 18:30:52 +01:00
Patrik Nordwall
eb8ebd09bd stop ClusterSingletonProxy when self member removed, #22117 2017-01-23 11:59:12 +01:00
Patrik Nordwall
84ade6fdc3 add CoordinatedShutdown, #21537
* CoordinatedShutdown that can run tasks for configured phases in order (DAG)
* coordinate handover/shutdown of singleton with cluster exiting/shutdown
* phase config obj with depends-on list
* integrate graceful leaving of sharding in coordinated shutdown
* add timeout and recover
* add some missing artery ports to tests
* leave via CoordinatedShutdown.run
* optionally exit-jvm in last phase
* run via jvm shutdown hook
* send ExitingConfirmed to leader before shutdown of Exiting
  to not have to wait for failure detector to mark it as
  unreachable before removing
* the unreachable signal is still kept as a safe guard if
  message is lost or leader dies
* PhaseClusterExiting vs MemberExited in ClusterSingletonManager
* terminate ActorSystem when cluster shutdown (via Down)
* add more predefined and custom phases
* reference documentation
* migration guide
* problem when the leader order was sys2, sys1, sys3,
  then sys3 could not perform it's duties and move Leving sys1 to
  Exiting because it was observing sys1 as unreachable
* exclude Leaving with exitingConfirmed from convergence condidtion
2017-01-16 09:01:57 +01:00
Patrik Nordwall
1eba8656cd Merge pull request #22094 from akka/wip-22093-ClusterClient-ask-patriknw
stop ClusterClient ResponseTunnel after first reply when ask is used, #22093
2017-01-10 10:34:41 +01:00
Patrik Nordwall
b213a7af20 stop ClusterClient ResponseTunnel after first reply when ask is used, #22093 2017-01-05 17:13:24 +01:00
Philippus Baalman
6c7085252a extended copyright into 2017 2017-01-04 17:37:15 +01:00
Patrik Nordwall
e494ec2183 catch NotSerializableException from deserialization, #20641
* to be able to introduce new messages and still support rolling upgrades,
  i.e. a cluster of mixed versions
* note that it's only catching NotSerializableException, which we already
  use for unknown serializer ids and class manifests
* note that it is not catching for system messages, since that could result
  in infinite resending
2016-12-16 20:14:37 +01:00
Johan Andrén
2679be5ae4 Disable serialization warnings in akka test suites #21882 2016-11-23 12:02:36 +01:00
Patrik Nordwall
a7eed00948 Merge pull request #21813 from akka/wip-21518-patriknw
minor cleanup of cluster.subscribe usage
2016-11-16 21:33:02 +01:00
Patrik Nordwall
88a6bdb059 Cluster singleton testing (#21803)
* add another singleton restart test

* remove from singleton sorted set with unique address

* because the upNumber used by the Ordering can change
2016-11-11 15:10:30 -08:00
Patrik Nordwall
d9e873644e minor cleanup of cluster.subscribe usage 2016-11-08 15:14:52 +01:00
Patrik Nordwall
9be7df1527 send terminationMessage to singleton when leaving last, #21592 (#21654)
* send terminationMessage to singleton when leaving last, #21592

* When leaving last node, i.e. no newOldestOption, the manager was
  just stopped. The change is to send the terminationMessage also
  in this case and wait until the singleton actor is terminated
  before stopping the manager.
* Also changed so that the singleton is stopped immediately when
  cluster has been terminated when last node is leaving, i.e.
  no newOldestOption. Previously it retried until maxTakeOverRetries
  before stopping.
* More comprehensive test of this scenario in ClusterSingletonManagerLeaveSpec

* increase test timeout
2016-10-28 14:23:18 +02:00
Niko Will
5fe950e694 Adding protobuf serialization for SendToOneSubscriber (cluster pubsub) #21629 2016-10-08 16:09:29 -05:00
Patrik Nordwall
8d36499cd4 shortname for provider config 2016-09-29 15:01:05 +02:00
Johan Andrén
9acb1feba3 ClusterClientSpec workin with artery #21477 2016-09-16 12:29:49 +02:00
Johan Andrén
848d56cc2f More tests working on artery
* non-multi-jvm tests from akka-cluster
* akka-cluster-metrics
* akka-cluster-tools
* akka-cluster-sharding
2016-09-14 11:40:42 +02:00
Patrik Nordwall
8ab02738b7 Merge branch 'master' into wip-sync-artery-dev-2.4.9-patriknw 2016-08-23 20:14:15 +02:00
Patrik Nordwall
e6068a0f5a Fix regression in Cluster Singleton, #21236
* When the test fails the node is removed from the membership
  twice, which triggers two OldestChanged cycles, but in
  the 2.4.9 change https://github.com/akka/akka/pull/21152/files#diff-f0ae95c926a050aecf45dba3e08d1c77L669
  the singleton manager always goes to End (stop) when it has been Oldest
* This fix restores the previous behavior for this scenario
2016-08-23 19:08:49 +02:00
Patrik Nordwall
0c4d4c37ba cluster singleton improvements, #20942
* 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
2016-08-19 11:56:55 +02:00
Patrik Nordwall
ccb5d1ba04 Merge branch 'master' into wip-sync-2.4.8-artery-patriknw 2016-07-08 15:38:33 +02:00
Patrik Nordwall
f0f755bf08 Merge pull request #20828 from choffmeister/choffmeister-20826-unregister-leaving-distributed-pubsub-nodes
Remove distributed pubsub nodes on leave
2016-07-05 15:48:07 +02:00
Patrik Nordwall
8b274ebc62 ignore PubSub Status message from unknown node, #20846 (#20847)
* 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
2016-07-01 12:12:23 +02:00
Christian Hoffmeister
fcd290cd9a Remove distributed pubsub nodes on leave #20826
This ensures that gracefully leaving nodes (which would terminate after
their own removed event) are already unregistered on all other pubsub
nodes, before termination.
2016-06-30 09:19:39 +02:00
Johan Andrén
d6c048f59a A simpler ActorRefProvider config #20649 (#20767)
* Provide shorter aliases for the ActorRefProviders #20649
* Use the new actorefprovider aliases throughout code and docs
* Cleaner alias replacement logic
2016-06-10 15:04:13 +02:00
Björn Antonsson
c66ce62d63 Update to a working version of Scalariform 2016-06-02 22:12:36 +02:00
Christopher Hunt
ceb0678de2 Observe the cluster client and its receptionist
Allows the cluster client and its receptionist to be observable in terms of contact points becoming available and client heartbeats. Furthermore a query API for requesting the current state has been provided.
2016-05-12 18:45:56 +10:00
Patrik Nordwall
d5a3b26291 format the code
* just a clean test:compile
* and fixing the tweets Source
2016-05-10 11:52:36 +02:00
Oleksii
5cc1c10a55 DistributedPubSub messages sent to dead letters if no recipients #19009 2016-05-10 08:56:31 +02:00
Johan Andrén
5671927cf1 clu #20309 API for pluggable cluster downing 2016-04-18 15:06:05 +02:00
Konrad Malawski
62d8a69fac all #20090 enable running java tests in actor,camel,cluster,persistence 2016-04-06 01:23:21 +02:00
Patrik Nordwall
9f659cf9b1 remove JUnitRunner annotation, #16112
* it was used for running tests from inside Eclipse,

  but since it caused some trouble we remove it
2016-04-05 17:06:58 +02:00
Patrik Nordwall
137c4c8b3d fix the the typo 2016-03-18 17:06:34 +01:00
Martynas Mickevičius
50f99328fe #18765 Update to latest MiMa which is now an AutoPlugin.
* check for binary inc. issues by default
* if check is not needed, disable MimaPlugin
* determine old artifact id from the current one
2016-03-10 10:45:35 +02:00
Johannes Rudolph
b6cbc7f13a =all remove unused imports 2016-02-23 20:29:22 +01:00
Johan Andrén
62e30b3c08 Update copyrights and links to the new company name #19851 2016-02-23 12:58:39 +01:00
Kirill Plyashkevich
35ffc49226 GZIPInputStream is not closed at all at places, where it's instantiated, which leads to off-heap memory leak with every deserialized message.
GZIPInputStream uses Inflater internally (so also native zlib). Inflater frees up memory only on explicit call to end() or during finalization (finalize() contains only call to end()), so GZIPInputStream should always be explicitly closed.

As native libraries are used a non-scalaish try-finally is used to avoid off-heap memory leak for GZIPInputStream and GZIPOutputStream in case of exceptions.
2016-02-15 16:15:05 +01:00
Patrik Nordwall
aaa8a2bb4c silence deadletter logging of SubscribeAck
* since it is normally (practially always) a local
  messages send that will not be rejected you don't
  care about the ack
2016-02-08 18:20:36 +01:00
Patrik Nordwall
d37a304394 Merge pull request #19154 from Adebski/Adebski-distributed-pub-sub-race-condition-fix
Race-condition problem in distributed-pub-sub fixed by introducing passivate-like protocol for mediator and Topic actors.
2016-01-28 10:55:38 +01:00
Prayag Verma
b7783968a0 =pro #19068 All copyrights ranges and single years updated to a range ending in 2016 2016-01-25 10:20:30 +01:00
adebski
460bad2726 =clu #19017 Race-condition issue when handling Topic/Group actors.
* Added reusable PerGroupingBuffer trait for pubsub implementation
* Moved mkKey methods to the Internal object
* Introduced passivate-like protocol between DistributedPubSubMediator/Topic and Topic/Group actors, contained in ChildActorTerminationProtocol messages.
2016-01-24 14:14:24 +01:00
Roland Kuhn
e5baba2b29 squash some warnings 2016-01-20 11:54:24 +01:00
Johan Andrén
19c7017482 =clu #18577 Option to stop cluster client after no receptionist contact timeout 2016-01-11 14:02:12 +01:00
Konrad Malawski
35108384c9 =clt #19381 silence heartbeat logging in cluster client 2016-01-08 12:11:56 +01:00
Roland Kuhn
f1abaa1c5e Merge pull request #18875 from ktoso/wip-akka.js-cherries-ktoso
Akka.js cherries to master
2015-11-07 18:01:24 +01:00