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'>&lt;undefined&gt;</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'>&lt;undefined&gt;</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'>&lt;undefined&gt;</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>

Reply via email to