HADOOP-13159. Fix potential NPE in Metrics2 source for DecayRpcScheduler. Contributed by Xiaoyu Yao.
This commit is contained in:
parent
0c6726e20d
commit
9478484845
@ -206,11 +206,6 @@ public DecayRpcScheduler(int numLevels, String ns, Configuration conf) {
|
||||
this.backOffResponseTimeThresholds =
|
||||
parseBackOffResponseTimeThreshold(ns, conf, numLevels);
|
||||
|
||||
// Setup delay timer
|
||||
Timer timer = new Timer();
|
||||
DecayTask task = new DecayTask(this, timer);
|
||||
timer.scheduleAtFixedRate(task, decayPeriodMillis, decayPeriodMillis);
|
||||
|
||||
// Setup response time metrics
|
||||
responseTimeTotalInCurrWindow = new AtomicLongArray(numLevels);
|
||||
responseTimeCountInCurrWindow = new AtomicLongArray(numLevels);
|
||||
@ -223,6 +218,11 @@ public DecayRpcScheduler(int numLevels, String ns, Configuration conf) {
|
||||
Preconditions.checkArgument(topUsersCount > 0,
|
||||
"the number of top users for scheduler metrics must be at least 1");
|
||||
|
||||
// Setup delay timer
|
||||
Timer timer = new Timer();
|
||||
DecayTask task = new DecayTask(this, timer);
|
||||
timer.scheduleAtFixedRate(task, decayPeriodMillis, decayPeriodMillis);
|
||||
|
||||
MetricsProxy prox = MetricsProxy.getInstance(ns, numLevels);
|
||||
prox.setDelegate(this);
|
||||
prox.registerMetrics2Source(ns);
|
||||
@ -821,9 +821,10 @@ private void addTopNCallerSummary(MetricsRecordBuilder rb) {
|
||||
final int topCallerCount = 10;
|
||||
TopN topNCallers = getTopCallers(topCallerCount);
|
||||
Map<Object, Integer> decisions = scheduleCacheRef.get();
|
||||
for (int i=0; i < topNCallers.size(); i++) {
|
||||
final int actualCallerCount = topNCallers.size();
|
||||
for (int i = 0; i < actualCallerCount; i++) {
|
||||
NameValuePair entry = topNCallers.poll();
|
||||
String topCaller = "Top." + (topCallerCount - i) + "." +
|
||||
String topCaller = "Top." + (actualCallerCount - i) + "." +
|
||||
"Caller(" + entry.getName() + ")";
|
||||
String topCallerVolume = topCaller + ".Volume";
|
||||
String topCallerPriority = topCaller + ".Priority";
|
||||
|
Loading…
Reference in New Issue
Block a user