For this one I think we should also do explicit cleaning. When a shuffle is cleaned, can't we figure out the associated stages and include them in the cleanup message sent to the block manager? Since this is static the block manager could also just access and clean this.