This is an automated email from the ASF dual-hosted git repository.

dongjoon pushed a commit to branch branch-3.1
in repository https://gitbox.apache.org/repos/asf/spark.git


The following commit(s) were added to refs/heads/branch-3.1 by this push:
     new 8cc118b  [SPARK-34128][SQL] Suppress undesirable TTransportException 
warnings involved in THRIFT-4805
8cc118b is described below

commit 8cc118b95c809468d64983d469a3923f374abd2b
Author: Kent Yao <y...@apache.org>
AuthorDate: Fri Mar 19 21:15:28 2021 -0700

    [SPARK-34128][SQL] Suppress undesirable TTransportException warnings 
involved in THRIFT-4805
    
    ### What changes were proposed in this pull request?
    
    Since Spark 3.0, the `libthrift` has been bumped up from 0.9.3 to 0.12.0.
    
    Due to THRIFT-4805, The SparkThrift Server will print annoying TExceptions. 
For example, the current thrift server module test in Github action workflow 
outputs more than 200MB of data for this error only
    ```java
    org.apache.thrift.transport.TTransportException
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:374)
        at 
org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:451)
        at 
org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:433)
        at 
org.apache.thrift.transport.TSaslServerTransport.read(TSaslServerTransport.java:43)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:53)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    ```
    
    I checked the latest `hive-service-rpc` module in the maven center,  
https://mvnrepository.com/artifact/org.apache.hive/hive-service-rpc/3.1.2.  It 
still uses the 0.9.3 version.
    
    Unfortunately, I tried the newly released `libthrift 0.14.1`(w/o shading 
it), it breaks the metastore client side.
    
    ```scala
    java.lang.NoSuchMethodError: 
org.apache.thrift.transport.TSocket.<init>(Ljava/lang/String;II)V
    ```
    On the Thrift side, they just muted it see 
https://issues.apache.org/jira/browse/THRIFT-4805
    
    So in this PR, I add a filter to suppress the warning
    
    ### Why are the changes needed?
    
    if the log is too large, the Github action might truncate it. We need to 
reduce useless output.
    
    ### Does this PR introduce _any_ user-facing change?
    
    no
    
    ### How was this patch tested?
    
    ```build/sbt "hive-thriftserver/testOnly *ThriftServerQueryTestSuite" 
-Phive-thriftserver``` locally
    
    #### before
    
    ```java
    [info] - count.sql (1 second, 537 milliseconds)
    [info] - decimalArithmeticOperations.sql !!! IGNORED !!!
    14:09:53.233 ERROR org.apache.thrift.server.TThreadPoolServer: Thrift error 
occurred during processing of message.
    org.apache.thrift.transport.TTransportException
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:374)
        at 
org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:451)
        at 
org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:433)
        at 
org.apache.thrift.transport.TSaslServerTransport.read(TSaslServerTransport.java:43)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:53)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    [info] - group-analytics.sql (4 seconds, 282 milliseconds)
    
    [info] - csv-functions.sql (400 milliseconds)
    14:09:24.234 ERROR org.apache.thrift.server.TThreadPoolServer: Thrift error 
occurred during processing of message.
    org.apache.thrift.transport.TTransportException
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:374)
        at 
org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:451)
        at 
org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:433)
        at 
org.apache.thrift.transport.TSaslServerTransport.read(TSaslServerTransport.java:43)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:53)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    [info] - datetime-formatting-invalid.sql (349 milliseconds)
    14:09:26.544 ERROR org.apache.thrift.server.TThreadPoolServer: Thrift error 
occurred during processing of message.
    org.apache.thrift.transport.TTransportException
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:374)
        at 
org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:451)
        at 
org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:433)
        at 
org.apache.thrift.transport.TSaslServerTransport.read(TSaslServerTransport.java:43)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:53)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    [info] - except.sql (2 seconds, 309 milliseconds)
    14:09:27.782 ERROR org.apache.thrift.server.TThreadPoolServer: Thrift error 
occurred during processing of message.
    org.apache.thrift.transport.TTransportException
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:374)
        at 
org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:451)
        at 
org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:433)
        at 
org.apache.thrift.transport.TSaslServerTransport.read(TSaslServerTransport.java:43)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:53)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    [info] - string-functions.sql (1 second, 237 milliseconds)
    14:09:27.835 WARN org.apache.spark.sql.execution.datasources.DataSource: 
All paths were ignored:
    
    14:09:29.266 ERROR org.apache.thrift.server.TThreadPoolServer: Thrift error 
occurred during processing of message.
    org.apache.thrift.transport.TTransportException
        at 
org.apache.thrift.transport.TIOStreamTransport.read(TIOStreamTransport.java:132)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.transport.TSaslTransport.readLength(TSaslTransport.java:374)
        at 
org.apache.thrift.transport.TSaslTransport.readFrame(TSaslTransport.java:451)
        at 
org.apache.thrift.transport.TSaslTransport.read(TSaslTransport.java:433)
        at 
org.apache.thrift.transport.TSaslServerTransport.read(TSaslServerTransport.java:43)
        at org.apache.thrift.transport.TTransport.readAll(TTransport.java:86)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readAll(TBinaryProtocol.java:425)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readI32(TBinaryProtocol.java:321)
        at 
org.apache.thrift.protocol.TBinaryProtocol.readMessageBegin(TBinaryProtocol.java:225)
        at org.apache.thrift.TBaseProcessor.process(TBaseProcessor.java:27)
        at 
org.apache.hive.service.auth.TSetIpAddressProcessor.process(TSetIpAddressProcessor.java:53)
        at 
org.apache.thrift.server.TThreadPoolServer$WorkerProcess.run(TThreadPoolServer.java:310)
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
        at java.lang.Thread.run(Thread.java:748)
    
    ```
    
    #### after
    
    ```java
    
    [info] - null-propagation.sql (181 milliseconds)
    [info] - operators.sql (1 second, 772 milliseconds)
    [info] - change-column.sql (241 milliseconds)
    [info] - count.sql (1 second, 665 milliseconds)
    [info] - decimalArithmeticOperations.sql !!! IGNORED !!!
    [info] - group-analytics.sql (3 seconds, 926 milliseconds)
    [info] - inline-table.sql (247 milliseconds)
    [info] - comparator.sql (223 milliseconds)
    [info] - show-tblproperties.sql (148 milliseconds)
    [info] - timezone.sql (105 milliseconds)
    [info] - parse-schema-string.sql (193 milliseconds)
    ```
    
    Closes #31895 from yaooqinn/SPARK-34128-2.
    
    Authored-by: Kent Yao <y...@apache.org>
    Signed-off-by: Dongjoon Hyun <dh...@apple.com>
    (cherry picked from commit 2cdedef2a05cd0ae402a6cd8ce96393870f944ce)
    Signed-off-by: Dongjoon Hyun <dh...@apple.com>
