Skip to content

Conversation

@scottme
Copy link

@scottme scottme commented Dec 24, 2025

What changes were proposed in this pull request?

As stated in https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/lang/ref/Cleaner.html
The cleaning action could be a lambda but all too easily will capture the object reference, by referring to fields of the object being cleaned, preventing the object from becoming phantom reachable. Using a static nested class, as above, will avoid accidentally retaining the object reference.

For more details, and the test and analysis are in https://issues.apache.org/jira/browse/SPARK-54753

image

After running with Spark 4.0.1, the ArtififactManager is leaked, its referenced SessionState/SparkSession is as well leaked.

Why are the changes needed?

use a separate class to ref the cleanup state

Does this PR introduce any user-facing change?

No

How was this patch tested?

with test program in https://issues.apache.org/jira/browse/SPARK-54753, and use Visual VM to monitor the memory usage

Was this patch authored or co-authored using generative AI tooling?

No

@github-actions github-actions bot added the SQL label Dec 24, 2025
@scottme scottme changed the title fix memory leak in cleaner [SPARK-54753] [SPARK-54753] fix memory leak in cleaner Dec 24, 2025
@scottme scottme changed the title [SPARK-54753] fix memory leak in cleaner [SPARK-54753] fix memory leak in cleaner of artifactManager Dec 24, 2025
@scottme scottme changed the title [SPARK-54753] fix memory leak in cleaner of artifactManager [SPARK-54753] fix memory leak of ArtifactManager Dec 25, 2025
@scottme scottme changed the title [SPARK-54753] fix memory leak of ArtifactManager [SPARK-54753][SQL]fix memory leak of ArtifactManager Dec 25, 2025
Copy link

@rainbowxq rainbowxq left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good finding. Should not use lamda for cleaner here. It will hold a reference to ArtifactManager.

@rainbowxq
Copy link

Could you help review the code change. @hvanhovell @vicennial

Copy link
Contributor

@allisonwang-db allisonwang-db left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@scottme
Copy link
Author

scottme commented Dec 27, 2025

cc @zhengruifeng @panbingkun would you help take a look? thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants