This is an automated email from the ASF dual-hosted git repository.
chengpan pushed a commit to branch branch-1.5
in repository https://gitbox.apache.org/repos/asf/incubator-kyuubi.git
The following commit(s) were added to refs/heads/branch-1.5 by this push:
new 1a6e7cc [KYUUBI #2103] [1.5] Revert "[KYUUBI #1948] Upgrade thrift
version to 0.16.0"
1a6e7cc is described below
commit 1a6e7ccd43635f73e5dd0ebdc4e2ea9b7f13d957
Author: Cheng Pan <[email protected]>
AuthorDate: Sat Mar 12 21:04:41 2022 +0800
[KYUUBI #2103] [1.5] Revert "[KYUUBI #1948] Upgrade thrift version to
0.16.0"
### _Why are the changes needed?_
This PR reverts "[KYUUBI #1948] Upgrade thrift version to 0.16.0" in
branch-1.5 and some subsequent commits due to issues caused by breaking changes
in Thrift, e.g. #2101, #2093
We need more time to evaluate it and add more test cases to ensure
stability before the next release.
### _How was this patch tested?_
- [ ] Add some test cases that check the changes thoroughly including
negative and positive cases if possible
- [ ] Add screenshots for manual tests if appropriate
- [x] [Run
test](https://kyuubi.apache.org/docs/latest/develop_tools/testing.html#running-tests)
locally before make a pull request
Closes #2103 from pan3793/revert.
Closes #2103
Closes #1948
575dfe8d [Cheng Pan] properties order
4c94481e [Cheng Pan] fix deps
bfbdeb89 [Cheng Pan] Add log4j deps for kyuubi-hive-jdbc test
bad4e90e [Cheng Pan] surefire
f2ae8b9b [Cheng Pan] Revert "[KYUUBI #1948] Upgrade thrift version to
0.16.0"
4501f743 [Cheng Pan] Revert "[KYUUBI #1948][FOLLOWUP] Remove
TFramedTransport in extension-spark-3-1 and extension-spark-3-2"
cc04df49 [Cheng Pan] Revert "[KYUUBI #1996] Clean up log4j2 conf and
enhance surefire plugin conf"
52a20e17 [Cheng Pan] Revert "[KYUUBI #1948][FOLLOWUP] Relocate fb303
classes"
Authored-by: Cheng Pan <[email protected]>
Signed-off-by: Cheng Pan <[email protected]>
---
conf/log4j2.properties.template | 13 +-
dev/dependencyList | 2 +-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../apache/thrift/transport/TFramedTransport.java | 185 ---------------------
.../src/test/resources/log4j2-test.properties | 25 ++-
docs/deployment/settings.md | 17 +-
externals/kyuubi-flink-sql-engine/pom.xml | 10 +-
.../src/test/resources/log4j2-test.properties | 25 ++-
externals/kyuubi-spark-sql-engine/pom.xml | 24 ---
.../apache/thrift/transport/TFramedTransport.java | 185 ---------------------
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/main/resources/log4j-defaults.properties | 9 +
.../src/main/resources/log4j2-defaults.properties | 13 +-
.../org/apache/kyuubi/config/KyuubiConf.scala | 28 ++++
.../kyuubi/service/TBinaryFrontendService.scala | 5 +
.../apache/kyuubi/service/TFrontendService.scala | 4 -
.../HadoopThriftAuthBridgeServer.scala | 2 +-
.../authentication/TSetIpAddressProcessor.scala | 2 +-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
kyuubi-hive-jdbc-shaded/pom.xml | 13 --
kyuubi-hive-jdbc/pom.xml | 24 +++
.../hadoop/hive/thrift/TFilterTransport.java | 111 -------------
.../hive/thrift/TUGIContainingTransport.java | 90 ----------
.../hive/thrift/client/TUGIAssumingTransport.java | 73 --------
.../apache/kyuubi/jdbc/hive/KyuubiConnection.java | 2 +-
.../apache/thrift/transport/TFramedTransport.java | 185 ---------------------
.../src/test/resources/log4j2-test.properties | 25 ++-
.../src/test/resources/log4j2-test.properties | 25 ++-
.../kyuubi/client/KyuubiSyncThriftClient.scala | 3 +-
.../apache/thrift/transport/TFramedTransport.java | 185 ---------------------
.../src/test/resources/log4j2-test.properties | 25 ++-
.../HiveDelegationTokenProviderSuite.scala | 5 +-
.../KyuubiOperationPerConnectionSuite.scala | 6 +-
.../src/test/resources/log4j2-test.properties | 25 ++-
pom.xml | 11 +-
41 files changed, 436 insertions(+), 1146 deletions(-)
diff --git a/conf/log4j2.properties.template b/conf/log4j2.properties.template
index f57c634..102e0d3 100644
--- a/conf/log4j2.properties.template
+++ b/conf/log4j2.properties.template
@@ -25,8 +25,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = info
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = info
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# Set the default kyuubi-ctl log level to WARN. When running the kyuubi-ctl,
the
# log level for this class is used to overwrite the root logger's log level.
diff --git a/dev/dependencyList b/dev/dependencyList
index b9bd090..bc08f34 100644
--- a/dev/dependencyList
+++ b/dev/dependencyList
@@ -68,7 +68,7 @@
jetty-util-ajax/9.4.41.v20210516//jetty-util-ajax-9.4.41.v20210516.jar
jetty-util/9.4.41.v20210516//jetty-util-9.4.41.v20210516.jar
jline/0.9.94//jline-0.9.94.jar
libfb303/0.9.3//libfb303-0.9.3.jar
-libthrift/0.16.0//libthrift-0.16.0.jar
+libthrift/0.9.3//libthrift-0.9.3.jar
log4j-1.2-api/2.17.2//log4j-1.2-api-2.17.2.jar
log4j-api/2.17.2//log4j-api-2.17.2.jar
log4j-core/2.17.2//log4j-core-2.17.2.jar
diff --git
a/dev/kyuubi-extension-spark-3-1/src/test/resources/log4j2-test.properties
b/dev/kyuubi-extension-spark-3-1/src/test/resources/log4j2-test.properties
index b85b18e..fef13bd 100644
--- a/dev/kyuubi-extension-spark-3-1/src/test/resources/log4j2-test.properties
+++ b/dev/kyuubi-extension-spark-3-1/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git
a/dev/kyuubi-extension-spark-3-2/src/test/resources/log4j2-test.properties
b/dev/kyuubi-extension-spark-3-2/src/test/resources/log4j2-test.properties
index b85b18e..fef13bd 100644
--- a/dev/kyuubi-extension-spark-3-2/src/test/resources/log4j2-test.properties
+++ b/dev/kyuubi-extension-spark-3-2/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git
a/dev/kyuubi-extension-spark-common/src/test/java/org/apache/thrift/transport/TFramedTransport.java
b/dev/kyuubi-extension-spark-common/src/test/java/org/apache/thrift/transport/TFramedTransport.java
deleted file mode 100644
index 3777218..0000000
---
a/dev/kyuubi-extension-spark-common/src/test/java/org/apache/thrift/transport/TFramedTransport.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * 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.thrift.transport;
-
-import org.apache.thrift.TByteArrayOutputStream;
-import org.apache.thrift.TConfiguration;
-
-/**
- * This is based on libthrift-0.12.0 {@link TFramedTransport}. To fix class of
- * org.apache.thrift.transport.TFramedTransport not found after upgrading
libthrift.
- *
- * <p>TFramedTransport is a buffered TTransport that ensures a fully read
message every time by
- * preceding messages with a 4-byte frame size.
- */
-public class TFramedTransport extends TTransport {
-
- protected static final int DEFAULT_MAX_LENGTH = 16384000;
-
- private int maxLength_;
-
- /** Underlying transport */
- private TTransport transport_ = null;
-
- /** Buffer for output */
- private final TByteArrayOutputStream writeBuffer_ = new
TByteArrayOutputStream(1024);
-
- /** Buffer for input */
- private final TMemoryInputTransport readBuffer_ = new
TMemoryInputTransport(new byte[0]);
-
- public static class Factory extends TTransportFactory {
- private int maxLength_;
-
- public Factory() {
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public Factory(int maxLength) {
- maxLength_ = maxLength;
- }
-
- @Override
- public TTransport getTransport(TTransport base) throws TTransportException
{
- return new TFramedTransport(base, maxLength_);
- }
- }
-
- /** Constructor wraps around another transport */
- public TFramedTransport(TTransport transport, int maxLength) throws
TTransportException {
- transport_ = transport;
- maxLength_ = maxLength;
- }
-
- public TFramedTransport(TTransport transport) throws TTransportException {
- transport_ = transport;
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public void open() throws TTransportException {
- transport_.open();
- }
-
- public boolean isOpen() {
- return transport_.isOpen();
- }
-
- public void close() {
- transport_.close();
- }
-
- public int read(byte[] buf, int off, int len) throws TTransportException {
- int got = readBuffer_.read(buf, off, len);
- if (got > 0) {
- return got;
- }
-
- // Read another frame of data
- readFrame();
-
- return readBuffer_.read(buf, off, len);
- }
-
- @Override
- public byte[] getBuffer() {
- return readBuffer_.getBuffer();
- }
-
- @Override
- public int getBufferPosition() {
- return readBuffer_.getBufferPosition();
- }
-
- @Override
- public int getBytesRemainingInBuffer() {
- return readBuffer_.getBytesRemainingInBuffer();
- }
-
- @Override
- public void consumeBuffer(int len) {
- readBuffer_.consumeBuffer(len);
- }
-
- @Override
- public TConfiguration getConfiguration() {
- return null;
- }
-
- @Override
- public void updateKnownMessageSize(long l) throws TTransportException {}
-
- @Override
- public void checkReadBytesAvailable(long l) throws TTransportException {}
-
- public void clear() {
- readBuffer_.clear();
- }
-
- private final byte[] i32buf = new byte[4];
-
- private void readFrame() throws TTransportException {
- transport_.readAll(i32buf, 0, 4);
- int size = decodeFrameSize(i32buf);
-
- if (size < 0) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA, "Read a negative frame size (" +
size + ")!");
- }
-
- if (size > maxLength_) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA,
- "Frame size (" + size + ") larger than max length (" + maxLength_ +
")!");
- }
-
- byte[] buff = new byte[size];
- transport_.readAll(buff, 0, size);
- readBuffer_.reset(buff);
- }
-
- public void write(byte[] buf, int off, int len) throws TTransportException {
- writeBuffer_.write(buf, off, len);
- }
-
- @Override
- public void flush() throws TTransportException {
- byte[] buf = writeBuffer_.get();
- int len = writeBuffer_.len();
- writeBuffer_.reset();
-
- encodeFrameSize(len, i32buf);
- transport_.write(i32buf, 0, 4);
- transport_.write(buf, 0, len);
- transport_.flush();
- }
-
- public static final void encodeFrameSize(final int frameSize, final byte[]
buf) {
- buf[0] = (byte) (0xff & (frameSize >> 24));
- buf[1] = (byte) (0xff & (frameSize >> 16));
- buf[2] = (byte) (0xff & (frameSize >> 8));
- buf[3] = (byte) (0xff & (frameSize));
- }
-
- public static final int decodeFrameSize(final byte[] buf) {
- return ((buf[0] & 0xff) << 24)
- | ((buf[1] & 0xff) << 16)
- | ((buf[2] & 0xff) << 8)
- | ((buf[3] & 0xff));
- }
-}
diff --git
a/dev/kyuubi-extension-spark-common/src/test/resources/log4j2-test.properties
b/dev/kyuubi-extension-spark-common/src/test/resources/log4j2-test.properties
index b85b18e..fef13bd 100644
---
a/dev/kyuubi-extension-spark-common/src/test/resources/log4j2-test.properties
+++
b/dev/kyuubi-extension-spark-common/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/docs/deployment/settings.md b/docs/deployment/settings.md
index fc07eb8..5a78291 100644
--- a/docs/deployment/settings.md
+++ b/docs/deployment/settings.md
@@ -211,9 +211,11 @@ Key | Default | Meaning | Type | Since
Key | Default | Meaning | Type | Since
--- | --- | --- | --- | ---
+<code>kyuubi.frontend.backoff.slot.length</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>PT0.1S</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>(deprecated) Time to back off
during login to the thrift frontend service.</div>|<div style='width:
30pt'>duration</div>|<div style='width: 20pt'>1.0.0</div>
<code>kyuubi.frontend.bind.host</code>|<div style='width: 65pt;word-wrap:
break-word;white-space: normal'><undefined></div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>(deprecated) Hostname or IP of
the machine on which to run the thrift frontend service via binary
protocol.</div>|<div style='width: 30pt'>string</div>|<div style='width:
20pt'>1.0.0</div>
<code>kyuubi.frontend.bind.port</code>|<div style='width: 65pt;word-wrap:
break-word;white-space: normal'>10009</div>|<div style='width: 170pt;word-wrap:
break-word;white-space: normal'>(deprecated) Port of the machine on which to
run the thrift frontend service via binary protocol.</div>|<div style='width:
30pt'>int</div>|<div style='width: 20pt'>1.0.0</div>
<code>kyuubi.frontend.connection.url.use.hostname</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>false</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>When true, frontend services
prefer hostname, otherwise, ip address</div>|<div style='width:
30pt'>boolean</div>|<div style='width: 20pt'>1.5.0</div>
+<code>kyuubi.frontend.login.timeout</code>|<div style='width: 65pt;word-wrap:
break-word;white-space: normal'>PT20S</div>|<div style='width: 170pt;word-wrap:
break-word;white-space: normal'>(deprecated) Timeout for Thrift clients during
login to the thrift frontend service.</div>|<div style='width:
30pt'>duration</div>|<div style='width: 20pt'>1.0.0</div>
<code>kyuubi.frontend.max.message.size</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>104857600</div>|<div
style='width: 170pt;word-wrap: break-word;white-space: normal'>(deprecated)
Maximum message size in bytes a Kyuubi server will accept.</div>|<div
style='width: 30pt'>int</div>|<div style='width: 20pt'>1.0.0</div>
<code>kyuubi.frontend.max.worker.threads</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>999</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>(deprecated) Maximum number of
threads in the of frontend worker thread pool for the thrift frontend
service</div>|<div style='width: 30pt'>int</div>|<div style='width:
20pt'>1.0.0</div>
<code>kyuubi.frontend.min.worker.threads</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>9</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>(deprecated) Minimum number of
threads in the of frontend worker thread pool for the thrift frontend
service</div>|<div style='width: 30pt'>int</div>|<div style='width:
20pt'>1.0.0</div>
@@ -226,8 +228,10 @@ Key | Default | Meaning | Type | Since
<code>kyuubi.frontend.protocols</code>|<div style='width: 65pt;word-wrap:
break-word;white-space: normal'>THRIFT_BINARY</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>A comma separated list for all
frontend protocols <ul> <li>THRIFT_BINARY - HiveServer2 compatible thrift
binary protocol.</li> <li>REST - Kyuubi defined REST API(experimental).</li>
<li>MYSQL - MySQL compatible text protocol(experimental).</li> </ul></div>|<div
style='width: 30pt'>seq</div>|<div [...]
<code>kyuubi.frontend.rest.bind.host</code>|<div style='width: 65pt;word-wrap:
break-word;white-space: normal'><undefined></div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>Hostname or IP of the machine
on which to run the REST frontend service.</div>|<div style='width:
30pt'>string</div>|<div style='width: 20pt'>1.4.0</div>
<code>kyuubi.frontend.rest.bind.port</code>|<div style='width: 65pt;word-wrap:
break-word;white-space: normal'>10099</div>|<div style='width: 170pt;word-wrap:
break-word;white-space: normal'>Port of the machine on which to run the REST
frontend service.</div>|<div style='width: 30pt'>int</div>|<div style='width:
20pt'>1.4.0</div>
+<code>kyuubi.frontend.thrift.backoff.slot.length</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>PT0.1S</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>Time to back off during login
to the thrift frontend service.</div>|<div style='width:
30pt'>duration</div>|<div style='width: 20pt'>1.4.0</div>
<code>kyuubi.frontend.thrift.binary.bind.host</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'><undefined></div>|<div
style='width: 170pt;word-wrap: break-word;white-space: normal'>Hostname or IP
of the machine on which to run the thrift frontend service via binary
protocol.</div>|<div style='width: 30pt'>string</div>|<div style='width:
20pt'>1.4.0</div>
<code>kyuubi.frontend.thrift.binary.bind.port</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>10009</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>Port of the machine on which
to run the thrift frontend service via binary protocol.</div>|<div
style='width: 30pt'>int</div>|<div style='width: 20pt'>1.4.0</div>
+<code>kyuubi.frontend.thrift.login.timeout</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>PT20S</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>Timeout for Thrift clients
during login to the thrift frontend service.</div>|<div style='width:
30pt'>duration</div>|<div style='width: 20pt'>1.4.0</div>
<code>kyuubi.frontend.thrift.max.message.size</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>104857600</div>|<div
style='width: 170pt;word-wrap: break-word;white-space: normal'>Maximum message
size in bytes a Kyuubi server will accept.</div>|<div style='width:
30pt'>int</div>|<div style='width: 20pt'>1.4.0</div>
<code>kyuubi.frontend.thrift.max.worker.threads</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>999</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>Maximum number of threads in
the of frontend worker thread pool for the thrift frontend service</div>|<div
style='width: 30pt'>int</div>|<div style='width: 20pt'>1.4.0</div>
<code>kyuubi.frontend.thrift.min.worker.threads</code>|<div style='width:
65pt;word-wrap: break-word;white-space: normal'>9</div>|<div style='width:
170pt;word-wrap: break-word;white-space: normal'>Minimum number of threads in
the of frontend worker thread pool for the thrift frontend service</div>|<div
style='width: 30pt'>int</div>|<div style='width: 20pt'>1.4.0</div>
@@ -407,8 +411,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = info
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = info
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# Set the default kyuubi-ctl log level to WARN. When running the kyuubi-ctl,
the
# log level for this class is used to overwrite the root logger's log level.
diff --git a/externals/kyuubi-flink-sql-engine/pom.xml
b/externals/kyuubi-flink-sql-engine/pom.xml
index 2fa7f12..b9bc558 100644
--- a/externals/kyuubi-flink-sql-engine/pom.xml
+++ b/externals/kyuubi-flink-sql-engine/pom.xml
@@ -171,8 +171,7 @@
<include>org.apache.curator:curator-framework</include>
<include>org.apache.curator:curator-recipes</include>\
<include>org.apache.hive:hive-service-rpc</include>
- <include>org.apache.thrift:libfb303</include>
- <include>org.apache.thrift:libthrift</include>
+ <include>org.apache.thrift:*</include>
<include>org.apache.zookeeper:*</include>
</includes>
</artifactSet>
@@ -221,13 +220,6 @@
</includes>
</relocation>
<relocation>
- <pattern>com.facebook.fb303</pattern>
-
<shadedPattern>${kyuubi.shade.packageName}.com.facebook.fb303</shadedPattern>
- <includes>
- <include>com.facebook.fb303.**</include>
- </includes>
- </relocation>
- <relocation>
<pattern>org.apache.zookeeper</pattern>
<shadedPattern>${kyuubi.shade.packageName}.org.apache.zookeeper</shadedPattern>
<includes>
diff --git
a/externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
b/externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
---
a/externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
+++
b/externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/externals/kyuubi-spark-sql-engine/pom.xml
b/externals/kyuubi-spark-sql-engine/pom.xml
index 0cf63a8..4f5fd94 100644
--- a/externals/kyuubi-spark-sql-engine/pom.xml
+++ b/externals/kyuubi-spark-sql-engine/pom.xml
@@ -191,9 +191,6 @@
<include>org.apache.curator:curator-client</include>
<include>org.apache.curator:curator-framework</include>
<include>org.apache.curator:curator-recipes</include>
- <include>org.apache.hive:hive-service-rpc</include>
- <include>org.apache.thrift:libfb303</include>
- <include>org.apache.thrift:libthrift</include>
</includes>
</artifactSet>
<relocations>
@@ -204,27 +201,6 @@
<include>org.apache.curator.**</include>
</includes>
</relocation>
- <relocation>
- <pattern>org.apache.thrift</pattern>
-
<shadedPattern>${kyuubi.shade.packageName}.org.apache.thrift</shadedPattern>
- <includes>
- <include>org.apache.thrift.**</include>
- </includes>
- </relocation>
- <relocation>
- <pattern>com.facebook.fb303</pattern>
-
<shadedPattern>${kyuubi.shade.packageName}.com.facebook.fb303</shadedPattern>
- <includes>
- <include>com.facebook.fb303.**</include>
- </includes>
- </relocation>
- <relocation>
- <pattern>org.apache.hive.service.rpc</pattern>
-
<shadedPattern>${kyuubi.shade.packageName}.org.apache.hive.service.rpc</shadedPattern>
- <includes>
-
<include>org.apache.hive.service.rpc.**</include>
- </includes>
- </relocation>
</relocations>
</configuration>
<executions>
diff --git
a/externals/kyuubi-spark-sql-engine/src/test/java/org/apache/thrift/transport/TFramedTransport.java
b/externals/kyuubi-spark-sql-engine/src/test/java/org/apache/thrift/transport/TFramedTransport.java
deleted file mode 100644
index 3777218..0000000
---
a/externals/kyuubi-spark-sql-engine/src/test/java/org/apache/thrift/transport/TFramedTransport.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * 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.thrift.transport;
-
-import org.apache.thrift.TByteArrayOutputStream;
-import org.apache.thrift.TConfiguration;
-
-/**
- * This is based on libthrift-0.12.0 {@link TFramedTransport}. To fix class of
- * org.apache.thrift.transport.TFramedTransport not found after upgrading
libthrift.
- *
- * <p>TFramedTransport is a buffered TTransport that ensures a fully read
message every time by
- * preceding messages with a 4-byte frame size.
- */
-public class TFramedTransport extends TTransport {
-
- protected static final int DEFAULT_MAX_LENGTH = 16384000;
-
- private int maxLength_;
-
- /** Underlying transport */
- private TTransport transport_ = null;
-
- /** Buffer for output */
- private final TByteArrayOutputStream writeBuffer_ = new
TByteArrayOutputStream(1024);
-
- /** Buffer for input */
- private final TMemoryInputTransport readBuffer_ = new
TMemoryInputTransport(new byte[0]);
-
- public static class Factory extends TTransportFactory {
- private int maxLength_;
-
- public Factory() {
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public Factory(int maxLength) {
- maxLength_ = maxLength;
- }
-
- @Override
- public TTransport getTransport(TTransport base) throws TTransportException
{
- return new TFramedTransport(base, maxLength_);
- }
- }
-
- /** Constructor wraps around another transport */
- public TFramedTransport(TTransport transport, int maxLength) throws
TTransportException {
- transport_ = transport;
- maxLength_ = maxLength;
- }
-
- public TFramedTransport(TTransport transport) throws TTransportException {
- transport_ = transport;
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public void open() throws TTransportException {
- transport_.open();
- }
-
- public boolean isOpen() {
- return transport_.isOpen();
- }
-
- public void close() {
- transport_.close();
- }
-
- public int read(byte[] buf, int off, int len) throws TTransportException {
- int got = readBuffer_.read(buf, off, len);
- if (got > 0) {
- return got;
- }
-
- // Read another frame of data
- readFrame();
-
- return readBuffer_.read(buf, off, len);
- }
-
- @Override
- public byte[] getBuffer() {
- return readBuffer_.getBuffer();
- }
-
- @Override
- public int getBufferPosition() {
- return readBuffer_.getBufferPosition();
- }
-
- @Override
- public int getBytesRemainingInBuffer() {
- return readBuffer_.getBytesRemainingInBuffer();
- }
-
- @Override
- public void consumeBuffer(int len) {
- readBuffer_.consumeBuffer(len);
- }
-
- @Override
- public TConfiguration getConfiguration() {
- return null;
- }
-
- @Override
- public void updateKnownMessageSize(long l) throws TTransportException {}
-
- @Override
- public void checkReadBytesAvailable(long l) throws TTransportException {}
-
- public void clear() {
- readBuffer_.clear();
- }
-
- private final byte[] i32buf = new byte[4];
-
- private void readFrame() throws TTransportException {
- transport_.readAll(i32buf, 0, 4);
- int size = decodeFrameSize(i32buf);
-
- if (size < 0) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA, "Read a negative frame size (" +
size + ")!");
- }
-
- if (size > maxLength_) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA,
- "Frame size (" + size + ") larger than max length (" + maxLength_ +
")!");
- }
-
- byte[] buff = new byte[size];
- transport_.readAll(buff, 0, size);
- readBuffer_.reset(buff);
- }
-
- public void write(byte[] buf, int off, int len) throws TTransportException {
- writeBuffer_.write(buf, off, len);
- }
-
- @Override
- public void flush() throws TTransportException {
- byte[] buf = writeBuffer_.get();
- int len = writeBuffer_.len();
- writeBuffer_.reset();
-
- encodeFrameSize(len, i32buf);
- transport_.write(i32buf, 0, 4);
- transport_.write(buf, 0, len);
- transport_.flush();
- }
-
- public static final void encodeFrameSize(final int frameSize, final byte[]
buf) {
- buf[0] = (byte) (0xff & (frameSize >> 24));
- buf[1] = (byte) (0xff & (frameSize >> 16));
- buf[2] = (byte) (0xff & (frameSize >> 8));
- buf[3] = (byte) (0xff & (frameSize));
- }
-
- public static final int decodeFrameSize(final byte[] buf) {
- return ((buf[0] & 0xff) << 24)
- | ((buf[1] & 0xff) << 16)
- | ((buf[2] & 0xff) << 8)
- | ((buf[3] & 0xff));
- }
-}
diff --git
a/externals/kyuubi-spark-sql-engine/src/test/resources/log4j2-test.properties
b/externals/kyuubi-spark-sql-engine/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
---
a/externals/kyuubi-spark-sql-engine/src/test/resources/log4j2-test.properties
+++
b/externals/kyuubi-spark-sql-engine/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git
a/externals/kyuubi-trino-engine/src/test/resources/log4j2-test.properties
b/externals/kyuubi-trino-engine/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
--- a/externals/kyuubi-trino-engine/src/test/resources/log4j2-test.properties
+++ b/externals/kyuubi-trino-engine/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git
a/integration-tests/kyuubi-flink-it/src/test/resources/log4j2-test.properties
b/integration-tests/kyuubi-flink-it/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
---
a/integration-tests/kyuubi-flink-it/src/test/resources/log4j2-test.properties
+++
b/integration-tests/kyuubi-flink-it/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git
a/integration-tests/kyuubi-kubernetes-deployment-it/src/test/resources/log4j2-test.properties
b/integration-tests/kyuubi-kubernetes-deployment-it/src/test/resources/log4j2-test.properties
index 116202f..73a9aa0 100644
---
a/integration-tests/kyuubi-kubernetes-deployment-it/src/test/resources/log4j2-test.properties
+++
b/integration-tests/kyuubi-kubernetes-deployment-it/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to INFO
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = info
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = info
diff --git a/kyuubi-common/src/main/resources/log4j-defaults.properties
b/kyuubi-common/src/main/resources/log4j-defaults.properties
index 2d091a9..5354a8e 100644
--- a/kyuubi-common/src/main/resources/log4j-defaults.properties
+++ b/kyuubi-common/src/main/resources/log4j-defaults.properties
@@ -21,3 +21,12 @@ log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.target=System.err
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss.SSS} %p
%c{2}: %m%n
+
+# SPARK-34128: Suppress undesirable TTransportException warnings involved in
THRIFT-4805
+log4j.appender.CA.filter.1=org.apache.log4j.varia.StringMatchFilter
+log4j.appender.CA.filter.1.StringToMatch=Thrift error occurred during
processing of message
+log4j.appender.CA.filter.1.AcceptOnMatch=false
+
+log4j.appender.FA.filter.1=org.apache.log4j.varia.StringMatchFilter
+log4j.appender.FA.filter.1.StringToMatch=Thrift error occurred during
processing of message
+log4j.appender.FA.filter.1.AcceptOnMatch=false
diff --git a/kyuubi-common/src/main/resources/log4j2-defaults.properties
b/kyuubi-common/src/main/resources/log4j2-defaults.properties
index 508d615..9170c17 100644
--- a/kyuubi-common/src/main/resources/log4j2-defaults.properties
+++ b/kyuubi-common/src/main/resources/log4j2-defaults.properties
@@ -25,5 +25,14 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = info
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = info
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
diff --git
a/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala
b/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala
index 53e3f93..af08056 100644
--- a/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala
+++ b/kyuubi-common/src/main/scala/org/apache/kyuubi/config/KyuubiConf.scala
@@ -364,6 +364,34 @@ object KyuubiConf {
.version("1.4.0")
.fallbackConf(FRONTEND_MAX_MESSAGE_SIZE)
+ @deprecated(s"using ${FRONTEND_THRIFT_LOGIN_TIMEOUT.key} instead", "1.4.0")
+ val FRONTEND_LOGIN_TIMEOUT: ConfigEntry[Long] =
+ buildConf("frontend.login.timeout")
+ .doc("(deprecated) Timeout for Thrift clients during login to the thrift
frontend service.")
+ .version("1.0.0")
+ .timeConf
+ .createWithDefault(Duration.ofSeconds(20).toMillis)
+
+ val FRONTEND_THRIFT_LOGIN_TIMEOUT: ConfigEntry[Long] =
+ buildConf("frontend.thrift.login.timeout")
+ .doc("Timeout for Thrift clients during login to the thrift frontend
service.")
+ .version("1.4.0")
+ .fallbackConf(FRONTEND_LOGIN_TIMEOUT)
+
+ @deprecated(s"using ${FRONTEND_THRIFT_LOGIN_BACKOFF_SLOT_LENGTH.key}
instead", "1.4.0")
+ val FRONTEND_LOGIN_BACKOFF_SLOT_LENGTH: ConfigEntry[Long] =
+ buildConf("frontend.backoff.slot.length")
+ .doc("(deprecated) Time to back off during login to the thrift frontend
service.")
+ .version("1.0.0")
+ .timeConf
+ .createWithDefault(Duration.ofMillis(100).toMillis)
+
+ val FRONTEND_THRIFT_LOGIN_BACKOFF_SLOT_LENGTH: ConfigEntry[Long] =
+ buildConf("frontend.thrift.backoff.slot.length")
+ .doc("Time to back off during login to the thrift frontend service.")
+ .version("1.4.0")
+ .fallbackConf(FRONTEND_LOGIN_BACKOFF_SLOT_LENGTH)
+
val AUTHENTICATION_METHOD: ConfigEntry[Seq[String]] =
buildConf("authentication")
.doc("A comma separated list of client authentication types.<ul>" +
" <li>NOSASL: raw transport.</li>" +
diff --git
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TBinaryFrontendService.scala
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TBinaryFrontendService.scala
index 39245a3..1037384 100644
---
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TBinaryFrontendService.scala
+++
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TBinaryFrontendService.scala
@@ -65,12 +65,17 @@ abstract class TBinaryFrontendService(name: String)
val tProcFactory = authFactory.getTProcessorFactory(this)
val tServerSocket = new TServerSocket(serverSocket)
val maxMessageSize = conf.get(FRONTEND_THRIFT_MAX_MESSAGE_SIZE)
+ val requestTimeout = conf.get(FRONTEND_THRIFT_LOGIN_TIMEOUT).toInt
+ val beBackoffSlotLength =
conf.get(FRONTEND_THRIFT_LOGIN_BACKOFF_SLOT_LENGTH).toInt
val args = new TThreadPoolServer.Args(tServerSocket)
.processorFactory(tProcFactory)
.transportFactory(transFactory)
.protocolFactory(new TBinaryProtocol.Factory)
.inputProtocolFactory(
new TBinaryProtocol.Factory(true, true, maxMessageSize,
maxMessageSize))
+
.requestTimeout(requestTimeout).requestTimeoutUnit(TimeUnit.MILLISECONDS)
+ .beBackoffSlotLength(beBackoffSlotLength)
+ .beBackoffSlotLengthUnit(TimeUnit.MILLISECONDS)
.executorService(executor)
// TCP Server
server = Some(new TThreadPoolServer(args))
diff --git
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TFrontendService.scala
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TFrontendService.scala
index 9f1e9df..51884a3 100644
---
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TFrontendService.scala
+++
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/TFrontendService.scala
@@ -554,9 +554,5 @@ private[kyuubi] object TFrontendService {
}
def getSessionHandle: SessionHandle = sessionHandle
-
- override def unwrap[T](aClass: Class[T]): T = null.asInstanceOf[T]
-
- override def isWrapperFor(aClass: Class[_]): Boolean = false
}
}
diff --git
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/HadoopThriftAuthBridgeServer.scala
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/HadoopThriftAuthBridgeServer.scala
index 53d8e18..1331c99 100644
---
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/HadoopThriftAuthBridgeServer.scala
+++
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/HadoopThriftAuthBridgeServer.scala
@@ -131,7 +131,7 @@ object HadoopThriftAuthBridgeServer {
class TUGIAssumingProcessor(
wrapped: TProcessor,
secretMgr: KyuubiDelegationTokenManager) extends TProcessor with Logging
{
- override def process(in: TProtocol, out: TProtocol): Unit = {
+ override def process(in: TProtocol, out: TProtocol): Boolean = {
val transport = in.getTransport
transport match {
case saslTrans: TSaslServerTransport =>
diff --git
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/TSetIpAddressProcessor.scala
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/TSetIpAddressProcessor.scala
index f5d0686..ebf82f2 100644
---
a/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/TSetIpAddressProcessor.scala
+++
b/kyuubi-common/src/main/scala/org/apache/kyuubi/service/authentication/TSetIpAddressProcessor.scala
@@ -29,7 +29,7 @@ class TSetIpAddressProcessor[I <: Iface](
import TSetIpAddressProcessor._
@throws[TException]
- override def process(in: TProtocol, out: TProtocol): Unit = {
+ override def process(in: TProtocol, out: TProtocol): Boolean = {
setIpAddress(in)
setUserName(in)
try {
diff --git a/kyuubi-common/src/test/resources/log4j2-test.properties
b/kyuubi-common/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
--- a/kyuubi-common/src/test/resources/log4j2-test.properties
+++ b/kyuubi-common/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/kyuubi-ctl/src/test/resources/log4j2-test.properties
b/kyuubi-ctl/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
--- a/kyuubi-ctl/src/test/resources/log4j2-test.properties
+++ b/kyuubi-ctl/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/kyuubi-ha/src/test/resources/log4j2-test.properties
b/kyuubi-ha/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
--- a/kyuubi-ha/src/test/resources/log4j2-test.properties
+++ b/kyuubi-ha/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/kyuubi-hive-jdbc-shaded/pom.xml b/kyuubi-hive-jdbc-shaded/pom.xml
index 22e9b8e..efb622e 100644
--- a/kyuubi-hive-jdbc-shaded/pom.xml
+++ b/kyuubi-hive-jdbc-shaded/pom.xml
@@ -56,16 +56,6 @@
</dependency>
<dependency>
- <groupId>org.apache.thrift</groupId>
- <artifactId>libfb303</artifactId>
- </dependency>
-
- <dependency>
- <groupId>org.apache.thrift</groupId>
- <artifactId>libthrift</artifactId>
- </dependency>
-
- <dependency>
<groupId>org.apache.hive</groupId>
<artifactId>hive-service-rpc</artifactId>
</dependency>
@@ -287,9 +277,6 @@
<include>**</include>
</includes>
<excludes>
-
<exclude>org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.class</exclude>
-
<exclude>org/apache/hadoop/hive/thrift/TFilterTransport.class</exclude>
-
<exclude>org/apache/hadoop/hive/thrift/TUGIContainingTransport.class</exclude>
<exclude>META-INF/MANIFEST.MF</exclude>
</excludes>
</filter>
diff --git a/kyuubi-hive-jdbc/pom.xml b/kyuubi-hive-jdbc/pom.xml
index 0fdd98a..f4f6eda 100644
--- a/kyuubi-hive-jdbc/pom.xml
+++ b/kyuubi-hive-jdbc/pom.xml
@@ -231,6 +231,30 @@
<version>${mockito-all.version}</version>
<scope>test</scope>
</dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-slf4j-impl</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-api</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-core</artifactId>
+ <scope>test</scope>
+ </dependency>
+
+ <dependency>
+ <groupId>org.apache.logging.log4j</groupId>
+ <artifactId>log4j-1.2-api</artifactId>
+ <scope>test</scope>
+ </dependency>
</dependencies>
<build>
diff --git
a/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TFilterTransport.java
b/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TFilterTransport.java
deleted file mode 100644
index 9a65ee7..0000000
---
a/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TFilterTransport.java
+++ /dev/null
@@ -1,111 +0,0 @@
-/*
- * 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.hadoop.hive.thrift;
-
-import org.apache.thrift.TConfiguration;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-
-/**
- * Transport that simply wraps another transport. This is the equivalent of
FilterInputStream for
- * Thrift transports.
- */
-public class TFilterTransport extends TTransport {
-
- protected final TTransport wrapped;
-
- public TFilterTransport(TTransport wrapped) {
- this.wrapped = wrapped;
- }
-
- @Override
- public void open() throws TTransportException {
- wrapped.open();
- }
-
- @Override
- public boolean isOpen() {
- return wrapped.isOpen();
- }
-
- @Override
- public boolean peek() {
- return wrapped.peek();
- }
-
- @Override
- public void close() {
- wrapped.close();
- }
-
- @Override
- public int read(byte[] buf, int off, int len) throws TTransportException {
- return wrapped.read(buf, off, len);
- }
-
- @Override
- public int readAll(byte[] buf, int off, int len) throws TTransportException {
- return wrapped.readAll(buf, off, len);
- }
-
- @Override
- public void write(byte[] buf) throws TTransportException {
- wrapped.write(buf);
- }
-
- @Override
- public void write(byte[] buf, int off, int len) throws TTransportException {
- wrapped.write(buf, off, len);
- }
-
- @Override
- public void flush() throws TTransportException {
- wrapped.flush();
- }
-
- @Override
- public byte[] getBuffer() {
- return wrapped.getBuffer();
- }
-
- @Override
- public int getBufferPosition() {
- return wrapped.getBufferPosition();
- }
-
- @Override
- public int getBytesRemainingInBuffer() {
- return wrapped.getBytesRemainingInBuffer();
- }
-
- @Override
- public void consumeBuffer(int len) {
- wrapped.consumeBuffer(len);
- }
-
- @Override
- public TConfiguration getConfiguration() {
- return null;
- }
-
- @Override
- public void updateKnownMessageSize(long size) throws TTransportException {}
-
- @Override
- public void checkReadBytesAvailable(long numBytes) throws
TTransportException {}
-}
diff --git
a/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TUGIContainingTransport.java
b/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TUGIContainingTransport.java
deleted file mode 100644
index 49ca12e..0000000
---
a/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/TUGIContainingTransport.java
+++ /dev/null
@@ -1,90 +0,0 @@
-/*
- * 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.hadoop.hive.thrift;
-
-import com.google.common.collect.MapMaker;
-import java.net.Socket;
-import java.util.concurrent.ConcurrentMap;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.apache.thrift.transport.TSocket;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportFactory;
-
-/**
- * TUGIContainingTransport associates ugi information with connection
(transport). Wraps underlying
- * <code>TSocket</code> transport and annotates it with ugi.
- */
-public class TUGIContainingTransport extends TFilterTransport {
-
- private UserGroupInformation ugi;
-
- public TUGIContainingTransport(TTransport wrapped) {
- super(wrapped);
- }
-
- public UserGroupInformation getClientUGI() {
- return ugi;
- }
-
- public void setClientUGI(UserGroupInformation ugi) {
- this.ugi = ugi;
- }
-
- /**
- * If the underlying TTransport is an instance of TSocket, it returns the
Socket object which it
- * contains. Otherwise it returns null.
- */
- public Socket getSocket() {
- if (wrapped instanceof TSocket) {
- return (((TSocket) wrapped).getSocket());
- }
-
- return null;
- }
-
- /** Factory to create TUGIContainingTransport. */
- public static class Factory extends TTransportFactory {
-
- // Need a concurrent weakhashmap. WeakKeys() so that when underlying
transport gets out of
- // scope, it still can be GC'ed. Since value of map has a ref to key, need
weekValues as well.
- private static final ConcurrentMap<TTransport, TUGIContainingTransport>
transMap =
- new MapMaker().weakKeys().weakValues().makeMap();
-
- /**
- * Get a new <code>TUGIContainingTransport</code> instance, or reuse the
existing one if a
- * <code>TUGIContainingTransport</code> has already been created before
using the given <code>
- * TTransport</code> as an underlying transport. This ensures that a given
underlying transport
- * instance receives the same <code>TUGIContainingTransport</code>.
- */
- @Override
- public TUGIContainingTransport getTransport(TTransport trans) {
-
- // UGI information is not available at connection setup time, it will be
set later
- // via set_ugi() rpc.
- TUGIContainingTransport tugiTrans = transMap.get(trans);
- if (tugiTrans == null) {
- tugiTrans = new TUGIContainingTransport(trans);
- TUGIContainingTransport prev = transMap.putIfAbsent(trans, tugiTrans);
- if (prev != null) {
- return prev;
- }
- }
- return tugiTrans;
- }
- }
-}
diff --git
a/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java
b/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java
deleted file mode 100644
index 95ed0cd..0000000
---
a/kyuubi-hive-jdbc/src/main/java/org/apache/hadoop/hive/thrift/client/TUGIAssumingTransport.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * 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.hadoop.hive.thrift.client;
-
-import java.io.IOException;
-import java.security.PrivilegedExceptionAction;
-import org.apache.hadoop.hive.thrift.TFilterTransport;
-import org.apache.hadoop.security.UserGroupInformation;
-import org.apache.thrift.transport.TTransport;
-import org.apache.thrift.transport.TTransportException;
-
-/**
- * The Thrift SASL transports call Sasl.createSaslServer and
Sasl.createSaslClient inside open().
- * So, we need to assume the correct UGI when the transport is opened so that
the SASL mechanisms
- * have access to the right principal. This transport wraps the Sasl
transports to set up the right
- * UGI context for open().
- *
- * <p>This is used on the client side, where the API explicitly opens a
transport to the server.
- */
-public class TUGIAssumingTransport extends TFilterTransport {
-
- protected UserGroupInformation ugi;
-
- public TUGIAssumingTransport(TTransport wrapped, UserGroupInformation ugi) {
- super(wrapped);
- this.ugi = ugi;
- }
-
- @Override
- public void open() throws TTransportException {
- try {
- ugi.doAs(
- new PrivilegedExceptionAction<Void>() {
- public Void run() {
- try {
- wrapped.open();
- } catch (TTransportException tte) {
- // Wrap the transport exception in an RTE, since UGI.doAs()
then goes
- // and unwraps this for us out of the doAs block. We then
unwrap one
- // more time in our catch clause to get back the TTE. (ugh)
- throw new RuntimeException(tte);
- }
- return null;
- }
- });
- } catch (IOException ioe) {
- throw new RuntimeException("Received an ioe we never threw!", ioe);
- } catch (InterruptedException ie) {
- throw new RuntimeException("Received an ie we never threw!", ie);
- } catch (RuntimeException rte) {
- if (rte.getCause() instanceof TTransportException) {
- throw (TTransportException) rte.getCause();
- } else {
- throw rte;
- }
- }
- }
-}
diff --git
a/kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/KyuubiConnection.java
b/kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/KyuubiConnection.java
index 8f1df85..1abc341 100644
---
a/kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/KyuubiConnection.java
+++
b/kyuubi-hive-jdbc/src/main/java/org/apache/kyuubi/jdbc/hive/KyuubiConnection.java
@@ -655,7 +655,7 @@ public class KyuubiConnection implements
java.sql.Connection, KyuubiLoggable {
// Raw socket connection (non-sasl)
transport = socketTransport;
}
- } catch (SaslException | TTransportException e) {
+ } catch (SaslException e) {
throw new SQLException(
"Could not create secure connection to " + jdbcUriString + ": " +
e.getMessage(),
" 08S01",
diff --git
a/kyuubi-hive-jdbc/src/main/java/org/apache/thrift/transport/TFramedTransport.java
b/kyuubi-hive-jdbc/src/main/java/org/apache/thrift/transport/TFramedTransport.java
deleted file mode 100644
index 3777218..0000000
---
a/kyuubi-hive-jdbc/src/main/java/org/apache/thrift/transport/TFramedTransport.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * 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.thrift.transport;
-
-import org.apache.thrift.TByteArrayOutputStream;
-import org.apache.thrift.TConfiguration;
-
-/**
- * This is based on libthrift-0.12.0 {@link TFramedTransport}. To fix class of
- * org.apache.thrift.transport.TFramedTransport not found after upgrading
libthrift.
- *
- * <p>TFramedTransport is a buffered TTransport that ensures a fully read
message every time by
- * preceding messages with a 4-byte frame size.
- */
-public class TFramedTransport extends TTransport {
-
- protected static final int DEFAULT_MAX_LENGTH = 16384000;
-
- private int maxLength_;
-
- /** Underlying transport */
- private TTransport transport_ = null;
-
- /** Buffer for output */
- private final TByteArrayOutputStream writeBuffer_ = new
TByteArrayOutputStream(1024);
-
- /** Buffer for input */
- private final TMemoryInputTransport readBuffer_ = new
TMemoryInputTransport(new byte[0]);
-
- public static class Factory extends TTransportFactory {
- private int maxLength_;
-
- public Factory() {
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public Factory(int maxLength) {
- maxLength_ = maxLength;
- }
-
- @Override
- public TTransport getTransport(TTransport base) throws TTransportException
{
- return new TFramedTransport(base, maxLength_);
- }
- }
-
- /** Constructor wraps around another transport */
- public TFramedTransport(TTransport transport, int maxLength) throws
TTransportException {
- transport_ = transport;
- maxLength_ = maxLength;
- }
-
- public TFramedTransport(TTransport transport) throws TTransportException {
- transport_ = transport;
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public void open() throws TTransportException {
- transport_.open();
- }
-
- public boolean isOpen() {
- return transport_.isOpen();
- }
-
- public void close() {
- transport_.close();
- }
-
- public int read(byte[] buf, int off, int len) throws TTransportException {
- int got = readBuffer_.read(buf, off, len);
- if (got > 0) {
- return got;
- }
-
- // Read another frame of data
- readFrame();
-
- return readBuffer_.read(buf, off, len);
- }
-
- @Override
- public byte[] getBuffer() {
- return readBuffer_.getBuffer();
- }
-
- @Override
- public int getBufferPosition() {
- return readBuffer_.getBufferPosition();
- }
-
- @Override
- public int getBytesRemainingInBuffer() {
- return readBuffer_.getBytesRemainingInBuffer();
- }
-
- @Override
- public void consumeBuffer(int len) {
- readBuffer_.consumeBuffer(len);
- }
-
- @Override
- public TConfiguration getConfiguration() {
- return null;
- }
-
- @Override
- public void updateKnownMessageSize(long l) throws TTransportException {}
-
- @Override
- public void checkReadBytesAvailable(long l) throws TTransportException {}
-
- public void clear() {
- readBuffer_.clear();
- }
-
- private final byte[] i32buf = new byte[4];
-
- private void readFrame() throws TTransportException {
- transport_.readAll(i32buf, 0, 4);
- int size = decodeFrameSize(i32buf);
-
- if (size < 0) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA, "Read a negative frame size (" +
size + ")!");
- }
-
- if (size > maxLength_) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA,
- "Frame size (" + size + ") larger than max length (" + maxLength_ +
")!");
- }
-
- byte[] buff = new byte[size];
- transport_.readAll(buff, 0, size);
- readBuffer_.reset(buff);
- }
-
- public void write(byte[] buf, int off, int len) throws TTransportException {
- writeBuffer_.write(buf, off, len);
- }
-
- @Override
- public void flush() throws TTransportException {
- byte[] buf = writeBuffer_.get();
- int len = writeBuffer_.len();
- writeBuffer_.reset();
-
- encodeFrameSize(len, i32buf);
- transport_.write(i32buf, 0, 4);
- transport_.write(buf, 0, len);
- transport_.flush();
- }
-
- public static final void encodeFrameSize(final int frameSize, final byte[]
buf) {
- buf[0] = (byte) (0xff & (frameSize >> 24));
- buf[1] = (byte) (0xff & (frameSize >> 16));
- buf[2] = (byte) (0xff & (frameSize >> 8));
- buf[3] = (byte) (0xff & (frameSize));
- }
-
- public static final int decodeFrameSize(final byte[] buf) {
- return ((buf[0] & 0xff) << 24)
- | ((buf[1] & 0xff) << 16)
- | ((buf[2] & 0xff) << 8)
- | ((buf[3] & 0xff));
- }
-}
diff --git
a/externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
b/kyuubi-hive-jdbc/src/test/resources/log4j2-test.properties
similarity index 64%
copy from
externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
copy to kyuubi-hive-jdbc/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
---
a/externals/kyuubi-flink-sql-engine/src/test/resources/log4j2-test.properties
+++ b/kyuubi-hive-jdbc/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/kyuubi-metrics/src/test/resources/log4j2-test.properties
b/kyuubi-metrics/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
--- a/kyuubi-metrics/src/test/resources/log4j2-test.properties
+++ b/kyuubi-metrics/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git
a/kyuubi-server/src/main/scala/org/apache/kyuubi/client/KyuubiSyncThriftClient.scala
b/kyuubi-server/src/main/scala/org/apache/kyuubi/client/KyuubiSyncThriftClient.scala
index e3cca55..70c450b 100644
---
a/kyuubi-server/src/main/scala/org/apache/kyuubi/client/KyuubiSyncThriftClient.scala
+++
b/kyuubi-server/src/main/scala/org/apache/kyuubi/client/KyuubiSyncThriftClient.scala
@@ -22,7 +22,6 @@ import java.util.concurrent.locks.ReentrantLock
import scala.collection.JavaConverters._
import org.apache.hive.service.rpc.thrift._
-import org.apache.thrift.TConfiguration
import org.apache.thrift.protocol.{TBinaryProtocol, TProtocol}
import org.apache.thrift.transport.TSocket
@@ -258,7 +257,7 @@ private[kyuubi] object KyuubiSyncThriftClient {
val passwd = Option(password).filter(_.nonEmpty).getOrElse("anonymous")
val loginTimeout = conf.get(ENGINE_LOGIN_TIMEOUT).toInt
val requestTimeout = conf.get(ENGINE_REQUEST_TIMEOUT).toInt
- val tSocket = new TSocket(new TConfiguration, host, port, requestTimeout,
loginTimeout)
+ val tSocket = new TSocket(host, port, requestTimeout, loginTimeout)
val tTransport = PlainSASLHelper.getPlainTransport(user, passwd, tSocket)
tTransport.open()
val tProtocol = new TBinaryProtocol(tTransport)
diff --git
a/kyuubi-server/src/test/java/org/apache/thrift/transport/TFramedTransport.java
b/kyuubi-server/src/test/java/org/apache/thrift/transport/TFramedTransport.java
deleted file mode 100644
index 3777218..0000000
---
a/kyuubi-server/src/test/java/org/apache/thrift/transport/TFramedTransport.java
+++ /dev/null
@@ -1,185 +0,0 @@
-/*
- * 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.thrift.transport;
-
-import org.apache.thrift.TByteArrayOutputStream;
-import org.apache.thrift.TConfiguration;
-
-/**
- * This is based on libthrift-0.12.0 {@link TFramedTransport}. To fix class of
- * org.apache.thrift.transport.TFramedTransport not found after upgrading
libthrift.
- *
- * <p>TFramedTransport is a buffered TTransport that ensures a fully read
message every time by
- * preceding messages with a 4-byte frame size.
- */
-public class TFramedTransport extends TTransport {
-
- protected static final int DEFAULT_MAX_LENGTH = 16384000;
-
- private int maxLength_;
-
- /** Underlying transport */
- private TTransport transport_ = null;
-
- /** Buffer for output */
- private final TByteArrayOutputStream writeBuffer_ = new
TByteArrayOutputStream(1024);
-
- /** Buffer for input */
- private final TMemoryInputTransport readBuffer_ = new
TMemoryInputTransport(new byte[0]);
-
- public static class Factory extends TTransportFactory {
- private int maxLength_;
-
- public Factory() {
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public Factory(int maxLength) {
- maxLength_ = maxLength;
- }
-
- @Override
- public TTransport getTransport(TTransport base) throws TTransportException
{
- return new TFramedTransport(base, maxLength_);
- }
- }
-
- /** Constructor wraps around another transport */
- public TFramedTransport(TTransport transport, int maxLength) throws
TTransportException {
- transport_ = transport;
- maxLength_ = maxLength;
- }
-
- public TFramedTransport(TTransport transport) throws TTransportException {
- transport_ = transport;
- maxLength_ = TFramedTransport.DEFAULT_MAX_LENGTH;
- }
-
- public void open() throws TTransportException {
- transport_.open();
- }
-
- public boolean isOpen() {
- return transport_.isOpen();
- }
-
- public void close() {
- transport_.close();
- }
-
- public int read(byte[] buf, int off, int len) throws TTransportException {
- int got = readBuffer_.read(buf, off, len);
- if (got > 0) {
- return got;
- }
-
- // Read another frame of data
- readFrame();
-
- return readBuffer_.read(buf, off, len);
- }
-
- @Override
- public byte[] getBuffer() {
- return readBuffer_.getBuffer();
- }
-
- @Override
- public int getBufferPosition() {
- return readBuffer_.getBufferPosition();
- }
-
- @Override
- public int getBytesRemainingInBuffer() {
- return readBuffer_.getBytesRemainingInBuffer();
- }
-
- @Override
- public void consumeBuffer(int len) {
- readBuffer_.consumeBuffer(len);
- }
-
- @Override
- public TConfiguration getConfiguration() {
- return null;
- }
-
- @Override
- public void updateKnownMessageSize(long l) throws TTransportException {}
-
- @Override
- public void checkReadBytesAvailable(long l) throws TTransportException {}
-
- public void clear() {
- readBuffer_.clear();
- }
-
- private final byte[] i32buf = new byte[4];
-
- private void readFrame() throws TTransportException {
- transport_.readAll(i32buf, 0, 4);
- int size = decodeFrameSize(i32buf);
-
- if (size < 0) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA, "Read a negative frame size (" +
size + ")!");
- }
-
- if (size > maxLength_) {
- close();
- throw new TTransportException(
- TTransportException.CORRUPTED_DATA,
- "Frame size (" + size + ") larger than max length (" + maxLength_ +
")!");
- }
-
- byte[] buff = new byte[size];
- transport_.readAll(buff, 0, size);
- readBuffer_.reset(buff);
- }
-
- public void write(byte[] buf, int off, int len) throws TTransportException {
- writeBuffer_.write(buf, off, len);
- }
-
- @Override
- public void flush() throws TTransportException {
- byte[] buf = writeBuffer_.get();
- int len = writeBuffer_.len();
- writeBuffer_.reset();
-
- encodeFrameSize(len, i32buf);
- transport_.write(i32buf, 0, 4);
- transport_.write(buf, 0, len);
- transport_.flush();
- }
-
- public static final void encodeFrameSize(final int frameSize, final byte[]
buf) {
- buf[0] = (byte) (0xff & (frameSize >> 24));
- buf[1] = (byte) (0xff & (frameSize >> 16));
- buf[2] = (byte) (0xff & (frameSize >> 8));
- buf[3] = (byte) (0xff & (frameSize));
- }
-
- public static final int decodeFrameSize(final byte[] buf) {
- return ((buf[0] & 0xff) << 24)
- | ((buf[1] & 0xff) << 16)
- | ((buf[2] & 0xff) << 8)
- | ((buf[3] & 0xff));
- }
-}
diff --git a/kyuubi-server/src/test/resources/log4j2-test.properties
b/kyuubi-server/src/test/resources/log4j2-test.properties
index 116202f..73a9aa0 100644
--- a/kyuubi-server/src/test/resources/log4j2-test.properties
+++ b/kyuubi-server/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to INFO
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = info
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = info
diff --git
a/kyuubi-server/src/test/scala/org/apache/kyuubi/credentials/HiveDelegationTokenProviderSuite.scala
b/kyuubi-server/src/test/scala/org/apache/kyuubi/credentials/HiveDelegationTokenProviderSuite.scala
index 554d288..1bfed71 100644
---
a/kyuubi-server/src/test/scala/org/apache/kyuubi/credentials/HiveDelegationTokenProviderSuite.scala
+++
b/kyuubi-server/src/test/scala/org/apache/kyuubi/credentials/HiveDelegationTokenProviderSuite.scala
@@ -93,8 +93,7 @@ class HiveDelegationTokenProviderSuite extends
KerberizedTestHelper {
FileUtils.deleteDirectory(hadoopConfDir)
}
- // Ignore the test because LocalMetaServer can not work with Thrift 0.16.0.
- ignore("obtain hive delegation token") {
+ test("obtain hive delegation token") {
tryWithSecurityEnabled {
UserGroupInformation.loginUserFromKeytab(testPrincipal, testKeytab)
@@ -199,7 +198,7 @@ class
HadoopThriftAuthBridgeWithServerContextClassLoader(classloader: ClassLoade
class SetThreadContextClassLoaderProcess(wrapped: TProcessor) extends
TProcessor {
- override def process(in: TProtocol, out: TProtocol): Unit = {
+ override def process(in: TProtocol, out: TProtocol): Boolean = {
val origin = Thread.currentThread().getContextClassLoader
try {
Thread.currentThread().setContextClassLoader(classloader)
diff --git
a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerConnectionSuite.scala
b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerConnectionSuite.scala
index 93989ea..de811e8 100644
---
a/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerConnectionSuite.scala
+++
b/kyuubi-server/src/test/scala/org/apache/kyuubi/operation/KyuubiOperationPerConnectionSuite.scala
@@ -102,10 +102,8 @@ class KyuubiOperationPerConnectionSuite extends
WithKyuubiServer with HiveJDBCTe
val executeStmtResp = client.ExecuteStatement(executeStmtReq)
assert(executeStmtResp.getStatus.getStatusCode ===
TStatusCode.ERROR_STATUS)
assert(executeStmtResp.getOperationHandle === null)
- assert(executeStmtResp.getStatus.getErrorMessage.contains(
- "Caused by: java.net.SocketException: Broken pipe (Write failed)") ||
- executeStmtResp.getStatus.getErrorMessage.contains(
- "cancelled because SparkContext was shut down"))
+ assert(executeStmtResp.getStatus.getErrorMessage contains
+ "Caused by: java.net.SocketException: Broken pipe (Write failed)")
}
}
diff --git a/kyuubi-zookeeper/src/test/resources/log4j2-test.properties
b/kyuubi-zookeeper/src/test/resources/log4j2-test.properties
index 0c18971..3975a52 100644
--- a/kyuubi-zookeeper/src/test/resources/log4j2-test.properties
+++ b/kyuubi-zookeeper/src/test/resources/log4j2-test.properties
@@ -26,8 +26,17 @@ appender.console.name = STDOUT
appender.console.target = SYSTEM_OUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{HH:mm:ss.SSS} %p %c: %m%n
-appender.console.filter.a.type = ThresholdFilter
-appender.console.filter.a.level = fatal
+
+appender.console.filter.1.type = Filters
+
+appender.console.filter.1.a.type = ThresholdFilter
+appender.console.filter.1.a.level = fatal
+
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to
THRIFT-4805
+appender.console.filter.1.b.type = RegexFilter
+appender.console.filter.1.b.regex = .*Thrift error occurred during processing
of message.*
+appender.console.filter.1.b.onMatch = deny
+appender.console.filter.1.b.onMismatch = neutral
# File Appender
appender.file.type = File
@@ -35,6 +44,14 @@ appender.file.name = File
appender.file.fileName = target/unit-tests.log
appender.file.layout.type = PatternLayout
appender.file.layout.pattern = %d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
+
+appender.file.filter.1.type = Filters
+
+appender.file.filter.1.a.type = RegexFilter
+appender.file.filter.1.a.regex = .*Thrift error occurred during processing of
message.*
+appender.file.filter.1.a.onMatch = deny
+appender.file.filter.1.a.onMismatch = neutral
+
# Set the logger level of File Appender to DEBUG
-appender.file.filter.a.type = ThresholdFilter
-appender.file.filter.a.level = debug
+appender.file.filter.1.b.type = ThresholdFilter
+appender.file.filter.1.b.level = debug
diff --git a/pom.xml b/pom.xml
index 715cb33..fe7771d 100644
--- a/pom.xml
+++ b/pom.xml
@@ -103,6 +103,7 @@
<commons-lang3.version>3.10</commons-lang3.version>
<curator.version>2.12.0</curator.version>
<delta.version>1.1.0</delta.version>
+ <fb303.version>0.9.3</fb303.version>
<flink.version>1.14.3</flink.version>
<flink.archive.name>flink-${flink.version}-bin-scala_${scala.binary.version}.tgz</flink.archive.name>
<flink.archive.mirror>${apache.archive.dist}/flink/flink-${flink.version}</flink.archive.mirror>
@@ -125,6 +126,7 @@
<jline.version>0.9.94</jline.version>
<kubernetes-client.version>5.12.1</kubernetes-client.version>
<ldapsdk.version>5.1.4</ldapsdk.version>
+ <log4j.version>2.17.2</log4j.version>
<mysql.jdbc.version>8.0.27</mysql.jdbc.version>
<netty.version>4.1.73.Final</netty.version>
<parquet.version>1.10.1</parquet.version>
@@ -133,9 +135,7 @@
<scalatest.version>3.2.9</scalatest.version>
<scopt.version>4.0.1</scopt.version>
<slf4j.version>1.7.35</slf4j.version>
- <log4j.version>2.17.2</log4j.version>
- <fb303.version>0.9.3</fb303.version>
- <thrift.version>0.16.0</thrift.version>
+ <thrift.version>0.9.3</thrift.version>
<!--
DO NOT forget to change the following properties when change the
minor version of Spark:
`delta.version`, `iceberg.name`,
`maven.plugin.scalatest.exclude.tags`
@@ -531,6 +531,11 @@
<version>${kubernetes-client.version}</version>
</dependency>
+ <!--
+ because of THRIFT-4805, we don't upgrade to libthrift:0.12.0,
+ because of THRIFT-5274, we don't upgrade to libthrift:0.13.0,
+ so just keep libthrift:0.9.3
+ -->
<dependency>
<groupId>org.apache.thrift</groupId>
<artifactId>libfb303</artifactId>