I think I have the new patch ready, I just want to clarify a few things before going forward with it.
This clearly seems to tell us () that we need a subclass of TaskAttemptEvent - TaskAttemptContainerLaunchedEvent. We can put the shuffle-port as a payload of that event. Once you do that, the rest of the changes to TaskAttempt.java can be dropped.
I added in the subclass but I am not sure what changes to TaskAttempt.java can be dropped. Did you mean the other changes to TaskAttemptEvent.java can be dropped?
The TODO should have been deleted a while ago. It was there before I understood the code, and I was just marking where similar data was being used. Do you think I need to add something to the TaskCompletion events returned to the client?