I think mapStartTime < report.getStartTime() will return the start time of the last map task, not the first map task's start time. Maybe the last map task waited for a long time before it started.