Github user JoshRosen commented on a diff in the pull request:
https://github.com/apache/spark/pull/9991#discussion_r46207010
--- Diff:
sql/core/src/test/scala/org/apache/spark/sql/execution/ui/SQLListenerSuite.scala
---
@@ -343,6 +343,8 @@ class SQLListenerMemoryLeakSuite extends SparkFunSuite {
.set("spark.sql.ui.retainedExecutions", "50") // Set it to 50 to run
this test quickly
val sc = new SparkContext(conf)
try {
+ // Clear the sql listener created by a previous test suite.
+ SQLContext.clearSqlListener()
--- End diff --
[Over on the original PR, I
commented](https://github.com/apache/spark/pull/9297/files#r46203496) to ask
why `SQLContext.sqlListener` needs to be an `AtomicReference[SQLListener]`
instead of an `AtomicBoolean` or some other sort of atomic primitive. As far as
I can tell, we never access any methods or fields of the `sqlListener` that's
stored here, so if we only need to set something for compare-and-swap purposes
then I think we shouldn't use an `AtomicReference`, thereby avoiding the GC
issues that it causes.
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]