You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pulsar.apache.org by lh...@apache.org on 2021/05/13 20:00:18 UTC
[pulsar] branch master updated: Add workaround for failing
PulsarFunctionsJavaProcessTest on JDK11 (#10566)
This is an automated email from the ASF dual-hosted git repository.
lhotari pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pulsar.git
The following commit(s) were added to refs/heads/master by this push:
new 5f09de8 Add workaround for failing PulsarFunctionsJavaProcessTest on JDK11 (#10566)
5f09de8 is described below
commit 5f09de86ca0cb97c68bd47f600dbe8cc1c896959
Author: Lari Hotari <lh...@users.noreply.github.com>
AuthorDate: Thu May 13 22:59:29 2021 +0300
Add workaround for failing PulsarFunctionsJavaProcessTest on JDK11 (#10566)
- testJavaLoggingFunction fails since "SSE4.2 CRC32C provider initialized"
gets logged. Classloading seems to be postponed when running on JDK11.
As a workaround, create a Crc32cIntChecksum class instance before
starting the Pulsar Functions log appender.
---
.../org/apache/pulsar/functions/instance/JavaInstanceRunnable.java | 4 ++++
.../pulsar/tests/integration/functions/PulsarFunctionsTest.java | 6 +++---
2 files changed, 7 insertions(+), 3 deletions(-)
diff --git a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
index 8798e7b..3b9285c 100644
--- a/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
+++ b/pulsar-functions/instance/src/main/java/org/apache/pulsar/functions/instance/JavaInstanceRunnable.java
@@ -22,6 +22,7 @@ package org.apache.pulsar.functions.instance;
import com.fasterxml.jackson.core.type.TypeReference;
import com.google.common.base.Preconditions;
+import com.scurrilous.circe.checksum.Crc32cIntChecksum;
import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
@@ -564,6 +565,9 @@ public class JavaInstanceRunnable implements AutoCloseable, Runnable {
private void setupLogHandler() {
if (instanceConfig.getFunctionDetails().getLogTopic() != null &&
!instanceConfig.getFunctionDetails().getLogTopic().isEmpty()) {
+ // make sure Crc32cIntChecksum class is loaded before logging starts
+ // to prevent "SSE4.2 CRC32C provider initialized" appearing in log topic
+ new Crc32cIntChecksum();
logAppender = new LogAppender(client, instanceConfig.getFunctionDetails().getLogTopic(),
FunctionCommon.getFullyQualifiedName(instanceConfig.getFunctionDetails()));
logAppender.start();
diff --git a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
index 9ecc6a4..1d51c2f 100644
--- a/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
+++ b/tests/integration/src/test/java/org/apache/pulsar/tests/integration/functions/PulsarFunctionsTest.java
@@ -323,7 +323,7 @@ public abstract class PulsarFunctionsTest extends PulsarFunctionsTestBase {
getFunctionInfoNotFound(functionName);
}
-
+
protected void testFunctionNegAck(Runtime runtime) throws Exception {
if (functionRuntimeType == FunctionRuntimeType.THREAD) {
return;
@@ -1510,8 +1510,8 @@ public abstract class PulsarFunctionsTest extends PulsarFunctionsTestBase {
for (int i = 0; i < numMessages; i++) {
Message<byte[]> msg = consumer.receive(30, TimeUnit.SECONDS);
String logMsg = new String(msg.getValue(), UTF_8);
- log.info("Received: {}", logMsg);
- assertTrue(expectedMessages.contains(logMsg));
+ log.info("Received message: '{}'", logMsg);
+ assertTrue(expectedMessages.contains(logMsg), "Message '" + logMsg + "' not expected");
expectedMessages.remove(logMsg);
}