Author: tedyu
Date: Sat Sep 24 14:46:29 2011
New Revision: 1175172

URL: http://svn.apache.org/viewvc?rev=1175172&view=rev
Log:
HBASE-4014 revert due to a failed test

Removed:
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithAbort.java
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestMasterCoprocessorExceptionWithRemove.java
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithAbort.java
    
hbase/trunk/src/test/java/org/apache/hadoop/hbase/coprocessor/TestRegionServerCoprocessorExceptionWithRemove.java
Modified:
    hbase/trunk/CHANGES.txt
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
    hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
    
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
    hbase/trunk/src/main/resources/hbase-default.xml

Modified: hbase/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/hbase/trunk/CHANGES.txt?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- hbase/trunk/CHANGES.txt (original)
+++ hbase/trunk/CHANGES.txt Sat Sep 24 14:46:29 2011
@@ -537,8 +537,6 @@ Release 0.92.0 - Unreleased
                next() unless the next KV is needed
                (Kannan Muthukkaruppan)
    HBASE-4280  [replication] ReplicationSink can deadlock itself via handlers
-   HBASE-4014  Coprocessors: Flag the presence of coprocessors in logged
-               exceptions (Eugene Koontz)
 
   TASKS
    HBASE-3559  Move report of split to master OFF the heartbeat channel

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/coprocessor/CoprocessorHost.java
 Sat Sep 24 14:46:29 2011
@@ -27,7 +27,6 @@ import org.apache.hadoop.fs.FileSystem;
 import org.apache.hadoop.fs.Path;
 import org.apache.hadoop.hbase.Coprocessor;
 import org.apache.hadoop.hbase.CoprocessorEnvironment;
-import org.apache.hadoop.hbase.DoNotRetryIOException;
 import org.apache.hadoop.hbase.HBaseConfiguration;
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.client.*;
@@ -36,7 +35,6 @@ import org.apache.hadoop.hbase.ipc.Copro
 import org.apache.hadoop.hbase.util.Bytes;
 import org.apache.hadoop.hbase.util.SortedCopyOnWriteSet;
 import org.apache.hadoop.hbase.util.VersionInfo;
-import org.apache.hadoop.hbase.Server;
 
 import java.io.File;
 import java.io.IOException;
@@ -73,12 +71,6 @@ public abstract class CoprocessorHost<E 
     pathPrefix = UUID.randomUUID().toString();
   }
 
