Revert "MAPREDUCE-6199. AbstractCounters are not reset completely on deserialization (adhoot via rkanter)"
This reverts commit 390a7c12f5
.
This commit is contained in:
parent
e15f928295
commit
713349a9af
@ -307,10 +307,6 @@ public synchronized void readFields(DataInput in) throws IOException {
|
|||||||
fgroups.put(group.getName(), group);
|
fgroups.put(group.getName(), group);
|
||||||
}
|
}
|
||||||
int numGroups = WritableUtils.readVInt(in);
|
int numGroups = WritableUtils.readVInt(in);
|
||||||
if (!groups.isEmpty()) {
|
|
||||||
groups.clear();
|
|
||||||
limits.reset();
|
|
||||||
}
|
|
||||||
while (numGroups-- > 0) {
|
while (numGroups-- > 0) {
|
||||||
limits.checkGroups(groups.size() + 1);
|
limits.checkGroups(groups.size() + 1);
|
||||||
G group = groupFactory.newGenericGroup(
|
G group = groupFactory.newGenericGroup(
|
||||||
|
@ -124,15 +124,8 @@ public synchronized LimitExceededException violation() {
|
|||||||
return firstViolation;
|
return firstViolation;
|
||||||
}
|
}
|
||||||
|
|
||||||
// This allows initialization of global settings and not for an instance
|
|
||||||
public static synchronized void reset(Configuration conf) {
|
public static synchronized void reset(Configuration conf) {
|
||||||
isInited = false;
|
isInited = false;
|
||||||
init(conf);
|
init(conf);
|
||||||
}
|
}
|
||||||
|
|
||||||
// This allows resetting of an instance to allow reuse
|
|
||||||
public synchronized void reset() {
|
|
||||||
totalCounters = 0;
|
|
||||||
firstViolation = null;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
@ -17,12 +17,8 @@
|
|||||||
*/
|
*/
|
||||||
package org.apache.hadoop.mapreduce;
|
package org.apache.hadoop.mapreduce;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Random;
|
import java.util.Random;
|
||||||
|
|
||||||
import org.apache.hadoop.conf.Configuration;
|
|
||||||
import org.apache.hadoop.io.DataInputBuffer;
|
|
||||||
import org.apache.hadoop.io.DataOutputBuffer;
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
@ -74,40 +70,7 @@ public void testCounterValue() {
|
|||||||
testMaxGroups(new Counters());
|
testMaxGroups(new Counters());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test public void testResetOnDeserialize() throws IOException {
|
|
||||||
// Allow only one counterGroup
|
|
||||||
Configuration conf = new Configuration();
|
|
||||||
conf.setInt(MRJobConfig.COUNTER_GROUPS_MAX_KEY, 1);
|
|
||||||
Limits.init(conf);
|
|
||||||
|
|
||||||
Counters countersWithOneGroup = new Counters();
|
|
||||||
countersWithOneGroup.findCounter("firstOf1Allowed", "First group");
|
|
||||||
boolean caughtExpectedException = false;
|
|
||||||
try {
|
|
||||||
countersWithOneGroup.findCounter("secondIsTooMany", "Second group");
|
|
||||||
}
|
|
||||||
catch (LimitExceededException _) {
|
|
||||||
caughtExpectedException = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
assertTrue("Did not throw expected exception",
|
|
||||||
caughtExpectedException);
|
|
||||||
|
|
||||||
Counters countersWithZeroGroups = new Counters();
|
|
||||||
DataOutputBuffer out = new DataOutputBuffer();
|
|
||||||
countersWithZeroGroups.write(out);
|
|
||||||
|
|
||||||
DataInputBuffer in = new DataInputBuffer();
|
|
||||||
in.reset(out.getData(), out.getLength());
|
|
||||||
|
|
||||||
countersWithOneGroup.readFields(in);
|
|
||||||
|
|
||||||
// After reset one should be able to add a group
|
|
||||||
countersWithOneGroup.findCounter("firstGroupAfterReset", "After reset " +
|
|
||||||
"limit should be set back to zero");
|
|
||||||
}
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCountersIncrement() {
|
public void testCountersIncrement() {
|
||||||
Counters fCounters = new Counters();
|
Counters fCounters = new Counters();
|
||||||
|
Loading…
Reference in New Issue
Block a user