Return-Path: Delivered-To: apmail-hadoop-core-commits-archive@www.apache.org Received: (qmail 71848 invoked from network); 5 May 2008 23:51:39 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.2) by minotaur.apache.org with SMTP; 5 May 2008 23:51:39 -0000 Received: (qmail 75845 invoked by uid 500); 5 May 2008 23:51:41 -0000 Delivered-To: apmail-hadoop-core-commits-archive@hadoop.apache.org Received: (qmail 75719 invoked by uid 500); 5 May 2008 23:51:41 -0000 Mailing-List: contact core-commits-help@hadoop.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: core-dev@hadoop.apache.org Delivered-To: mailing list core-commits@hadoop.apache.org Received: (qmail 75708 invoked by uid 99); 5 May 2008 23:51:41 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 May 2008 16:51:41 -0700 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Mon, 05 May 2008 23:50:48 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id CC8BE2388A35; Mon, 5 May 2008 16:51:08 -0700 (PDT) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r653638 - in /hadoop/core/trunk: CHANGES.txt src/java/org/apache/hadoop/metrics/util/MetricsIntValue.java src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java Date: Mon, 05 May 2008 23:51:08 -0000 To: core-commits@hadoop.apache.org From: cdouglas@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20080505235108.CC8BE2388A35@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: cdouglas Date: Mon May 5 16:51:08 2008 New Revision: 653638 URL: http://svn.apache.org/viewvc?rev=653638&view=rev Log: HADOOP-3085. Catch Exception in metrics util classes to ensure that misconfigured metrics don't prevent others from updating. (cdouglas) Modified: hadoop/core/trunk/CHANGES.txt hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsIntValue.java hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java Modified: hadoop/core/trunk/CHANGES.txt URL: http://svn.apache.org/viewvc/hadoop/core/trunk/CHANGES.txt?rev=653638&r1=653637&r2=653638&view=diff ============================================================================== --- hadoop/core/trunk/CHANGES.txt (original) +++ hadoop/core/trunk/CHANGES.txt Mon May 5 16:51:08 2008 @@ -165,6 +165,9 @@ HADOOP-2930. Make {start,stop}-balancer.sh work even if hadoop-daemon.sh is not in the PATH. (Spiros Papadimitriou via hairong) + HADOOP-3085. Catch Exception in metrics util classes to ensure that + misconfigured metrics don't prevent others from updating. (cdouglas) + Release 0.17.0 - Unreleased INCOMPATIBLE CHANGES Modified: hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsIntValue.java URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsIntValue.java?rev=653638&r1=653637&r2=653638&view=diff ============================================================================== --- hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsIntValue.java (original) +++ hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsIntValue.java Mon May 5 16:51:08 2008 @@ -18,7 +18,10 @@ package org.apache.hadoop.metrics.util; import org.apache.hadoop.metrics.MetricsRecord; +import org.apache.hadoop.util.StringUtils; +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * The MetricsIntValue class is for a metric that is not time varied @@ -28,6 +31,10 @@ * */ public class MetricsIntValue { + + protected static final Log LOG = + LogFactory.getLog("org.apache.hadoop.metrics.util"); + private String name; private int value; private boolean changed; @@ -69,8 +76,14 @@ * @param mr */ public synchronized void pushMetric(final MetricsRecord mr) { - if (changed) - mr.incrMetric(name, value); + if (changed) { + try { + mr.incrMetric(name, value); + } catch (Exception e) { + LOG.info("pushMetric failed for " + name + "\n" + + StringUtils.stringifyException(e)); + } + } changed = false; } } Modified: hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java?rev=653638&r1=653637&r2=653638&view=diff ============================================================================== --- hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java (original) +++ hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingInt.java Mon May 5 16:51:08 2008 @@ -18,6 +18,10 @@ package org.apache.hadoop.metrics.util; import org.apache.hadoop.metrics.MetricsRecord; +import org.apache.hadoop.util.StringUtils; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * The MetricsTimeVaryingInt class is for a metric that naturally @@ -30,6 +34,8 @@ */ public class MetricsTimeVaryingInt { + protected static final Log LOG = + LogFactory.getLog("org.apache.hadoop.metrics.util"); private String name; private int currentValue; @@ -76,7 +82,12 @@ */ public synchronized void pushMetric(final MetricsRecord mr) { intervalHeartBeat(); - mr.incrMetric(name, getPreviousIntervalValue()); + try { + mr.incrMetric(name, getPreviousIntervalValue()); + } catch (Exception e) { + LOG.info("pushMetric failed for " + name + "\n" + + StringUtils.stringifyException(e)); + } } Modified: hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java URL: http://svn.apache.org/viewvc/hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java?rev=653638&r1=653637&r2=653638&view=diff ============================================================================== --- hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java (original) +++ hadoop/core/trunk/src/java/org/apache/hadoop/metrics/util/MetricsTimeVaryingRate.java Mon May 5 16:51:08 2008 @@ -18,6 +18,10 @@ package org.apache.hadoop.metrics.util; import org.apache.hadoop.metrics.MetricsRecord; +import org.apache.hadoop.util.StringUtils; + +import org.apache.commons.logging.Log; +import org.apache.commons.logging.LogFactory; /** * The MetricsTimeVaryingRate class is for a rate based metric that @@ -30,6 +34,9 @@ */ public class MetricsTimeVaryingRate { + protected static final Log LOG = + LogFactory.getLog("org.apache.hadoop.metrics.util"); + static class Metrics { int numOperations = 0; long time = 0; // total time or average time @@ -125,8 +132,13 @@ */ public synchronized void pushMetric(final MetricsRecord mr) { intervalHeartBeat(); - mr.incrMetric(name + "_num_ops", getPreviousIntervalNumOps()); - mr.incrMetric(name + "_avg_time", (int)getPreviousIntervalAverageTime()); + try { + mr.incrMetric(name + "_num_ops", getPreviousIntervalNumOps()); + mr.incrMetric(name + "_avg_time", getPreviousIntervalNumOps()); + } catch (Exception e) { + LOG.info("pushMetric failed for " + name + "\n" + + StringUtils.stringifyException(e)); + } } /**