-  private static Set<String> coprocessorNames =
-      Collections.synchronizedSet(new HashSet<String>());
-  public static Set<String> getLoadedCoprocessors() {
-      return coprocessorNames;
-  }
-
   /**
    * Load system coprocessors. Read the class names from configuration.
    * Called by constructor.
@@ -164,7 +156,7 @@ public abstract class CoprocessorHost<E 
       // load the jar and get the implementation main class
       String cp = System.getProperty("java.class.path");
       // NOTE: Path.toURL is deprecated (toURI instead) but the URLClassLoader
-      // unsurprisingly wants URLs, not URIs; so we will use the deprecated
+      // unsuprisingly wants URLs, not URIs; so we will use the deprecated
       // method which returns URLs for as long as it is available
       List<URL> paths = new ArrayList<URL>();
       paths.add(new File(dst.toString()).getCanonicalFile().toURL());
@@ -221,9 +213,6 @@ public abstract class CoprocessorHost<E 
     if (env instanceof Environment) {
       ((Environment)env).startup();
     }
-    // HBASE-4014: maintain list of loaded coprocessors for later crash 
analysis
-    // if server (master or regionserver) aborts.
-    coprocessorNames.add(implClass.getName());
     return env;
   }
 
@@ -587,65 +576,4 @@ public abstract class CoprocessorHost<E 
       return new HTableWrapper(tableName);
     }
   }
-
-  protected void abortServer(final String service,
-      final Server server,
-      final CoprocessorEnvironment environment,
-      final Throwable e) {
-    String coprocessorName = (environment.getInstance()).toString();
-    server.abort("Aborting service: " + service + " running on : "
-            + server.getServerName() + " because coprocessor: "
-            + coprocessorName + " threw an exception.", e);
-  }
-
-  protected void abortServer(final CoprocessorEnvironment environment,
-                             final Throwable e) {
-    String coprocessorName = (environment.getInstance()).toString();
-    LOG.error("The coprocessor: " + coprocessorName + " threw an unexpected " +
-        "exception: " + e + ", but there's no specific implementation of " +
-        " abortServer() for this coprocessor's environment.");
-  }
-
-
-  /**
-   * This is used by coprocessor hooks which are declared to throw IOException
-   * (or its subtypes). For such hooks, we should handle throwable objects
-   * depending on the Throwable's type. Those which are instances of
-   * IOException should be passed on to the client. This is in conformance with
-   * the HBase idiom regarding IOException: that it represents a circumstance
-   * that should be passed along to the client for its own handling. For
-   * example, a coprocessor that implements access controls would throw a
-   * subclass of IOException, such as AccessDeniedException, in its preGet()
-   * method to prevent an unauthorized client's performing a Get on a 
particular
-   * table.
-   * @param env Coprocessor Environment
-   * @param e Throwable object thrown by coprocessor.
-   * @exception IOException Exception
-   */
-  protected void handleCoprocessorThrowable(final CoprocessorEnvironment env,
-                                            final Throwable e)
-      throws IOException {
-    if (e instanceof IOException) {
-      throw (IOException)e;
-    }
-    // If we got here, e is not an IOException. A loaded coprocessor has a
-    // fatal bug, and the server (master or regionserver) should remove the
-    // faulty coprocessor from its set of active coprocessors. Setting
-    // 'hbase.coprocessor.abortonerror' to true will cause abortServer(),
-    // which may be useful in development and testing environments where
-    // 'failing fast' for error analysis is desired.
-    if 
(env.getConfiguration().getBoolean("hbase.coprocessor.abortonerror",false)) {
-      // server is configured to abort.
-      abortServer(env, e);
-    } else {
-      LOG.error("Removing coprocessor '" + env.toString() + "' from " +
-          "environment because it threw:  " + e,e);
-      coprocessors.remove(env);
-      throw new DoNotRetryIOException("Coprocessor: '" + env.toString() +
-          "' threw: '" + e + "' and has been removed" + "from the active " +
-          "coprocessor set.", e);
-    }
-  }
 }
-
-

Modified: hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java 
(original)
+++ hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/HMaster.java Sat 
Sep 24 14:46:29 2011
@@ -56,7 +56,6 @@ import org.apache.hadoop.hbase.client.Ge
 import org.apache.hadoop.hbase.client.MetaScanner;
 import org.apache.hadoop.hbase.client.Result;
 import org.apache.hadoop.hbase.client.MetaScanner.MetaScannerVisitor;
-import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
 import org.apache.hadoop.hbase.executor.ExecutorService;
 import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType;
 import org.apache.hadoop.hbase.ipc.HBaseRPC;
@@ -1188,25 +1187,8 @@ implements HMasterInterface, HMasterRegi
     return fileSystemManager.getClusterId();
   }
 
