HADOOP-11361. Fix a race condition in MetricsSourceAdapter.updateJmxCache. Contributed by Brahma Reddy Battula.
This commit is contained in:
parent
0e85044e26
commit
4356e8a5ef
@ -674,6 +674,9 @@ Release 2.8.0 - UNRELEASED
|
||||
HADOOP-11962. Sasl message with MD5 challenge text shouldn't be LOG out
|
||||
even in debug level. (Junping Du via wheat9)
|
||||
|
||||
HADOOP-11361. Fix a race condition in MetricsSourceAdapter.updateJmxCache.
|
||||
(Brahma Reddy Battula via ozawa)
|
||||
|
||||
Release 2.7.1 - UNRELEASED
|
||||
|
||||
INCOMPATIBLE CHANGES
|
||||
|
@ -154,31 +154,28 @@ public MBeanInfo getMBeanInfo() {
|
||||
|
||||
private void updateJmxCache() {
|
||||
boolean getAllMetrics = false;
|
||||
synchronized(this) {
|
||||
synchronized (this) {
|
||||
if (Time.now() - jmxCacheTS >= jmxCacheTTL) {
|
||||
// temporarilly advance the expiry while updating the cache
|
||||
jmxCacheTS = Time.now() + jmxCacheTTL;
|
||||
if (lastRecs == null) {
|
||||
getAllMetrics = true;
|
||||
}
|
||||
}
|
||||
else {
|
||||
} else {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
if (getAllMetrics) {
|
||||
MetricsCollectorImpl builder = new MetricsCollectorImpl();
|
||||
getMetrics(builder, true);
|
||||
}
|
||||
if (getAllMetrics) {
|
||||
MetricsCollectorImpl builder = new MetricsCollectorImpl();
|
||||
getMetrics(builder, true);
|
||||
}
|
||||
|
||||
synchronized(this) {
|
||||
updateAttrCache();
|
||||
if (getAllMetrics) {
|
||||
updateInfoCache();
|
||||
}
|
||||
jmxCacheTS = Time.now();
|
||||
lastRecs = null; // in case regular interval update is not running
|
||||
lastRecs = null; // in case regular interval update is not running
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user