Saurabh Damle created SPARK-59776:
-------------------------------------

             Summary: Dynamic allocation shuffle tracking never releases 
executors when SQL shuffle file cleanup is enabled
                 Key: SPARK-59776
                 URL: https://issues.apache.org/jira/browse/SPARK-59776
             Project: Spark
          Issue Type: Bug
          Components: Spark Core, SQL
    Affects Versions: 4.3.0
            Reporter: Saurabh Damle


When `spark.sql.classic.shuffleDependency.fileCleanup.enabled` (or the 
connect/thriftserver
variants) is enabled, SQLExecution.cleanupShuffleDependencies removes shuffle 
files by calling
`sc.shuffleDriverComponents.removeShuffle` directly. This bypasses 
ContextCleaner, so
`CleanerListener.shuffleCleaned` is never invoked and ExecutorMonitor continues 
to consider
those shuffles active.

With `spark.dynamicAllocation.shuffleTracking.enabled=true` and the default 
(infinite)
`spark.dynamicAllocation.shuffleTracking.timeout`, executors that hold the 
(already deleted)
shuffle data are never released after actions like collect() / toPandas().

Proposed fix: notify ContextCleaner listeners when SQL cleanup removes shuffle 
files, so
ExecutorMonitor drops the shuffle IDs.

Reported in https://github.com/apache/spark/issues/59014



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to