-  /**
-   * The set of loaded coprocessors is stored in a static set. Since it's
-   * statically allocated, it does not require that HMaster's cpHost be
-   * initialized prior to accessing it.
-   * @return a String representation of the set of names of the loaded
-   * coprocessors.
-   */
-  public static String getLoadedCoprocessors() {
-    return CoprocessorHost.getLoadedCoprocessors().toString();
-  }
-
   @Override
   public void abort(final String msg, final Throwable t) {
-    if (cpHost != null) {
-      // HBASE-4014: dump a list of loaded coprocessors.
-      LOG.fatal("Master server abort: loaded coprocessors are: " +
-          getLoadedCoprocessors());
-    }
-
     if (abortNow(msg, t)) {
       if (t != null) LOG.fatal(msg, t);
       else LOG.fatal(msg);

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/master/MasterCoprocessorHost.java
 Sat Sep 24 14:46:29 2011
@@ -20,8 +20,6 @@
 
 package org.apache.hadoop.hbase.master;
 
-import org.apache.commons.logging.Log;
-import org.apache.commons.logging.LogFactory;
 import org.apache.hadoop.conf.Configuration;
 import org.apache.hadoop.hbase.*;
 import org.apache.hadoop.hbase.coprocessor.*;
@@ -36,8 +34,6 @@ import java.io.IOException;
 public class MasterCoprocessorHost
     extends CoprocessorHost<MasterCoprocessorHost.MasterEnvironment> {
 
-  private static final Log LOG = 
LogFactory.getLog(MasterCoprocessorHost.class);
-
   /**
    * Coprocessor environment extension providing access to master related
    * services.
@@ -73,11 +69,6 @@ public class MasterCoprocessorHost
         masterServices);
   }
 
-  @Override
-  protected void abortServer(final CoprocessorEnvironment env, final Throwable 
e) {
-    abortServer("master", masterServices, env, e);
-  }
-
   /* Implementation of hooks for invoking MasterObservers */
   void preCreateTable(HTableDescriptor htd, HRegionInfo[] regions)
     throws IOException {
@@ -85,11 +76,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preCreateTable(ctx, htd, 
regions);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preCreateTable(ctx, htd, regions);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -103,11 +90,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-            ((MasterObserver)env.getInstance()).postCreateTable(ctx, htd, 
regions);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postCreateTable(ctx, htd, regions);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -120,11 +103,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preDeleteTable(ctx, tableName);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preDeleteTable(ctx, tableName);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -137,11 +116,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postDeleteTable(ctx, tableName);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postDeleteTable(ctx, tableName);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -155,12 +130,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preModifyTable(ctx, tableName,
-              htd);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preModifyTable(ctx, tableName, 
htd);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -174,12 +144,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postModifyTable(ctx, tableName,
-              htd);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postModifyTable(ctx, tableName, 
htd);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -194,11 +159,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preAddColumn(ctx, tableName, 
column);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preAddColumn(ctx, tableName, 
column);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -214,12 +175,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postAddColumn(ctx, tableName,
-              column);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postAddColumn(ctx, tableName, 
column);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -234,12 +190,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preModifyColumn(
+        ((MasterObserver)env.getInstance()).preModifyColumn(
             ctx, tableName, descriptor);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -255,12 +207,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postModifyColumn(
-              ctx, tableName, descriptor);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postModifyColumn(
+            ctx, tableName, descriptor);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -275,11 +223,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preDeleteColumn(ctx, tableName, 
c);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preDeleteColumn(ctx, tableName, c);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -295,12 +239,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postDeleteColumn(ctx, tableName,
-              c);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postDeleteColumn(ctx, tableName, 
c);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -313,11 +252,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preEnableTable(ctx, tableName);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preEnableTable(ctx, tableName);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -330,11 +265,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postEnableTable(ctx, tableName);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postEnableTable(ctx, tableName);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -347,11 +278,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preDisableTable(ctx, tableName);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preDisableTable(ctx, tableName);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -364,11 +291,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postDisableTable(ctx, tableName);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postDisableTable(ctx, tableName);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -383,12 +306,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preMove(
-              ctx, region, srcServer, destServer);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preMove(
+            ctx, region, srcServer, destServer);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -404,12 +323,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postMove(
-              ctx, region, srcServer, destServer);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postMove(
+            ctx, region, srcServer, destServer);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -423,11 +338,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver) env.getInstance()).preAssign(ctx, regionInfo);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver) env.getInstance()).preAssign(ctx, regionInfo);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -442,11 +353,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postAssign(ctx, regionInfo);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver) env.getInstance()).postAssign(ctx, regionInfo);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -461,12 +368,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preUnassign(
-              ctx, regionInfo, force);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preUnassign(
+            ctx, regionInfo, force);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -482,12 +385,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postUnassign(
-              ctx, regionInfo, force);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postUnassign(
+            ctx, regionInfo, force);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -501,11 +400,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preBalance(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preBalance(ctx);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -520,11 +415,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postBalance(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postBalance(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -538,12 +429,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          balance = ((MasterObserver)env.getInstance()).preBalanceSwitch(
-              ctx, balance);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        balance = ((MasterObserver)env.getInstance()).preBalanceSwitch(
+            ctx, balance);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -558,12 +445,8 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postBalanceSwitch(
-              ctx, oldValue, newValue);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postBalanceSwitch(
+            ctx, oldValue, newValue);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -576,11 +459,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preShutdown(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preShutdown(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -593,11 +472,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).preStopMaster(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).preStopMaster(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -610,11 +485,7 @@ public class MasterCoprocessorHost
     for (MasterEnvironment env: coprocessors) {
       if (env.getInstance() instanceof MasterObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((MasterObserver)env.getInstance()).postStartMaster(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((MasterObserver)env.getInstance()).postStartMaster(ctx);
         if (ctx.shouldComplete()) {
           break;
         }

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/HRegionServer.java
 Sat Sep 24 14:46:29 2011
@@ -92,7 +92,6 @@ import org.apache.hadoop.hbase.client.Ro
 import org.apache.hadoop.hbase.client.Scan;
 import org.apache.hadoop.hbase.client.coprocessor.Exec;
 import org.apache.hadoop.hbase.client.coprocessor.ExecResult;
-import org.apache.hadoop.hbase.coprocessor.CoprocessorHost;
 import org.apache.hadoop.hbase.executor.ExecutorService;
 import org.apache.hadoop.hbase.executor.ExecutorService.ExecutorType;
 import org.apache.hadoop.hbase.filter.BinaryComparator;
@@ -618,7 +617,7 @@ public class HRegionServer implements HR
 
     try {
       // Try and register with the Master; tell it we are here.  Break if
-      // server is stopped or the clusterup flag is down or hdfs went wacky.
+      // server is stopped or the clusterup flag is down of hdfs went wacky.
       while (keepLooping()) {
         MapWritable w = reportForDuty();
         if (w == null) {
@@ -1507,11 +1506,6 @@ public class HRegionServer implements HR
     }
     this.abortRequested = true;
     this.reservedSpace.clear();
-    // HBASE-4014: show list of coprocessors that were loaded to help debug
-    // regionserver crashes.Note that we're implicitly using
-    // java.util.HashSet's toString() method to print the coprocessor names.
-    LOG.fatal("RegionServer abort: loaded coprocessors are: " +
-        CoprocessorHost.getLoadedCoprocessors());
     if (this.metrics != null) {
       LOG.info("Dump of metrics: " + this.metrics);
     }

Modified: 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
 (original)
+++ 
hbase/trunk/src/main/java/org/apache/hadoop/hbase/regionserver/RegionCoprocessorHost.java
 Sat Sep 24 14:46:29 2011
@@ -31,7 +31,6 @@ import org.apache.hadoop.hbase.HRegionIn
 import org.apache.hadoop.hbase.HTableDescriptor;
 import org.apache.hadoop.hbase.KeyValue;
 import org.apache.hadoop.hbase.Coprocessor;
-import org.apache.hadoop.hbase.CoprocessorEnvironment;
 import org.apache.hadoop.hbase.HConstants;
 import org.apache.hadoop.hbase.client.*;
 import org.apache.hadoop.hbase.coprocessor.*;
@@ -197,33 +196,6 @@ public class RegionCoprocessorHost
         rsServices);
   }
 
-  @Override
-  protected void abortServer(final CoprocessorEnvironment env, final Throwable 
e) {
-    abortServer("regionserver", rsServices, env, e);
-  }
-
-  /**
-   * HBASE-4014 : This is used by coprocessor hooks which are not declared to 
throw exceptions.
-   *
-   * For example, {@link
-   * org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost#preOpen()} and
-   * {@link 
org.apache.hadoop.hbase.regionserver.RegionCoprocessorHost#postOpen()} are such 
hooks.
-   *
-   * See also {@link 
org.apache.hadoop.hbase.master.MasterCoprocessorHost#handleCoprocessorThrowable()}
-   * @param env: The coprocessor that threw the exception.
-   * @param e: The exception that was thrown.
-   */
-  private void handleCoprocessorThrowableNoRethrow(
-      final CoprocessorEnvironment env, final Throwable e) {
-    try {
-      handleCoprocessorThrowable(env,e);
-    } catch (IOException ioe) {
-      // We cannot throw exceptions from the caller hook, so ignore.
-      LOG.warn("handleCoprocessorThrowable() threw an IOException while 
attempting to handle Throwable " + e
-        + ". Ignoring.",e);
-    }
-  }
-
   /**
    * Invoked before a region open
    */
@@ -232,11 +204,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-         try {
-          ((RegionObserver)env.getInstance()).preOpen(ctx);
-         } catch (Throwable e) {
-           handleCoprocessorThrowableNoRethrow(env, e);
-         }
+        ((RegionObserver)env.getInstance()).preOpen(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -252,11 +220,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postOpen(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postOpen(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -273,11 +237,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preClose(ctx, abortRequested);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preClose(ctx, abortRequested);
       }
     }
   }
@@ -291,12 +251,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postClose(ctx, abortRequested);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
-
+        ((RegionObserver)env.getInstance()).postClose(ctx, abortRequested);
       }
       shutdown(env);
     }
@@ -338,12 +293,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postCompactSelection(
-              ctx, store, selected);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env,e);
-        }
+        ((RegionObserver)env.getInstance()).postCompactSelection(
+            ctx, store, selected);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -362,12 +313,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          scanner = ((RegionObserver)env.getInstance()).preCompact(
-              ctx, store, scanner);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env,e);
-        }
+        scanner = ((RegionObserver)env.getInstance()).preCompact(
+            ctx, store, scanner);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -387,11 +334,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postCompact(ctx, store, 
resultFile);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postCompact(ctx, store, 
resultFile);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -407,11 +350,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preFlush(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preFlush(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -427,11 +366,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postFlush(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postFlush(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -447,11 +382,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preSplit(ctx);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preSplit(ctx);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -469,11 +400,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postSplit(ctx, l, r);
-        } catch (Throwable e) {
-          handleCoprocessorThrowableNoRethrow(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postSplit(ctx, l, r);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -497,12 +424,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preGetClosestRowBefore(ctx, row,
-              family, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preGetClosestRowBefore(ctx, row, 
family,
+          result);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -524,12 +447,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postGetClosestRowBefore(ctx, row,
-              family, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postGetClosestRowBefore(ctx, row, 
family,
+          result);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -549,11 +468,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preGet(ctx, get, results);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preGet(ctx, get, results);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -575,11 +490,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postGet(ctx, get, results);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postGet(ctx, get, results);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -600,11 +511,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          exists = ((RegionObserver)env.getInstance()).preExists(ctx, get, 
exists);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        exists = ((RegionObserver)env.getInstance()).preExists(ctx, get, 
exists);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -626,11 +533,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          exists = ((RegionObserver)env.getInstance()).postExists(ctx, get, 
exists);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        exists = ((RegionObserver)env.getInstance()).postExists(ctx, get, 
exists);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -652,11 +555,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).prePut(ctx, familyMap, 
writeToWAL);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).prePut(ctx, familyMap, writeToWAL);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -677,11 +576,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postPut(ctx, familyMap, 
writeToWAL);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postPut(ctx, familyMap, 
writeToWAL);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -702,11 +597,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preDelete(ctx, familyMap, 
writeToWAL);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preDelete(ctx, familyMap, 
writeToWAL);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -727,11 +618,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postDelete(ctx, familyMap, 
writeToWAL);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postDelete(ctx, familyMap, 
writeToWAL);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -760,14 +647,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          result = ((RegionObserver)env.getInstance()).preCheckAndPut(ctx, 
row, family,
-            qualifier, compareOp, comparator, put, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
-
-
+        result = ((RegionObserver)env.getInstance()).preCheckAndPut(ctx, row, 
family,
+          qualifier, compareOp, comparator, put, result);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -795,12 +676,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          result = ((RegionObserver)env.getInstance()).postCheckAndPut(ctx, 
row,
-            family, qualifier, compareOp, comparator, put, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        result = ((RegionObserver)env.getInstance()).postCheckAndPut(ctx, row,
+          family, qualifier, compareOp, comparator, put, result);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -830,12 +707,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          result = ((RegionObserver)env.getInstance()).preCheckAndDelete(ctx, 
row,
-            family, qualifier, compareOp, comparator, delete, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        result = ((RegionObserver)env.getInstance()).preCheckAndDelete(ctx, 
row,
+          family, qualifier, compareOp, comparator, delete, result);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -863,13 +736,9 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          result = ((RegionObserver)env.getInstance())
-            .postCheckAndDelete(ctx, row, family, qualifier, compareOp,
-              comparator, delete, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        result = ((RegionObserver)env.getInstance())
+          .postCheckAndDelete(ctx, row, family, qualifier, compareOp,
+            comparator, delete, result);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -896,12 +765,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          amount = 
((RegionObserver)env.getInstance()).preIncrementColumnValue(ctx,
-              row, family, qualifier, amount, writeToWAL);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        amount = 
((RegionObserver)env.getInstance()).preIncrementColumnValue(ctx,
+            row, family, qualifier, amount, writeToWAL);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -928,12 +793,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          result = 
((RegionObserver)env.getInstance()).postIncrementColumnValue(ctx,
-              row, family, qualifier, amount, writeToWAL, result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        result = 
((RegionObserver)env.getInstance()).postIncrementColumnValue(ctx,
+            row, family, qualifier, amount, writeToWAL, result);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -956,11 +817,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preIncrement(ctx, increment, 
result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preIncrement(ctx, increment, 
result);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -981,11 +838,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postIncrement(ctx, increment, 
result);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postIncrement(ctx, increment, 
result);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -1006,11 +859,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          s = ((RegionObserver)env.getInstance()).preScannerOpen(ctx, scan, s);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        s = ((RegionObserver)env.getInstance()).preScannerOpen(ctx, scan, s);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -1032,11 +881,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          s = ((RegionObserver)env.getInstance()).postScannerOpen(ctx, scan, 
s);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        s = ((RegionObserver)env.getInstance()).postScannerOpen(ctx, scan, s);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -1061,12 +906,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          hasNext = ((RegionObserver)env.getInstance()).preScannerNext(ctx, s, 
results,
-            limit, hasNext);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        hasNext = ((RegionObserver)env.getInstance()).preScannerNext(ctx, s, 
results,
+          limit, hasNext);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -1091,12 +932,8 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          hasMore = ((RegionObserver)env.getInstance()).postScannerNext(ctx, s,
-            results, limit, hasMore);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        hasMore = ((RegionObserver)env.getInstance()).postScannerNext(ctx, s,
+          results, limit, hasMore);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -1117,11 +954,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preScannerClose(ctx, s);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preScannerClose(ctx, s);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
@@ -1141,11 +974,7 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postScannerClose(ctx, s);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postScannerClose(ctx, s);
         if (ctx.shouldComplete()) {
           break;
         }
@@ -1167,17 +996,14 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).preWALRestore(ctx, info, logKey,
-              logEdit);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).preWALRestore(ctx, info, logKey,
+            logEdit);
         bypass |= ctx.shouldBypass();
         if (ctx.shouldComplete()) {
           break;
         }
       }
+     
     }
     return bypass;
   }
@@ -1194,16 +1020,13 @@ public class RegionCoprocessorHost
     for (RegionEnvironment env: coprocessors) {
       if (env.getInstance() instanceof RegionObserver) {
         ctx = ObserverContext.createAndPrepare(env, ctx);
-        try {
-          ((RegionObserver)env.getInstance()).postWALRestore(ctx, info,
-              logKey, logEdit);
-        } catch (Throwable e) {
-          handleCoprocessorThrowable(env, e);
-        }
+        ((RegionObserver)env.getInstance()).postWALRestore(ctx, info,
+            logKey, logEdit);
         if (ctx.shouldComplete()) {
           break;
         }
       }
+      
     }
   }
 }

Modified: hbase/trunk/src/main/resources/hbase-default.xml
URL: 
http://svn.apache.org/viewvc/hbase/trunk/src/main/resources/hbase-default.xml?rev=1175172&r1=1175171&r2=1175172&view=diff
==============================================================================
--- hbase/trunk/src/main/resources/hbase-default.xml (original)
+++ hbase/trunk/src/main/resources/hbase-default.xml Sat Sep 24 14:46:29 2011
@@ -725,15 +725,4 @@
     version is X.X.X-SNAPSHOT"
     </description>
   </property>
-  <property>
-      <name>hbase.coprocessor.abortonerror</name>
-      <value>false</value>
-      <description>
-      Set to true to cause the hosting server (master or regionserver) to
-      abort if a coprocessor throws a Throwable object that is not IOException 
or
-      a subclass of IOException. Setting it to true might be useful in 
development
-      environments where one wants to terminate the server as soon as possible 
to
-      simplify coprocessor failure analysis.
-      </description>
-  </property>
 </configuration>


Reply via email to