The original circumstances under which this bug was revealed was
HADOOP-5285. With the above patch, and without patch for HADOOP-5285, the symptom of stuck reducers waiting for output from already failed tasks doesn't seem to be visible any more.
The patch uploaded prevents tasks from wrongly going from FAILED state to any of UNASSIGNED, RUNNING, COMMI_PENDING or SUCCEEDED and looks fine.
`ant test` and `ant test-patch` passed successfully on my local machine. +1 overall.