From: Robert Varga Date: Wed, 24 Feb 2021 09:05:26 +0000 (+0100) Subject: Bump akka to 2.6.16 X-Git-Tag: v4.0.3~6 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?p=controller.git;a=commitdiff_plain;h=e2c835865f5c6534758d2bfd0451efef1545a98f Bump akka to 2.6.16 https://akka.io/blog/news/2021/02/23/akka-2.6.13-released https://akka.io/blog/news/2021/04/08/akka-2.6.14-released https://akka.io/blog/news/2021/06/10/akka-2.6.15-released https://akka.io/blog/news/2021/08/19/akka-2.6.16-released Change-Id: I6d255bd6d2b4b1284bb6c7d8ccae4ec44a691556 Signed-off-by: Robert Varga Signed-off-by: Tomas Cere --- diff --git a/akka/repackaged-akka-jar/pom.xml b/akka/repackaged-akka-jar/pom.xml index a5a50a04b5..5d5a3a8d2d 100644 --- a/akka/repackaged-akka-jar/pom.xml +++ b/akka/repackaged-akka-jar/pom.xml @@ -33,52 +33,52 @@ com.typesafe.akka akka-actor_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-actor-typed_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-cluster_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-cluster-typed_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-osgi_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-persistence_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-protobuf_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-remote_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-slf4j_2.13 - 2.6.12 + 2.6.16 com.typesafe.akka akka-stream_2.13 - 2.6.12 + 2.6.16 diff --git a/akka/repackaged-akka-jar/src/main/resources/cluster_reference.conf b/akka/repackaged-akka-jar/src/main/resources/cluster_reference.conf index 723f91effc..6fa0e94586 100644 --- a/akka/repackaged-akka-jar/src/main/resources/cluster_reference.conf +++ b/akka/repackaged-akka-jar/src/main/resources/cluster_reference.conf @@ -487,10 +487,17 @@ akka.cluster.split-brain-resolver.keep-oldest { akka.cluster.split-brain-resolver.lease-majority { lease-implementation = "" + # The recommended format for the lease name is "-akka-sbr". + # When lease-name is not defined, the name will be set to "-akka-sbr" + lease-name = "" + # This delay is used on the minority side before trying to acquire the lease, # as an best effort to try to keep the majority side. acquire-lease-delay-for-minority = 2s + # Release the lease after this duration. + release-after = 40s + # If the 'role' is defined the majority/minority is based only on members with that 'role'. role = "" } diff --git a/akka/repackaged-akka-jar/src/main/resources/persistence_reference.conf b/akka/repackaged-akka-jar/src/main/resources/persistence_reference.conf index 2e4c22d4de..1e75bdc1a5 100644 --- a/akka/repackaged-akka-jar/src/main/resources/persistence_reference.conf +++ b/akka/repackaged-akka-jar/src/main/resources/persistence_reference.conf @@ -168,6 +168,15 @@ akka.persistence { call-timeout = 20s reset-timeout = 60s } + + # Set this to true if successful loading of snapshot is not necessary. + # This can be useful when it is alright to ignore snapshot in case of + # for example deserialization errors. When snapshot loading fails it will instead + # recover by replaying all events. + # Don't set to true if events are deleted because that would + # result in wrong recovered state if snapshot load fails. + snapshot-is-optional = false + } fsm { diff --git a/akka/repackaged-akka-jar/src/main/resources/remote_reference.conf b/akka/repackaged-akka-jar/src/main/resources/remote_reference.conf index 4e465e31fe..310781fae6 100644 --- a/akka/repackaged-akka-jar/src/main/resources/remote_reference.conf +++ b/akka/repackaged-akka-jar/src/main/resources/remote_reference.conf @@ -742,14 +742,14 @@ akka { artery { # Disable artery with this flag - enabled = off + enabled = on # Select the underlying transport implementation. # # Possible values: aeron-udp, tcp, tls-tcp # See https://doc.akka.io/docs/akka/current/remoting-artery.html#selecting-a-transport for the tradeoffs # for each transport - transport = aeron-udp + transport = tcp # Canonical address is the address other clients should connect to. # Artery transport will expect messages to this address. diff --git a/akka/repackaged-akka-jar/src/main/resources/stream_reference.conf b/akka/repackaged-akka-jar/src/main/resources/stream_reference.conf index dd982714a1..66d9130e38 100644 --- a/akka/repackaged-akka-jar/src/main/resources/stream_reference.conf +++ b/akka/repackaged-akka-jar/src/main/resources/stream_reference.conf @@ -87,6 +87,39 @@ akka { # slightly more bytes than this limit (at most one element more). It can be set to 0 # to disable the usage of the buffer. write-buffer-size = 16 KiB + + # In addition to the buffering described for property write-buffer-size, try to collect + # more consecutive writes from the upstream stream producers. + # + # The rationale is to increase write efficiency by avoiding separate small + # writes to the network which is expensive to do. Merging those writes together + # (up to `write-buffer-size`) improves throughput for small writes. + # + # The idea is that a running stream may produce multiple small writes consecutively + # in one go without waiting for any external input. To probe the stream for + # data, this features delays sending a write immediately by probing the stream + # for more writes. This works by rescheduling the TCP connection stage via the + # actor mailbox of the underlying actor. Thus, before the stage is reactivated + # the upstream gets another opportunity to emit writes. + # + # When the stage is reactivated and if new writes are detected another round-trip + # is scheduled. The loop repeats until either the number of round trips given in this + # setting is reached, the buffer reaches `write-buffer-size`, or no new writes + # were detected during the last round-trip. + # + # This mechanism ensures that a write is guaranteed to be sent when the remaining stream + # becomes idle waiting for external signals. + # + # In most cases, the extra latency this mechanism introduces should be negligible, + # but depending on the stream setup it may introduce a noticeable delay, + # if the upstream continuously produces small amounts of writes in a + # blocking (CPU-bound) way. + # + # In that case, the feature can either be disabled, or the producing CPU-bound + # work can be taken off-stream to avoid excessive delays (e.g. using `mapAsync` instead of `map`). + # + # A value of 0 disables this feature. + coalesce-writes = 10 } # Time to wait for async materializer creation before throwing an exception diff --git a/bundle-parent/pom.xml b/bundle-parent/pom.xml index f2f20754a8..455778a346 100644 --- a/bundle-parent/pom.xml +++ b/bundle-parent/pom.xml @@ -54,7 +54,7 @@ org.scalatestplus junit-4-13_2.13 - 3.1.4.0 + 3.2.5.0 test @@ -75,7 +75,7 @@ com.typesafe.akka akka-testkit_2.13 - 2.6.12 + 2.6.16 test @@ -87,7 +87,7 @@ com.typesafe.akka akka-actor-testkit-typed_2.13 - 2.6.12 + 2.6.16 test @@ -103,7 +103,7 @@ com.typesafe.akka akka-persistence-tck_2.13 - 2.6.12 + 2.6.16 test @@ -124,17 +124,17 @@ org.agrona agrona - 1.8.0 + 1.9.0 io.aeron aeron-client - 1.31.1 + 1.32.0 io.aeron aeron-driver - 1.31.1 + 1.32.0 diff --git a/docs/pom.xml b/docs/pom.xml index d7ca722e4c..07a003d0c2 100644 --- a/docs/pom.xml +++ b/docs/pom.xml @@ -218,7 +218,7 @@ http://google.github.io/truth/api/1.0.1/ http://www.slf4j.org/apidocs/ https://google.github.io/guava/releases/29.0-jre/api/docs/ - http://doc.akka.io/japi/akka/2.6.12/ + http://doc.akka.io/japi/akka/2.6.16/ http://netty.io/4.1/api/ https://commons.apache.org/proper/commons-lang/javadocs/api-2.6/ https://commons.apache.org/proper/commons-lang/javadocs/api-3.9/ diff --git a/features/odl-controller-akka/src/main/history/dependencies.xml b/features/odl-controller-akka/src/main/history/dependencies.xml index 35f150fd53..6868d15e66 100644 --- a/features/odl-controller-akka/src/main/history/dependencies.xml +++ b/features/odl-controller-akka/src/main/history/dependencies.xml @@ -4,10 +4,10 @@ odl-controller-scala mvn:com.typesafe/config/1.4.0 mvn:com.typesafe/ssl-config-core_2.13/0.4.2 - mvn:io.aeron/aeron-client/1.31.1 - mvn:io.aeron/aeron-driver/1.31.1 + mvn:io.aeron/aeron-client/1.32.0 + mvn:io.aeron/aeron-driver/1.32.0 mvn:io.netty/netty/3.10.6.Final - mvn:org.agrona/agrona/1.8.0 + mvn:org.agrona/agrona/1.9.0 mvn:org.opendaylight.controller/repackaged-akka/${project.version} mvn:org.reactivestreams/reactive-streams/1.0.3 wrap diff --git a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardManagerTest.java b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardManagerTest.java index 9e05b7fbd3..e7a58a5448 100644 --- a/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardManagerTest.java +++ b/opendaylight/md-sal/sal-distributed-datastore/src/test/java/org/opendaylight/controller/cluster/datastore/AbstractShardManagerTest.java @@ -8,6 +8,7 @@ package org.opendaylight.controller.cluster.datastore; +import static org.awaitility.Awaitility.await; import static org.mockito.Mockito.mock; import static org.mockito.MockitoAnnotations.initMocks; @@ -15,6 +16,7 @@ import akka.actor.ActorRef; import akka.actor.PoisonPill; import akka.actor.Props; import com.google.common.util.concurrent.SettableFuture; +import java.time.Duration; import java.util.concurrent.TimeUnit; import org.junit.After; import org.junit.Before; @@ -78,6 +80,7 @@ public class AbstractShardManagerTest extends AbstractClusterRefActorTest { InMemorySnapshotStore.clear(); mockShardActor.tell(PoisonPill.getInstance(), ActorRef.noSender()); + await().atMost(Duration.ofSeconds(10)).until(mockShardActor::isTerminated); mockShardActor = null; actorFactory.close();