Commit graph

25149 commits

Author SHA1 Message Date
Christopher Batey
b5d5dd2d2b
Fix mima excludes for actor termination task (#29394) 2020-07-17 07:24:03 +01:00
Johan Andrén
772db9ce7c
addActorTerminationTask fix (#29379) 2020-07-16 19:00:45 +02:00
Johan Andrén
1fe573d7ef
2.6.8 post release changes (#29390) 2020-07-16 17:10:01 +02:00
Łukasz Drygała
073ef663c5
remove not needed curly braces (#29392) 2020-07-16 15:48:21 +02:00
Łukasz Drygała
1290befec8
Update actor-lifecycle.md (#29391) 2020-07-16 13:41:18 +02:00
Renato Cavalcanti
6d290d6699
Merge pull request #29380 from johanandren/wip-29270-durable-pruning-spec
Durable pruning fail fix
2020-07-15 16:45:08 +02:00
Johan Andrén
01edcab657
Allow entities to stop by terminating without remember entities (#29384)
* Allow entities to stop by terminating in sharding without remember entities #29383
  We missed an allowed transition from running/active to stopped/NoState in shard. 
  when the logic was rewritten.
* Add a toggle to opt-in crash shard on illegal state transitions
  Default is logging an error and not crashing shard and all other entities, our tests have the toggle enabled.
* A fix for passivation when not using remember entities fixing #29359 and possibly #27549
2020-07-15 08:38:23 +02:00
davidlzs
9739e6f44d
Replace reference to deprecated API (#29381)
Updated stream-composition.md to use Flow.fromSinkAndSourceCoupledMat or Flow.fromSinkAndSourceCoupled rather than the deprecated CoupledTerminationFlow.fromSinkAndSource.
2020-07-14 08:48:33 +02:00
Ignasi Marimon-Clos
68fa87c58c
Merge pull request #29356 from ignasi35/monitor-operator-sample-code 2020-07-13 19:33:36 +02:00
Johan Andrén
0921786512 Durable pruning fail fix #29270
Failed once when the new cluster node had not joined the cluster yet, so start with waiting for that.
2020-07-13 16:31:11 +02:00
Johan Andrén
e4b4fc6d8c
Post 2.6.7 updates (#29370)
* Post 2.6.7 updates
* MiMa excludes for the JDK11 only JFR classes
2020-07-13 15:19:30 +02:00
Ignasi Marimon-Clos
6ca92cc543 javafmt 2020-07-13 14:04:28 +02:00
Johannes Rudolph
54d79df07d
actor: remove stack trace from AskTimeoutException (#29376)
The exception will be instantiated from the scheduler thread so it does
not contain any more helpful information.
2020-07-13 13:37:28 +02:00
Ignasi Marimon-Clos
96c887b134
typo (#29375) 2020-07-13 13:35:45 +02:00
Ignasi Marimon-Clos
6c12ae117a PR comments 2020-07-13 10:46:16 +02:00
Johan Andrén
142a63f600
No dry run in release instructions #29199 (#29369) 2020-07-10 15:59:26 +01:00
ohze.net
214defac7a
Update sbt 1.3.13 (#29366)
Co-authored-by: Bùi Việt Thành <thanhbv@sandinh.net>
2020-07-10 15:06:37 +02:00
James Roper
558160702b
Added MergeSequence graph stage (#29247)
Fixes #28769

Use case for this is if you have a sequence of elements that has been
partitioned across multiple streams, and you want to merge them back
together in order. It will typically be used in combination with
`zipWithIndex` to define the index for the sequence, followed by a
`Partition`, followed by the processing of different substreams with
different flows (each flow emitting exactly one output for each input),
and then merging with this stage, using the index from `zipWithIndex`.

A more concrete use case is if you're consuming messages from a message
broker, and you have a flow that you wish to apply to some messages, but
not others, you can partition the message stream according to which
should be processed by the flow and which should bypass it, and then
bring the elements back together acknowledgement. If an ordinary merge
was used rather than this, the messages that bypass the processing flow
would likely overtake the messages going through the processing flow,
and the result would be out of order offset acknowledgement which would
lead to dropping messages on failure.

I've included a minimal version of the above example in the documentation.
2020-07-09 11:52:46 -04:00
Arnout Engelen
1898216b0d
Allow 2.5 snapshot requirement in version check (#29363) 2020-07-09 17:01:24 +02:00
Johan Andrén
996f424835
Ok/error protocol and failable ask #29186 (#29190)
New type StatusReply simplifies the very common use case of replying to a request with either a successful reply or an error reply which can be repetitive to define for every actor, with the additional overhead of having to make sure each such sealed top type + 2 concrete reply classes has working serialization.
2020-07-09 16:57:53 +02:00
Sebastian Alfers
ec08c9dde4
Fix SBR lease-implementation config example (#29361) 2020-07-09 09:48:28 +02:00
Johan Andrén
df995fe7bd
Use the target actor name in the temporary ask actor name (#29245)
* Allows specifying the large message channel for the response using wildcard patterns in config
 * Makes debugging asks somewhat easier
2020-07-08 17:43:52 +02:00
Patrik Nordwall
2f424b13dd
Sharding EntityRef for testing, #29267 (#29336) 2020-07-08 17:35:39 +02:00
Johan Andrén
a70a19e8ee
Revert "Flush messages before DeathWatchNotification, #28695 (#28940)" (#29357)
This reverts commit f6ceb4d49a.
2020-07-08 13:11:46 +02:00
Enno
3baf1268f9
ByteString performance improvements (#29358) 2020-07-08 12:32:25 +02:00
Johannes Rudolph
1e3ce9b345
actor: improve ByteStringBuilder.++= / addAll
Especially in the Scala 2.13 version, the previous `if xs.iterator.isEmpty`
for the common case was a big problem, since it expensively created an
iterator even for the most common ++=(ByteString) case.
2020-07-08 11:34:03 +02:00
Johannes Rudolph
40949669e4
actor: implement ByteString.isEmpty in as simple terms as possible
It turned up in profiles, the usual implementation in 2.13 is through
SeqOps.isEmpty -> lengthCompare which checks if knownSize != -1 for
the fast path. All of that doesn't sound too bad but introduces enough
indirection that the inliner might not be able to inline all of that
which then leads to a multimorphic callsite e.g. to call lengthCompare.
2020-07-08 09:35:28 +02:00
contrun
d476578c52
use datagram channel creator for udp sender (#29009) 2020-07-08 09:28:30 +02:00
Radim Kolar
3fff152b96
BehaviourTestKit: Add receptionist inbox (#29294) 2020-07-08 09:15:13 +02:00
Christopher Batey
43e6c94f47
Reduce assert time and increase poll freq PersistentTestKit (#29296) 2020-07-08 09:10:37 +02:00
Ignasi Marimon-Clos
f187abddd1 Prefer monitoring from a separate stream (without blocking calls) 2020-07-07 17:08:11 +02:00
Scala Steward
85a2b0f470
Update commons-io to 2.7 (#29303) 2020-07-07 15:45:35 +02:00
Scala Steward
60e43986e9
Update sort-imports to 0.5.4 (#29302) 2020-07-07 15:44:40 +02:00
Arnout Engelen
7f22b9648c
Reproduce and fix ByteString initialization issue (#29244)
* Reproduce ByteString initialization issue

* scalafmt

* make test reliably fail

* core: fix initialization of `ByteString.empty`

Refs #29263

Co-authored-by: Johannes Rudolph <johannes.rudolph@gmail.com>
2020-07-07 15:42:38 +02:00
Ignasi Marimon-Clos
2b71abe78e Show less code. More informative comments (still hides blocking calls 2020-07-07 15:27:25 +02:00
Ignasi Marimon-Clos
024710a6e0 Headers and formats 2020-07-07 14:58:56 +02:00
Ignasi Marimon-Clos
0e3b4605ad Simplify code: instanceof, hide sleeps,... 2020-07-07 14:25:27 +02:00
Ben Chambers
193f4ad704
clear captured logs after successful tests #29339
This allows tests to override `clearLogsAfterEachTest` to have the logs
cleared after every successful test. It also provides an explicit
`clearCapturedLogs` for tests that can't be cleared after each test, but
still want to limit logs between tests.
2020-07-07 13:32:52 +02:00
franciscolopezsancho
65a0ec4683
Clarify that receptionist supports clustering (#29352) 2020-07-07 13:31:42 +02:00
Ignasi Marimon-Clos
95a000a51b Adds sample code for the monitor operator 2020-07-07 13:09:54 +02:00
Dave Handy
2f2ee9e67c
Change JsonFraming to fail stage if completing within an object #29228 2020-07-03 17:22:40 +02:00
Patrik Nordwall
f6ceb4d49a
Flush messages before DeathWatchNotification, #28695 (#28940)
* Since DeathWatchNotification is sent over the control channel it may overtake
  other messages that have been sent from the same actor before it stopped.
* It can be confusing that Terminated can't be used as an end-of-conversation marker.
* In classic Remoting we didn't have this problem because all messages were sent over
  the same connection.

* don't send DeathWatchNotification when system is terminating
* when using Cluster we can rely on that the other side will publish AddressTerminated
  when the member has been removed
* it's actually already a race condition that often will result in that the DeathWatchNotification
  from the terminating side
  * in DeathWatch.scala it will remove the watchedBy when receiving AddressTerminated, and that
    may (sometimes) happen before tellWatchersWeDied

* same for Unwatch
* to avoid sending many Unwatch messages when watcher's ActorSystem is terminated
* same race exists for Unwatch as for DeathWatchNotification, if RemoteWatcher publishAddressTerminated
  before the watcher is terminated

* config for the flush timeout, and possibility to disable
2020-07-03 09:54:35 +02:00
Patrik Nordwall
5f70286b18
Merge pull request #29333 from akka/wip-mix-log-patriknw
update the log message in docs for mixed versions
2020-07-02 20:44:16 +02:00
Enno
7d328c9984
Docs: re-add akka.patterns page (#29024)
* Docs: re-add akka.patterns page
* Add overloads with ClassicActorSystemProvider
* docs for Java `after`
2020-07-02 10:19:11 +02:00
Christopher Batey
663ccbae2d
Partial revert of #29268 to preserve source compatibility (#29341) 2020-07-02 09:58:05 +02:00
Enno
101c1d9b65
Docs: Actor sink stream operators (#29171) 2020-07-01 21:27:29 +02:00
Patrik Nordwall
1e5cb5a720
Merge pull request #29310 from ennru/symbolic-akka-version
docs: show Akka version as symbol
2020-07-01 17:15:52 +02:00
Patrik Nordwall
80d5e67eec
Merge pull request #29325 from chbatey/issue-29290
ClusterShardingSpec: Enable log capturing
2020-07-01 13:04:40 +02:00
Patrik Nordwall
158faa24e3 update the log message in docs for mixed versions 2020-07-01 11:30:16 +02:00
Scala Steward
37b1e6f118
Update sbt-assembly to 0.15.0 (#29301)
* Update sbt-assembly to 0.15.0
* Fix shading

Co-authored-by: Arnout Engelen <arnout@bzzt.net>
2020-07-01 11:03:28 +02:00