---
 conf/log4j.properties.template                            | 6 ++++++
 sql/hive-thriftserver/src/test/resources/log4j.properties | 8 ++++++++
 2 files changed, 14 insertions(+)

diff --git a/conf/log4j.properties.template b/conf/log4j.properties.template
index e91595d..dc7b9ea 100644
--- a/conf/log4j.properties.template
+++ b/conf/log4j.properties.template
@@ -38,3 +38,9 @@ log4j.logger.parquet=ERROR
 # SPARK-9183: Settings to avoid annoying messages when looking up nonexistent 
UDFs in SparkSQL with Hive support
 log4j.logger.org.apache.hadoop.hive.metastore.RetryingHMSHandler=FATAL
 log4j.logger.org.apache.hadoop.hive.ql.exec.FunctionRegistry=ERROR
+
+# For deploying Spark ThriftServer
+# SPARK-34128:Suppress undesirable TTransportException warnings involved in 
THRIFT-4805
+log4j.appender.console.filter.1=org.apache.log4j.varia.StringMatchFilter
+log4j.appender.console.filter.1.StringToMatch=Thrift error occurred during 
processing of message
+log4j.appender.console.filter.1.AcceptOnMatch=false
diff --git a/sql/hive-thriftserver/src/test/resources/log4j.properties 
b/sql/hive-thriftserver/src/test/resources/log4j.properties
index a73946c..ad799de 100644
--- a/sql/hive-thriftserver/src/test/resources/log4j.properties
+++ b/sql/hive-thriftserver/src/test/resources/log4j.properties
@@ -24,6 +24,10 @@ log4j.appender.CA.layout=org.apache.log4j.PatternLayout
 log4j.appender.CA.layout.ConversionPattern=%d{HH:mm:ss.SSS} %p %c: %m%n
 log4j.appender.CA.Threshold = WARN
 
+# SPARK-34128: Suppress undesirable TTransportException warnings, due to 
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
 
 #File Appender
 log4j.appender.FA=org.apache.log4j.FileAppender
@@ -32,6 +36,10 @@ log4j.appender.FA.file=target/unit-tests.log
 log4j.appender.FA.layout=org.apache.log4j.PatternLayout
 log4j.appender.FA.layout.ConversionPattern=%d{HH:mm:ss.SSS} %t %p %c{1}: %m%n
 
+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
+
 # Set the logger level of File Appender to WARN
 log4j.appender.FA.Threshold = DEBUG
 

---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@spark.apache.org
For additional commands, e-mail: commits-h...@spark.apache.org

Reply via email to