Commit graph

25186 commits

Author SHA1 Message Date
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
jeremie-seguin
6130b33e08
Fix doc typo (#29326) 2020-06-30 10:52:26 +02:00
Renato Cavalcanti
e8e43be3fe
Merge pull request #29323 from akka/wip-test-ser-conf-patriknw 2020-06-29 15:56:14 +02:00
Patrik Nordwall
f6140c75b0 and fix the double $ 2020-06-29 14:37:48 +02:00
Renato Cavalcanti
22c294ac3b
Merge pull request #29322 from aldenml/comment-fix
minor comment fix in ClusterSingletonManager.scala, removed extra word
2020-06-29 13:26:03 +02:00
Christopher Batey
edd246de4c ClusterShardingSpec: Enable log capturing 2020-06-29 12:21:59 +01:00
Patrik Nordwall
0ea62717bf wrong serializer config in ActorSystemSpec 2020-06-29 13:05:11 +02:00
Alden Torres
1c67d743f9 minor comment fix in ClusterSingletonManager.scala, removed extra word 2020-06-26 15:36:17 -04:00
Enno
4947c07385
Docs: link to object API docs (#29195) 2020-06-26 09:07:01 +02:00
Scala Steward
09201bf65c
Update sbt to 1.3.12 (#29307) 2020-06-26 09:06:35 +02:00
Enno Runne
1347b713f6 docs: show Akka version as symbol 2020-06-25 11:59:37 +02:00
Johannes Rudolph
08869ef7c6
actor: simplify empty ByteString instances (#29268)
* actor: simplify empty ByteString instances
* use Array.emptyByteArray
2020-06-25 10:41:17 +02:00
Arnout Engelen
b95c82e63b
Docs: Document reference.conf appending on gradle+kotlin (#29274) 2020-06-25 10:11:23 +02:00
ohze.net
01501148d7
dotty phase 3: Some required syntax changes (#29139)
Co-authored-by: Bùi Việt Thành <thanhbv@sandinh.net>
2020-06-25 09:47:31 +02:00