Skip to content

Commit

Permalink
[SPARK-46577][SQL] HiveMetastoreLazyInitializationSuite leaks hive's …
Browse files Browse the repository at this point in the history
…SessionState

### What changes were proposed in this pull request?

The upcoming tests with the new hive configurations will have no effect due to the leaked SessionState.

```
06:21:12.848 pool-1-thread-1 INFO ThriftServerWithSparkContextInHttpSuite: Trying to start HiveThriftServer2: mode=http, attempt=0
....
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service:OperationManager is inited.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service:SessionManager is inited.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service: CLIService is inited.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service:ThriftBinaryCLIService is inited.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service: HiveServer2 is inited.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service:OperationManager is started.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service:SessionManager is started.
06:21:12.851 pool-1-thread-1 INFO AbstractService: Service: CLIService is started.
06:21:12.852 pool-1-thread-1 INFO AbstractService: Service:ThriftBinaryCLIService is started.
06:21:12.852 pool-1-thread-1 INFO ThriftCLIService: Starting ThriftBinaryCLIService on port 10000 with 5...500 worker threads
06:21:12.852 pool-1-thread-1 INFO AbstractService: Service:HiveServer2 is started.
```

As the logs above revealed, ThriftServerWithSparkContextInHttpSuite started the ThriftBinaryCLIService instead of the ThriftHttpCLIService. This is because in HiveClientImpl, the new configurations are only applied to hive conf during initializing but not for existing ones.

This cause ThriftServerWithSparkContextInHttpSuite retrying or even aborting.

### Why are the changes needed?

Fix flakiness in tests

### Does this PR introduce _any_ user-facing change?

no
### How was this patch tested?

ran tests locally with the hive-thriftserver module locally,
### Was this patch authored or co-authored using generative AI tooling?
no

Closes apache#44578 from yaooqinn/SPARK-46577.

Authored-by: Kent Yao <[email protected]>
Signed-off-by: Dongjoon Hyun <[email protected]>
  • Loading branch information
yaooqinn authored and dongjoon-hyun committed Jan 3, 2024
1 parent 3b1d843 commit 605fecd
Showing 1 changed file with 6 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,8 @@

package org.apache.spark.sql.hive

import org.apache.hadoop.hive.ql.metadata.Hive
import org.apache.hadoop.hive.ql.session.SessionState
import org.apache.logging.log4j.LogManager
import org.apache.logging.log4j.core.Logger

Expand Down Expand Up @@ -69,6 +71,10 @@ class HiveMetastoreLazyInitializationSuite extends SparkFunSuite {
} finally {
Thread.currentThread().setContextClassLoader(originalClassLoader)
spark.sparkContext.setLogLevel(originalLevel.toString)
SparkSession.clearActiveSession()
SparkSession.clearDefaultSession()
SessionState.detachSession()
Hive.closeCurrent()
spark.stop()
}
}
Expand Down

0 comments on commit 605fecd

Please sign in to comment.