This is an automated email from the ASF dual-hosted git repository.
pjfanning pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/pekko.git
The following commit(s) were added to refs/heads/main by this push:
new 3071413202 aeron 1.50.4 (#2937)
3071413202 is described below
commit 30714132027d5d48f503dfeb5a40e41ba40aebe1
Author: PJ Fanning <[email protected]>
AuthorDate: Wed May 6 11:27:20 2026 +0100
aeron 1.50.4 (#2937)
* aeron 1.51.0
* temp enable aeron tests
* try to remove unused code
imports
Update AeronStat.java
Update AeronStat.java
* Update DaemonicSpec.scala
* aeron 1.50.4
* bring back RemoteTransportException behaviour
* Update ArteryFailedToBindSpec.scala
* Update remoting-artery.md
* Remove pull_request trigger from nightly builds
Removed pull_request trigger from nightly builds workflow.
---
.scala-steward.conf | 7 +-
docs/src/main/paradox/remoting-artery.md | 4 +-
project/Dependencies.scala | 4 +-
.../remote/artery/ArteryFailedToBindSpec.scala | 2 +-
.../pekko/remote/artery/aeron/AeronSource.scala | 12 ++-
.../pekko/remote/artery/aeron/AeronStat.java | 87 ----------------------
6 files changed, 18 insertions(+), 98 deletions(-)
diff --git a/.scala-steward.conf b/.scala-steward.conf
index 68a6818fbc..cf1ea2423e 100644
--- a/.scala-steward.conf
+++ b/.scala-steward.conf
@@ -1,13 +1,12 @@
updates.pin = [
# https://github.com/apache/pekko/issues/2329
- { groupId = "io.aeron", version = "1.48." },
+ { groupId = "io.aeron", version = "1.50." },
# Scala 3.3 is the latest LTS version
{ groupId = "org.scala-lang", artifactId = "scala3-library", version =
"3.3." }
# sbt-assembly 2.3 causes build issues
(https://github.com/apache/pekko/pull/1744)
{ groupId = "com.eed3si9n", artifactId = "sbt-assembly", version = "2.2." }
- # agrona major+minor version should match the one brought
- # in by aeron
- { groupId = "org.agrona", artifactId = "agrona", version = "2.2." }
+ # agrona major+minor version should match the one brought in by aeron
+ { groupId = "org.agrona", artifactId = "agrona", version = "2.4." }
]
updates.ignore = [
diff --git a/docs/src/main/paradox/remoting-artery.md
b/docs/src/main/paradox/remoting-artery.md
index 39b22b07eb..8e5b486171 100644
--- a/docs/src/main/paradox/remoting-artery.md
+++ b/docs/src/main/paradox/remoting-artery.md
@@ -745,10 +745,10 @@ Given that Aeron jar files are in the classpath the
standalone media driver can
java io.aeron.driver.MediaDriver
```
-The needed classpath:
+The classpath would be approximately (but you will need to fix up the version
numbers):
```
-Agrona-0.5.4.jar:aeron-driver-1.0.1.jar:aeron-client-1.0.1.jar
+agrona-2.4.1.jar:aeron-driver-1.50.4.jar:aeron-client-1.50.4.jar
```
You find those jar files on [Maven Central](https://search.maven.org/), or you
can create a
diff --git a/project/Dependencies.scala b/project/Dependencies.scala
index 1ae09c7458..83ca91976b 100644
--- a/project/Dependencies.scala
+++ b/project/Dependencies.scala
@@ -30,11 +30,11 @@ object Dependencies {
val junit6Version = "6.0.3"
val slf4jVersion = "2.0.17"
// also update agrona version when updating aeron:
- val aeronVersion = "1.48.10"
+ val aeronVersion = "1.50.4"
// Use the major+minor agrona versions matching aeron at
// https://github.com/aeron-io/aeron/blob/1.x.y/gradle/libs.versions.toml
// (remember to also update the scala-steward pin)
- val agronaVersion = "2.2.4"
+ val agronaVersion = "2.4.1"
val nettyVersion = "4.2.13.Final"
val logbackVersion = "1.5.32"
diff --git
a/remote-tests/src/test/scala/org/apache/pekko/remote/artery/ArteryFailedToBindSpec.scala
b/remote-tests/src/test/scala/org/apache/pekko/remote/artery/ArteryFailedToBindSpec.scala
index 103e2cb618..b840aed53f 100644
---
a/remote-tests/src/test/scala/org/apache/pekko/remote/artery/ArteryFailedToBindSpec.scala
+++
b/remote-tests/src/test/scala/org/apache/pekko/remote/artery/ArteryFailedToBindSpec.scala
@@ -58,7 +58,7 @@ class ArteryFailedToBindSpec extends AnyWordSpec with
Matchers {
}
RARP(as).provider.transport.asInstanceOf[ArteryTransport].settings.Transport
match {
case ArterySettings.AeronUpd =>
- ex.getMessage should ===("Inbound Aeron channel is in errored
state. See Aeron logs for details.")
+ ex.getMessage should startWith("Failed to create Aeron
subscription")
case ArterySettings.Tcp | ArterySettings.TlsTcp =>
ex.getMessage should startWith("Failed to bind TCP")
}
diff --git
a/remote/src/main/scala/org/apache/pekko/remote/artery/aeron/AeronSource.scala
b/remote/src/main/scala/org/apache/pekko/remote/artery/aeron/AeronSource.scala
index b3bb950d01..17e1e5ad59 100644
---
a/remote/src/main/scala/org/apache/pekko/remote/artery/aeron/AeronSource.scala
+++
b/remote/src/main/scala/org/apache/pekko/remote/artery/aeron/AeronSource.scala
@@ -19,12 +19,13 @@ import scala.concurrent.{ Future, Promise }
import scala.util.control.NonFatal
import io.aeron.{ Aeron, FragmentAssembler, Subscription }
-import io.aeron.exceptions.DriverTimeoutException
+import io.aeron.exceptions.{ AeronException, DriverTimeoutException }
import io.aeron.logbuffer.FragmentHandler
import io.aeron.logbuffer.Header
import org.agrona.DirectBuffer
import org.apache.pekko
+import pekko.remote.RemoteTransportException
import pekko.stream.Attributes
import pekko.stream.Outlet
import pekko.stream.SourceShape
@@ -106,7 +107,14 @@ private[remote] class AeronSource(
override def createLogicAndMaterializedValue(inheritedAttributes:
Attributes) = {
val logic = new GraphStageLogic(shape) with OutHandler with AeronLifecycle
with StageLogging {
- private val subscription = aeron.addSubscription(channel, streamId)
+ private val subscription = try {
+ aeron.addSubscription(channel, streamId)
+ } catch {
+ case e: AeronException =>
+ throw new RemoteTransportException(
+ s"Failed to create Aeron subscription for channel [$channel] and
streamId [$streamId]",
+ e)
+ }
private var backoffCount = spinning
private var delegateTaskStartTime = 0L
private var countBeforeDelegate = 0L
diff --git
a/remote/src/test/java/org/apache/pekko/remote/artery/aeron/AeronStat.java
b/remote/src/test/java/org/apache/pekko/remote/artery/aeron/AeronStat.java
index cf12053888..5251051508 100644
--- a/remote/src/test/java/org/apache/pekko/remote/artery/aeron/AeronStat.java
+++ b/remote/src/test/java/org/apache/pekko/remote/artery/aeron/AeronStat.java
@@ -31,13 +31,10 @@ import io.aeron.status.ChannelEndpointStatus;
import java.io.File;
import java.io.PrintStream;
import java.nio.MappedByteBuffer;
-import java.util.Date;
-import java.util.concurrent.atomic.AtomicBoolean;
import java.util.function.Supplier;
import java.util.regex.Pattern;
import org.agrona.DirectBuffer;
import org.agrona.IoUtil;
-import org.agrona.concurrent.SigInt;
import org.agrona.concurrent.status.CountersReader;
/**
@@ -144,73 +141,6 @@ public class AeronStat {
createCountersValuesBuffer(cncByteBuffer, cncMetaData));
}
- public static void main(final String[] args) throws Exception {
- Pattern typeFilter = null;
- Pattern identityFilter = null;
- Pattern sessionFilter = null;
- Pattern streamFilter = null;
- Pattern channelFilter = null;
-
- if (0 != args.length) {
- checkForHelp(args);
-
- for (final String arg : args) {
- final int equalsIndex = arg.indexOf('=');
- if (-1 == equalsIndex) {
- System.out.println("Arguments must be in name=pattern format:
Invalid '" + arg + "'");
- return;
- }
-
- final String argName = arg.substring(0, equalsIndex);
- final String argValue = arg.substring(equalsIndex + 1);
-
- switch (argName) {
- case COUNTER_TYPE_ID:
- typeFilter = Pattern.compile(argValue);
- break;
-
- case COUNTER_IDENTITY:
- identityFilter = Pattern.compile(argValue);
- break;
-
- case COUNTER_SESSION_ID:
- sessionFilter = Pattern.compile(argValue);
- break;
-
- case COUNTER_STREAM_ID:
- streamFilter = Pattern.compile(argValue);
- break;
-
- case COUNTER_CHANNEL:
- channelFilter = Pattern.compile(argValue);
- break;
-
- default:
- System.out.println("Unrecognised argument: '" + arg + "'");
- return;
- }
- }
- }
-
- final AeronStat aeronStat =
- new AeronStat(
- mapCounters(), typeFilter, identityFilter, sessionFilter,
streamFilter, channelFilter);
- final AtomicBoolean running = new AtomicBoolean(true);
- SigInt.register(() -> running.set(false));
-
- while (running.get()) {
- System.out.print("\033[H\033[2J");
-
- System.out.format("%1$tH:%1$tM:%1$tS - Aeron Stat%n", new Date());
- System.out.println("=========================");
-
- aeronStat.print(System.out);
- System.out.println("--");
-
- Thread.sleep(ONE_SECOND);
- }
- }
-
public void print(final PrintStream out) {
counters.forEach(
(counterId, typeId, keyBuffer, label) -> {
@@ -221,23 +151,6 @@ public class AeronStat {
});
}
- private static void checkForHelp(final String[] args) {
- for (final String arg : args) {
- if ("-?".equals(arg) || "-h".equals(arg) || "-help".equals(arg)) {
- System.out.format(
- "Usage: [-Daeron.dir=<directory containing CnC file>] AeronStat%n"
- + "\tfilter by optional regex patterns:%n"
- + "\t[type=<pattern>]%n"
- + "\t[identity=<pattern>]%n"
- + "\t[sessionId=<pattern>]%n"
- + "\t[streamId=<pattern>]%n"
- + "\t[channel=<pattern>]%n");
-
- System.exit(0);
- }
- }
- }
-
private boolean filter(final int typeId, final DirectBuffer keyBuffer) {
if (!match(typeFilter, () -> Integer.toString(typeId))) {
return false;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]