mirror of
https://github.com/apache/doris.git
synced 2026-11-04 07:31:17 +00:00
[improvement](fe) Evaluate protobuf 4 with Arrow 19 (#61943)
### What problem does this PR solve? Issue Number: None Related PR: None Problem Summary: Align FE-side protobuf and Arrow Java dependencies for the protobuf 4 / Arrow 19 evaluation, add the required Gson exclusion for protobuf 4 builders, and cover the behavior with a focused FE unit test. ### Release note None
This commit is contained in:
1 parent
d0e6271c6f
commit
94fd23d53d
10 files changed
+69
-13
No files matched your search
+1
-1
@@ -21,7 +21,7 @@ CUR_DATE=`date +%Y%m%d-%H%M%S`
|
||||
LOG_DIR="${DORIS_HOME}/log/"
|
||||
|
||||
# For jdk 17, this JAVA_OPTS will be used as default JVM options
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
# Set your own JAVA_HOME
|
||||
# JAVA_HOME=/path/to/jdk/
|
||||
|
||||
|
||||
+1
-1
@@ -27,7 +27,7 @@ CUR_DATE=`date +%Y%m%d-%H%M%S`
|
||||
LOG_DIR = ${DORIS_HOME}/log
|
||||
|
||||
# For jdk 17, this JAVA_OPTS will be used as default JVM options
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
|
||||
# Set your own JAVA_HOME
|
||||
# JAVA_HOME=/path/to/jdk/
|
||||
|
||||
+1
-1
@@ -29,8 +29,8 @@ import dev.cel.common.types.SimpleType;
|
||||
import dev.cel.compiler.CelCompiler;
|
||||
import dev.cel.compiler.CelCompilerFactory;
|
||||
import dev.cel.parser.CelStandardMacro;
|
||||
import dev.cel.runtime.CelFunctionBinding;
|
||||
import dev.cel.runtime.CelRuntime;
|
||||
import dev.cel.runtime.CelRuntime.CelFunctionBinding;
|
||||
import dev.cel.runtime.CelRuntimeFactory;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
||||
+1
-1
@@ -826,7 +826,7 @@ under the License.
|
||||
<reuseForks>false</reuseForks>
|
||||
<useFile>false</useFile>
|
||||
<argLine>
|
||||
-Xmx1024m @{argLine}
|
||||
-Xmx1024m --add-reads=org.apache.arrow.flight.core=ALL-UNNAMED --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED @{argLine}
|
||||
</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
@@ -245,6 +245,7 @@ import com.google.gson.annotations.SerializedName;
|
||||
import com.google.gson.reflect.TypeToken;
|
||||
import com.google.gson.stream.JsonReader;
|
||||
import com.google.gson.stream.JsonWriter;
|
||||
import com.google.protobuf.MessageLite;
|
||||
import org.apache.commons.lang3.reflect.TypeUtils;
|
||||
import org.apache.logging.log4j.LogManager;
|
||||
import org.apache.logging.log4j.Logger;
|
||||
@@ -652,7 +653,10 @@ public class GsonUtils {
|
||||
/* due to java.lang.IllegalArgumentException: com.lmax.disruptor.RingBuffer
|
||||
<org.apache.doris.scheduler.disruptor.TimerTaskEvent> declares multiple
|
||||
JSON fields named p1 */
|
||||
return clazz.getName().startsWith("com.lmax.disruptor.RingBuffer");
|
||||
return clazz.getName().startsWith("com.lmax.disruptor.RingBuffer")
|
||||
// Protobuf 4 builders expose duplicate internal fields such as
|
||||
// "meAsParent". They are runtime-only and must not enter FE metadata.
|
||||
|| MessageLite.Builder.class.isAssignableFrom(clazz);
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
+40
@@ -0,0 +1,40 @@
|
||||
// Licensed to the Apache Software Foundation (ASF) under one
|
||||
// or more contributor license agreements. See the NOTICE file
|
||||
// distributed with this work for additional information
|
||||
// regarding copyright ownership. The ASF licenses this file
|
||||
// to you under the Apache License, Version 2.0 (the
|
||||
// "License"); you may not use this file except in compliance
|
||||
// with the License. You may obtain a copy of the License at
|
||||
//
|
||||
// http://www.apache.org/licenses/LICENSE-2.0
|
||||
//
|
||||
// Unless required by applicable law or agreed to in writing,
|
||||
// software distributed under the License is distributed on an
|
||||
// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
// KIND, either express or implied. See the License for the
|
||||
// specific language governing permissions and limitations
|
||||
// under the License.
|
||||
|
||||
package org.apache.doris.persist.gson;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
import doris.segment_v2.SegmentV2;
|
||||
import org.junit.Assert;
|
||||
import org.junit.Test;
|
||||
|
||||
public class GsonProtobufCompatibilityTest {
|
||||
private static class ProtobufBuilderHolder {
|
||||
@SerializedName("name")
|
||||
private final String name = "holder";
|
||||
|
||||
@SerializedName("builder")
|
||||
private final Object builder = SegmentV2.ColumnPathPartInfo.newBuilder().setKey("nested_field");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testSerializeGeneratedProtobufBuilder() {
|
||||
String json = GsonUtils.GSON.toJson(new ProtobufBuilderHolder());
|
||||
Assert.assertTrue(json, json.contains("\"name\":\"holder\""));
|
||||
Assert.assertFalse(json, json.contains("\"builder\""));
|
||||
}
|
||||
}
|
||||
+5
-5
@@ -335,8 +335,9 @@ under the License.
|
||||
<!--Need to ensure that the version is the same as in arrow/java/pom.xml or compatible with it.-->
|
||||
<grpc.version>1.65.1</grpc.version>
|
||||
<check.freamework.version>3.53.0</check.freamework.version>
|
||||
<cel.version>0.9.1-proto3</cel.version>
|
||||
<protobuf.version>3.25.8</protobuf.version>
|
||||
<cel.version>0.12.0</cel.version>
|
||||
<!-- FE-only Arrow 19 startup POC: align protobuf runtime with Arrow Java 19's protobuf BOM. -->
|
||||
<protobuf.version>4.33.4</protobuf.version>
|
||||
<!-- we use protoc-jar-maven-plugin to generate protobuf generated code -->
|
||||
<!-- see https://repo.maven.apache.org/maven2/com/google/protobuf/protoc/ to get correct version -->
|
||||
<protoc.artifact.version>3.24.3</protoc.artifact.version>
|
||||
@@ -371,9 +372,8 @@ under the License.
|
||||
<iceberg.version>1.10.1</iceberg.version>
|
||||
<!-- 0.56.1 has bug that "SplitMode" in query response may not be set-->
|
||||
<maxcompute.version>0.53.2-public</maxcompute.version>
|
||||
<!-- Arrow 19.0.1 will MacOS compile error and decimal type error when convert to Parquet
|
||||
https://github.com/apache/doris/pull/51217-->
|
||||
<arrow.version>17.0.0</arrow.version>
|
||||
<!-- FE-only POC: validate whether Arrow Java 19.0.0 can compile before touching BE/C++ thirdparty. -->
|
||||
<arrow.version>19.0.0</arrow.version>
|
||||
<presto.hadoop.version>2.7.4-11</presto.hadoop.version>
|
||||
<presto.hive.version>3.0.0-8</presto.hive.version>
|
||||
<!-- lakesoul -->
|
||||
|
||||
@@ -23,7 +23,7 @@ PPROF_TMPDIR="$DORIS_HOME/log/"
|
||||
JAVA_OPTS="-Xcheck:jni -Xmx1024m -DlogPath=$DORIS_HOME/log/jni.log -Xloggc:$DORIS_HOME/log/be.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
|
||||
|
||||
# For jdk 17, this JAVA_OPTS will be used as default JVM options
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djol.skipHotspotSAAttach=true -Xmx2048m -DlogPath=$LOG_DIR/jni.log -Xlog:gc*:$LOG_DIR/be.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Djavax.security.auth.useSubjectCredsOnly=false -Dsun.security.krb5.debug=true -Dsun.java.command=DorisBE -XX:-CriticalJNINatives -XX:+IgnoreUnrecognizedVMOptions -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
|
||||
# Set your own JAVA_HOME
|
||||
# JAVA_HOME=/path/to/jdk/
|
||||
|
||||
@@ -30,7 +30,7 @@ LOG_DIR = ${DORIS_HOME}/log
|
||||
JAVA_OPTS="-Djavax.security.auth.useSubjectCredsOnly=false -Xss4m -Xmx4096m -XX:+HeapDumpOnOutOfMemoryError -XX:+UnlockExperimentalVMOptions -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:+PrintGCDateStamps -XX:+PrintGCDetails -XX:+PrintClassHistogramAfterFullGC -Xloggc:$DORIS_HOME/log/fe.gc.log.$CUR_DATE -XX:+UseGCLogFileRotation -XX:NumberOfGCLogFiles=10 -XX:GCLogFileSize=50M -Dlog4j2.formatMsgNoLookups=true -Dcom.mysql.cj.disableAbandonedConnectionCleanup=true"
|
||||
|
||||
# For jdk 17, this JAVA_OPTS will be used as default JVM options
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
JAVA_OPTS_FOR_JDK_17="-Dfile.encoding=UTF-8 -Djavax.security.auth.useSubjectCredsOnly=false -Xmx8192m -Xms8192m -XX:+UseG1GC -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=$LOG_DIR -Xlog:gc*,classhisto*=trace:$LOG_DIR/fe.gc.log.$CUR_DATE:time,uptime:filecount=10,filesize=50M -Darrow.enable_null_check_for_get=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.lang.invoke=ALL-UNNAMED --add-opens=java.base/java.lang.reflect=ALL-UNNAMED --add-opens=java.base/java.io=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=ALL-UNNAMED --add-opens=java.base/java.net=ALL-UNNAMED --add-opens=java.base/java.nio=org.apache.arrow.memory.core,ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/java.util.concurrent=ALL-UNNAMED --add-opens=java.base/java.util.concurrent.atomic=ALL-UNNAMED --add-opens=java.base/sun.nio.ch=ALL-UNNAMED --add-opens=java.base/sun.nio.cs=ALL-UNNAMED --add-opens=java.base/sun.security.action=ALL-UNNAMED --add-opens=java.base/sun.util.calendar=ALL-UNNAMED --add-opens=java.security.jgss/sun.security.krb5=ALL-UNNAMED --add-opens=java.management/sun.management=ALL-UNNAMED --add-opens=java.base/jdk.internal.ref=ALL-UNNAMED --add-opens=java.xml/com.sun.org.apache.xerces.internal.jaxp=ALL-UNNAMED"
|
||||
|
||||
sys_log_level = INFO
|
||||
sys_log_mode = NORMAL
|
||||
|
||||
+13
-1
@@ -249,6 +249,19 @@ fi
|
||||
|
||||
# check java version
|
||||
export JAVA="${JAVA_HOME}/bin/java"
|
||||
JAVA_SPEC_VERSION="$("${JAVA}" -XshowSettings:properties -version 2>&1 \
|
||||
| awk -F'= ' '/java.specification.version =/ {print $2; exit}')"
|
||||
JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION%%.*}"
|
||||
if [[ "${JAVA_SPEC_VERSION}" == 1.* ]]; then
|
||||
JAVA_MAJOR_VERSION="${JAVA_SPEC_VERSION#1.}"
|
||||
JAVA_MAJOR_VERSION="${JAVA_MAJOR_VERSION%%.*}"
|
||||
fi
|
||||
|
||||
# Arrow Flight SQL JDBC needs java.nio opened when the regression framework runs on JDK 17+.
|
||||
if [[ -n "${JAVA_MAJOR_VERSION}" ]] && [[ "${JAVA_MAJOR_VERSION}" -ge 17 ]] \
|
||||
&& [[ " ${JAVA_OPTS:-} " != *"--add-opens=java.base/java.nio="* ]]; then
|
||||
JAVA_OPTS="${JAVA_OPTS:+${JAVA_OPTS} }--add-opens=java.base/java.nio=ALL-UNNAMED"
|
||||
fi
|
||||
|
||||
REGRESSION_OPTIONS_PREFIX=''
|
||||
|
||||
@@ -304,7 +317,6 @@ fi
|
||||
|
||||
echo "===== Run Regression Test ====="
|
||||
|
||||
# if use jdk17, add java option "--add-opens=java.base/java.nio=ALL-UNNAMED"
|
||||
if [[ "${TEAMCITY}" -eq 1 ]]; then
|
||||
JAVA_OPTS="${JAVA_OPTS} -DstdoutAppenderType=teamcity -Xmx2048m"
|
||||
fi
|
||||
|
||||
Reference in new issue
Block a user