Commit graph

318 commits

Author SHA1 Message Date
Helena Edelson
a110be8f69
Fix intercept of Watch in use of safe remote features #27333 (#27334)
And added one more case for cluster watcher, watching remote no cluster watchee, and the reverse.
2019-07-12 12:18:37 -07:00
Patrik Nordwall
8d69388d0a Deprecate classic remoting classes (#27237)
* Sprinkle deprecated annotation to public classes for classic remoting
* Use right dispatcher setting for a few remoting actors
* New Artery events for QuarantinedEvent, GracefulShutdownQuarantinedEvent
  and ThisActorSystemQuarantinedEvent because old were not good
  and would cause binary compatibility trouble when we remove classic
* silence more deprecation warnings
2019-07-10 14:26:51 +02:00
Arnout Engelen
47c65d266a Don't WARN when the user explicitly enabled unsafe features (#27289) 2019-07-05 18:25:35 +01:00
Patrik Nordwall
16f2009786 fix two log messages related to use-unsafe-remote-features-without-cluster (#27241)
* one was always logged at startup when using cluster provider
* the other was logged (at debug) each time an ordinary local actor was started
2019-07-05 08:11:33 +01:00
Helena Edelson
611e32de91 Disable remote watch and remote deployment outside Cluster (#27126) 2019-06-21 14:15:36 +02:00
Christopher Batey
96eed177dc
Make netty and aeron dependencies optional (#27017)
* Make netty and aeron dependencies optional
* Include agrona as a mandatory dependency (used in compression tables)
Refs #25169
2019-05-29 09:50:28 +01:00
Patrik Nordwall
71e9bdc262 more classic remoting leftovers
* fix several tests that were using akka.remote.netty.tcp config
* replace akka.tcp with akka in more places
* some doc cross references to remoting.md
2019-05-15 19:34:50 +02:00
Patrik Nordwall
14de568570 Remove remainings of actorFor, #26190
* remove undefinedUid specials related to actorFor
* mention in migration guide
* remove special case for watch of undefinedUid
2019-05-02 19:17:40 +02:00
Arnout Engelen
f17941d614 Move 'Remoting' under 'Clustering' in the docs (#26774)
* Move 'Remoting' under 'Clustering' in the docs #26491

* As it is typically not used directly, but as an implementation detail of
Clustering.

* Warn when remoting is used directly #26491
2019-04-29 13:18:03 +02:00
Arnout Engelen
e390f1397b
Fix warnings in akka-remote (#26735) 2019-04-16 20:26:09 +02:00
Christopher Batey
fbcb8c9f33 Review follow ups for PR #26653 2019-04-03 07:32:38 +01:00
Auto Format
75579bed17 format source with scalafmt, #26511 2019-03-15 10:23:46 +01:00
Auto Format
ce404e4f53 format source with scalafmt 2019-03-11 16:58:55 +01:00
Patrik Nordwall
5c96a5f556 replace unicode arrows
* ⇒, →, ←
* because we don't want to show them in documentation snippets and
  then it's complicated to avoid that when snippets are
  located in src/test/scala in individual modules
* dont replace object `→` in FSM.scala and PersistentFSM.scala
2019-03-11 16:58:51 +01:00
kerr
bdc90052aa Update headers from 2018 to 2019 once for all. (#26165)
* Add CopyrightHeader support for sbt-boilerplate plugin.
* Add CopyrightHeader support for `*.proto` files.
* Add regex match for both `–` and `-` for CopyrightHeader.
* Add CopyrightHeader support for sbt build files.
* Update copyright from 2018 to 2019.
2019-01-02 11:55:26 +01:00
kerr
fafc59b19d update headers to regular comment (#25807) 2018-10-29 05:19:37 -04:00
Kazuhiro Sera
482eaea122 Fix several minor typos detected by github.com/client9/misspell (#25448)
* Fix several minor typos detected by github.com/client9/misspell

* Revert s/erminater/erminator/ in /ActorSystemSpec
2018-08-21 11:02:37 +09:00
Patrik Nordwall
e6633f17fa
Make sure Serialization.currentTransportInformation is always set, #25067
* The ThreadLocal Serialization.currentTransportInformation is used for serializing local
  actor refs, but it's also useful when a serializer library e.g. custom serializer/deserializer
  in Jackson need access to the current ActorSystem.
* We set this in a rather ad-hoc way from remoting and in some persistence plugins, but it's only
  set for serialization and not deserialization, and it's easy for Persistence plugins or other
  libraries to forget this when using Akka serialization directly.
* This change is automatically setting the info when using the ordinary serialize and deserialize
  methods.
* It's also set when LocalActorRefProvider, which wasn't always the case previously.
* Keep a cached instance of Serialization.Information in the provider to avoid
  creating new instances all the time.
* Added optional Persistence TCK tests to verify that the plugin is setting this
  if it's using some custom calls to the serializer.
2018-05-21 16:59:04 +02:00
Patrik Nordwall
332aa58540 clarify the resolve debug logging (#24858) 2018-04-09 10:39:13 +02:00
Jimin Hsieh
2c2b8ba001 Remove some of Unused import warning (#24650) 2018-03-16 12:08:29 +01:00
Patrik Nordwall
4dab3252bd Add Artery TCP/TLS transport, #24390
* configurable SSLEngineProvider
* ssl configuration
* add internal outgoingTlsConnectionWithSSLEngine and bindTlsWithSSLEngine in stream Tcp
* TLS tests
* update remote security section in reference documentation
2018-02-20 16:06:16 +01:00
Patrik Nordwall
162a1f80a0 Add Artery TCP transport, #24390
* transport config
* TCP specific classes in akka.remote.artery.tcp package
* TcpFraming stage that handle the additional streamId field and length based framing.
  Credit to jrudolph for this clean solution, which made it possible to use same
  envolope header for Aeron and TCP.
* magic first bytes to detect invalid access
* drain SendQueue to deadLetters in postStop
* error handling, restart, inbound and outbound streams
* udp vs tcp in autoSelectPort
* TCP specific flight recorder events
* update reference documentation
2018-02-20 16:06:05 +01:00
Patrik Nordwall
0d222906f4 Prepare Artery for alternative TCP transport, #24390
* Refactoring to separate the Aeron specific things, ArteryAeronUdpTransport
* move Aeron specific classes to akka.remote.artery.aeron package
* move Version to ArterySettings, and describe strategy for envelope header changes
2018-02-20 16:02:57 +01:00
Johannes Rudolph
176bec52ae
=act don't initialize Serializer extension in RemoteActorRefProvider
Instead, load it as a library-extension.
2018-01-25 11:21:07 +01:00
Christopher Batey
009214ae07
Update copyright to 2018 (#24241) 2018-01-04 17:26:29 +00:00
Arnout Engelen
b1df13d4d4 Update scalariform (#23778) (#23783) 2017-10-06 10:30:28 +02:00
Jimin Hsieh
f623d10522 Rename addr to address in non-public API #21874 2017-08-08 13:18:56 +02:00
VEINHORN
0eac4d413b removed unnecessary new keywords 2017-01-13 12:35:05 +03:00
Philippus Baalman
6c7085252a extended copyright into 2017 2017-01-04 17:37:15 +01:00
Konrad Malawski
92671e6d98 +act,rem,str add SECURITY marker to logs (#21749)
* +act,rem,str add SECURITY marker to logs

* Update TlsSpec.scala
2016-10-28 14:52:17 +02:00
Patrik Nordwall
1cae346f4d add thread local LRU cache for resolveActorRef 2016-09-28 11:15:54 +02:00
Johan Andrén
8ae0c9a888 Use long uid in artery remoting and cluster #20644 2016-09-26 15:34:59 +02:00
Patrik Nordwall
1584c52190 handle longer network partitions, #21399
* system messages in flight should not trigger premature quarantine
  in case of longer network partitions, therefore we keep the control
  stream alive
* add give-up-system-message-after property that is used by both
  SystemMessageDelivery and AeronSink in the control stream
* also unwrap SystemMessageEnvelope in RemoteDeadLetterActorRef
* skip sending control messages after shutdown, can be triggered
  by scheduled compression advertisment
2016-09-09 14:35:50 +02:00
Patrik Nordwall
3b7a7dfa59 add reason param to quarantine method 2016-09-08 18:00:37 +02:00
Patrik Nordwall
432086b3f4 improve deadLetters and logging when send queue overflow (#21355) 2016-09-05 12:42:46 +02:00
Patrik Nordwall
faf941b4c8 support for parallel lanes, #21207
* for parallel serialziation/deserialization
* MergeHub for the outbound lanes
* BroadcastHub + filter for the inbound lanes, until we
  have a PartitionHub
* simplify materialization of test stage
* add RemoteSendConsistencyWithThreeLanesSpec
2016-09-05 12:42:33 +02:00
Martynas Mickevičius
292face28a #20587 Clean artery configuration (#21279)
* Move artery settings from remoting settings to dedicated class.
* #20587 Move hardcoded settings to configuration file.
* Copy reused settings from remote to the artery
2016-09-01 08:07:39 +02:00
Johan Andrén
af5eb4c6bf WIP separate prio artery channel (#21278)
* First incorrect stab - separate prio channel

* Send prio messages over the control stream
2016-08-26 14:44:33 +02:00
Patrik Nordwall
b2089d06a7 new OutboundEnvelope
* instead of the old Send
* optional recipient, remove of dummy
* pool of OutboundEnvelope
2016-07-01 14:06:48 +02:00
Konrad Malawski
e818887bb2 +art #20455 HeavyHitters, CountMinSketch => ActorRef Compression
* +art #20455 HeavyHitters and CountMinSketch prepared for Compression

* +art #20455 compression tables and integration specs
2016-06-23 11:58:54 +02:00
Patrik Nordwall
7ce6dffabf send dropped system messages to deadLetters
* publish remote lifecycle event for quarantined
2016-06-10 13:21:17 +02:00
Patrik Nordwall
a814034342 Option value class, to avoid allocations for optional sender 2016-06-07 18:58:59 +02:00
Patrik Nordwall
839ec5f167 Merge branch 'master' into wip-sync-artery-patriknw 2016-06-03 11:09:17 +02:00
Björn Antonsson
c66ce62d63 Update to a working version of Scalariform 2016-06-02 22:12:36 +02:00
Patrik Nordwall
60111c4886 detect wrong protocol
* used wrong protocol by mistake and got weird errors
  and it was not obvious that the reason was wrong protocol,
  e.g. it created association to itself
* and also set the cachedAssociation
2016-06-02 17:50:44 +02:00
Johan Andrén
cd71643a91 [WIP] Large message stream for Artery (#20545)
* First stab at separate large message channel for Artery

* Full actor paths, no implicit "/user/" part

* Various small fixes after review

* Fixes to make it work after rebasing

* Use a separate EnvelopeBufferPool for the large message stream

* Docs for actorSelection not sending through large message stream
2016-05-20 12:40:56 +02:00
Patrik Nordwall
16cf8d4ab6 first stab at handshake, #20313
* UID exchange with handshake stages
* second iteration of reply side-channel, observable
* InboundContext and OutboundContext to facilitate testing
  without real transport
* collapse ArterySubsystem and Transport into ArteryTransport
* incomplete HandshakeRestartReceiverSpec (origin address missing
  to be able to implement that part
* remove embedded aeron media driver directory on shutdown
2016-05-11 12:17:37 +02:00
Endre Sándor Varga
3fd052b868 Proof-of-concept for the new Remoting codenamed Artery 2016-04-14 10:26:09 +02:00
Patrik Nordwall
fcd7561b2f make DNS actor work with RemoteActorRefProvider, #18650
* 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)
2016-03-21 14:39:00 +01:00
Kirill Plyashkevich
9503c1f588 When RARP is being shutdown, it pipes result of the shutdown of transport to self.
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`.
2016-02-29 13:02:24 +01:00