Return-Path: X-Original-To: apmail-hbase-commits-archive@www.apache.org Delivered-To: apmail-hbase-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id D5E6B10999 for ; Thu, 13 Mar 2014 22:11:30 +0000 (UTC) Received: (qmail 97467 invoked by uid 500); 13 Mar 2014 22:11:29 -0000 Delivered-To: apmail-hbase-commits-archive@hbase.apache.org Received: (qmail 97429 invoked by uid 500); 13 Mar 2014 22:11:29 -0000 Mailing-List: contact commits-help@hbase.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@hbase.apache.org Delivered-To: mailing list commits@hbase.apache.org Received: (qmail 97421 invoked by uid 99); 13 Mar 2014 22:11:29 -0000 Received: from nike.apache.org (HELO nike.apache.org) (192.87.106.230) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 13 Mar 2014 22:11:29 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=5.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; Thu, 13 Mar 2014 22:11:26 +0000 Received: from eris.apache.org (localhost [127.0.0.1]) by eris.apache.org (Postfix) with ESMTP id 99B2A23889FD; Thu, 13 Mar 2014 22:11:04 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r1577338 - in /hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase: executor/EventHandler.java master/handler/MetaServerShutdownHandler.java Date: Thu, 13 Mar 2014 22:11:04 -0000 To: commits@hbase.apache.org From: stack@apache.org X-Mailer: svnmailer-1.0.9 Message-Id: <20140313221104.99B2A23889FD@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: stack Date: Thu Mar 13 22:11:04 2014 New Revision: 1577338 URL: http://svn.apache.org/r1577338 Log: HBASE-10476 HBase Master log grows very fast after stopped hadoop (due to connection exception) (Demai Ni) Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/MetaServerShutdownHandler.java Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java?rev=1577338&r1=1577337&r2=1577338&view=diff ============================================================================== --- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java (original) +++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/executor/EventHandler.java Thu Mar 13 22:11:04 2014 @@ -128,7 +128,7 @@ public abstract class EventHandler imple process(); if (getListener() != null) getListener().afterProcess(this); } catch(Throwable t) { - LOG.error("Caught throwable while processing event " + eventType, t); + handleException(t); } finally { chunk.close(); } @@ -217,4 +217,12 @@ public abstract class EventHandler imple public String getInformativeName() { return this.getClass().toString(); } + + /** + * Event exception handler, may be overridden + * @param t Throwable object + */ + protected void handleException(Throwable t) { + LOG.error("Caught throwable while processing event " + eventType, t); + } } Modified: hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/MetaServerShutdownHandler.java URL: http://svn.apache.org/viewvc/hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/MetaServerShutdownHandler.java?rev=1577338&r1=1577337&r2=1577338&view=diff ============================================================================== --- hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/MetaServerShutdownHandler.java (original) +++ hbase/branches/0.96/hbase-server/src/main/java/org/apache/hadoop/hbase/master/handler/MetaServerShutdownHandler.java Thu Mar 13 22:11:04 2014 @@ -32,14 +32,23 @@ import org.apache.hadoop.hbase.executor. import org.apache.hadoop.hbase.master.AssignmentManager; import org.apache.hadoop.hbase.master.DeadServer; import org.apache.hadoop.hbase.master.MasterServices; +import org.apache.hadoop.hbase.util.Threads; import org.apache.zookeeper.KeeperException; +import com.google.common.annotations.VisibleForTesting; + +import java.util.concurrent.atomic.AtomicInteger; + /** * Shutdown handler for the server hosting hbase:meta */ @InterfaceAudience.Private public class MetaServerShutdownHandler extends ServerShutdownHandler { private static final Log LOG = LogFactory.getLog(MetaServerShutdownHandler.class); + private AtomicInteger eventExceptionCount = new AtomicInteger(0); + @VisibleForTesting + static final int SHOW_STRACKTRACE_FREQUENCY = 100; + public MetaServerShutdownHandler(final Server server, final MasterServices services, final DeadServer deadServers, final ServerName serverName) { @@ -114,8 +123,10 @@ public class MetaServerShutdownHandler e this.deadServers.finish(serverName); } } - + super.process(); + // Clear this counter on successful handling. + this.eventExceptionCount.set(0); } @Override @@ -194,4 +205,20 @@ public class MetaServerShutdownHandler e } return getClass().getSimpleName() + "-" + name + "-" + getSeqid(); } -} + + @Override + protected void handleException(Throwable t) { + int count = eventExceptionCount.getAndIncrement(); + if (count < 0) count = eventExceptionCount.getAndSet(0); + if (count > SHOW_STRACKTRACE_FREQUENCY) { // Too frequent, let's slow reporting + Threads.sleep(1000); + } + if (count % SHOW_STRACKTRACE_FREQUENCY == 0) { + LOG.error("Caught " + eventType + ", count=" + this.eventExceptionCount, t); + } else { + LOG.error("Caught " + eventType + ", count=" + this.eventExceptionCount + + "; " + t.getMessage() + "; stack trace shows every " + SHOW_STRACKTRACE_FREQUENCY + + "th time."); + } + } +} \ No newline at end of file