yew1eb commented on PR #3853:
URL: https://github.com/apache/celeborn/pull/3853#issuecomment-6567620870

   @venkata91 Thanks — done in f08309b.
   
   Confirmed: `context.shuffleIds` is written from the stage materialization 
callback in `AdaptiveSparkPlanExec` (`stage.plan.collect { case s: 
ShuffleExchangeLike => context.shuffleIds.put(s.shuffleId, true) }`), so it is 
independent of `spark.sql.exchange.reuse`, and it is still present in 4.1/4.2. 
Since this module also compiles against Spark 3.x, I resolve the accessor 
reflectively (same pattern as `isMaterialized`) and merge those ids with the 
stage-cache/tree-walk results. The existing `isAppShuffleRegistered` filter and 
the idempotent `removeShuffle` keep the union safe; Spark 3 keeps the 
documented GC fallback since the collection does not exist there.
   
   Test: added the dropped-stage case with `spark.sql.exchange.reuse=false` 
(the suite already disables `spark.cleaner.referenceTracking`), gated to Spark 
4.
   - Spark 4.0.3: `CelebornShuffleCleanupSuite` 16/16 passed.
   - Spark 3.5.9: 15/15 passed, the new case canceled.


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to