hensg opened a new pull request #27064: [SPARK-30246]OneForOneStreamManager 
might leak memory in connectionTerminated
URL: https://github.com/apache/spark/pull/27064
 
 
   ### What changes were proposed in this pull request?
   
   Remove all StreamStates from OneForOneStreamManager memory map first and, 
after that, releases all buffers from each removed StreamState
   
   ### Why are the changes needed?
   
   OneForOneStreamManager may not remove all StreamStates from memory map when 
a connection is terminated. A RuntimeException might be thrown in 
StreamState$buffers.next() by one of 
ExternalShuffleBlockResolver$getBlockData... breaking the loop through 
streams.entrySet() leaking memory.
   
   References:
   
https://github.com/apache/spark/blob/ee050ddbc6eb6bc08c7751a0eb00e7a05b011b52/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalBlockHandler.java#L319
   
   
https://github.com/apache/spark/blob/ee050ddbc6eb6bc08c7751a0eb00e7a05b011b52/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalBlockHandler.java#L357
   
   
https://github.com/apache/spark/blob/ee050ddbc6eb6bc08c7751a0eb00e7a05b011b52/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java#L195
   
   
https://github.com/apache/spark/blob/ee050ddbc6eb6bc08c7751a0eb00e7a05b011b52/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java#L208
   
   
https://github.com/apache/spark/blob/ee050ddbc6eb6bc08c7751a0eb00e7a05b011b52/common/network-shuffle/src/main/java/org/apache/spark/network/shuffle/ExternalShuffleBlockResolver.java#L330
   
   
   ### Does this PR introduce any user-facing change?
   No
   
   
   ### How was this patch tested?
   Unit test added

----------------------------------------------------------------
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.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

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

Reply via email to