[ 
https://issues.apache.org/jira/browse/MAPREDUCE-1845?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12882755#action_12882755
 ] 

Scott Chen commented on MAPREDUCE-1845:
---------------------------------------

I have carefully read the code. I think this bug is not that easy to trigger.
Because when update tasksDueToMinShare and tasksDueToFairShare, tasksToPreempt 
will check
{code}
curTime - sched.getLastTimeAtMinShare() > minShareTimeout
curTime - sched.getLastTimeAtHalfFairShare() > fairShareTimeout
{code}

So they may turn negative only when they got the timeout and over-scheduled at 
the same time.
And this two thing must happen between update() and preemptIfNecessary():
{code}
update()
// spent lots of time here so we get timeout
// get over-scheduled tasks
preemptIfNecessary()
{code}

It is not likely to happen unless people set starving timeout to be very short.
But it is still good to fix it.
I will write a unit test to simulate this situation.

> FairScheduler.tasksToPeempt() can return negative number
> --------------------------------------------------------
>
>                 Key: MAPREDUCE-1845
>                 URL: https://issues.apache.org/jira/browse/MAPREDUCE-1845
>             Project: Hadoop Map/Reduce
>          Issue Type: Bug
>          Components: contrib/fair-share
>    Affects Versions: 0.22.0
>            Reporter: Scott Chen
>            Assignee: Scott Chen
>             Fix For: 0.22.0
>
>         Attachments: MAPREDUCE-1845.20100717.txt
>
>
> This method can return negative number. This will cause the preemption to 
> under-preempt.
> The bug was discovered by Joydeep.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to