This is an automated email from the ASF dual-hosted git repository. eolivelli pushed a commit to branch branch-2.9 in repository https://gitbox.apache.org/repos/asf/pulsar.git
commit 3cbc79d200130b2b114ec98addf4477c3a504a41 Author: Enrico Olivelli <[email protected]> AuthorDate: Tue Nov 9 12:06:38 2021 +0100 Functions: add -Dio.netty.tryReflectionSetAccessible=true to Java functions (#12624) (cherry picked from commit d1010faced6608616183e504bcf137a41edd5da8) --- .../org/apache/pulsar/functions/runtime/RuntimeUtils.java | 3 +++ .../functions/runtime/kubernetes/KubernetesRuntimeTest.java | 6 +++--- .../pulsar/functions/runtime/process/ProcessRuntimeTest.java | 11 ++++++----- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeUtils.java b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeUtils.java index 107d5cf..4acbd35 100644 --- a/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeUtils.java +++ b/pulsar-functions/runtime/src/main/java/org/apache/pulsar/functions/runtime/RuntimeUtils.java @@ -315,6 +315,9 @@ public class RuntimeUtils { "%s-%s", instanceConfig.getFunctionDetails().getName(), shardId)); + + args.add("-Dio.netty.tryReflectionSetAccessible=true"); + if (!isEmpty(instanceConfig.getFunctionDetails().getRuntimeFlags())) { for (String runtimeFlagArg : splitRuntimeArgs(instanceConfig.getFunctionDetails().getRuntimeFlags())) { args.add(runtimeFlagArg); diff --git a/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/kubernetes/KubernetesRuntimeTest.java b/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/kubernetes/KubernetesRuntimeTest.java index 9f064f5..928497a 100644 --- a/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/kubernetes/KubernetesRuntimeTest.java +++ b/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/kubernetes/KubernetesRuntimeTest.java @@ -396,14 +396,14 @@ public class KubernetesRuntimeTest { if (null != depsDir) { extraDepsEnv = " -Dpulsar.functions.extra.dependencies.dir=" + depsDir; classpath = classpath + ":" + depsDir + "/*"; - totalArgs = 39; + totalArgs = 40; portArg = 26; metricsPortArg = 28; } else { extraDepsEnv = ""; portArg = 25; metricsPortArg = 27; - totalArgs = 38; + totalArgs = 39; } if (secretsAttached) { totalArgs += 4; @@ -433,7 +433,7 @@ public class KubernetesRuntimeTest { + " -Dlog4j.configurationFile=kubernetes_instance_log4j2.xml " + "-Dpulsar.function.log.dir=" + logDirectory + "/" + FunctionCommon.getFullyQualifiedName(config.getFunctionDetails()) + " -Dpulsar.function.log.file=" + config.getFunctionDetails().getName() + "-$SHARD_ID" - + " -Xmx" + String.valueOf(RESOURCES.getRam()) + + " -Dio.netty.tryReflectionSetAccessible=true -Xmx" + String.valueOf(RESOURCES.getRam()) + " org.apache.pulsar.functions.instance.JavaInstanceMain" + " --jar " + jarLocation + " --instance_id " + "$SHARD_ID" + " --function_id " + config.getFunctionId() diff --git a/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/process/ProcessRuntimeTest.java b/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/process/ProcessRuntimeTest.java index 4751ecd..6cddf38 100644 --- a/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/process/ProcessRuntimeTest.java +++ b/pulsar-functions/runtime/src/test/java/org/apache/pulsar/functions/runtime/process/ProcessRuntimeTest.java @@ -298,7 +298,7 @@ public class ProcessRuntimeTest { String extraDepsEnv; int portArg; int metricsPortArg; - int totalArgCount = 41; + int totalArgCount = 42; if (webServiceUrl != null && config.isExposePulsarAdminClientEnabled()) { totalArgCount += 3; } @@ -306,13 +306,13 @@ public class ProcessRuntimeTest { assertEquals(args.size(), totalArgCount); extraDepsEnv = " -Dpulsar.functions.extra.dependencies.dir=" + depsDir.toString(); classpath = classpath + ":" + depsDir + "/*"; - portArg = 24; - metricsPortArg = 26; + portArg = 25; + metricsPortArg = 27; } else { assertEquals(args.size(), totalArgCount-1); extraDepsEnv = ""; - portArg = 23; - metricsPortArg = 25; + portArg = 24; + metricsPortArg = 26; } if (webServiceUrl != null && config.isExposePulsarAdminClientEnabled()) { portArg += 3; @@ -328,6 +328,7 @@ public class ProcessRuntimeTest { + " -Dlog4j.configurationFile=java_instance_log4j2.xml " + "-Dpulsar.function.log.dir=" + logDirectory + "/functions/" + FunctionCommon.getFullyQualifiedName(config.getFunctionDetails()) + " -Dpulsar.function.log.file=" + config.getFunctionDetails().getName() + "-" + config.getInstanceId() + + " -Dio.netty.tryReflectionSetAccessible=true" + " org.apache.pulsar.functions.instance.JavaInstanceMain" + " --jar " + userJarFile + " --instance_id " + config.getInstanceId() + " --function_id " + config.getFunctionId()
