diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/ProportionalCapacityPreemptionPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/ProportionalCapacityPreemptionPolicy.java index 7ea73d9..dacc4d1 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/ProportionalCapacityPreemptionPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/main/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/ProportionalCapacityPreemptionPolicy.java @@ -221,10 +221,10 @@ private void containerBasedPreemptOrKill(CSQueue root, ContainerPreemptEventType.KILL_CONTAINER)); preempted.remove(container); } else { - //otherwise just send preemption events - dispatcher.handle(new ContainerPreemptEvent(e.getKey(), container, - ContainerPreemptEventType.PREEMPT_CONTAINER)); if (preempted.get(container) == null) { + //otherwise just send preemption events + dispatcher.handle(new ContainerPreemptEvent(e.getKey(), container, + ContainerPreemptEventType.PREEMPT_CONTAINER)); preempted.put(container, clock.getTime()); } } diff --git a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java index 713962b..b184649 100644 --- a/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java +++ b/hadoop-yarn-project/hadoop-yarn/hadoop-yarn-server/hadoop-yarn-server-resourcemanager/src/test/java/org/apache/hadoop/yarn/server/resourcemanager/monitor/capacity/TestProportionalCapacityPreemptionPolicy.java @@ -187,14 +187,14 @@ public void testExpireKill() { // requests reiterated when(mClock.getTime()).thenReturn(killTime / 2); policy.editSchedule(); - verify(mDisp, times(20)).handle(argThat(new IsPreemptionRequestFor(appC))); + verify(mDisp, times(10)).handle(argThat(new IsPreemptionRequestFor(appC))); // kill req sent when(mClock.getTime()).thenReturn(killTime + 1); policy.editSchedule(); - verify(mDisp, times(30)).handle(evtCaptor.capture()); + verify(mDisp, times(20)).handle(evtCaptor.capture()); List events = evtCaptor.getAllValues(); - for (ContainerPreemptEvent e : events.subList(20, 30)) { + for (ContainerPreemptEvent e : events.subList(10, 20)) { assertEquals(appC, e.getAppId()); assertEquals(KILL_CONTAINER, e.getType()); }