HBASE-10119. Allow HBase coprocessors to clean up when they fail (Benoit Sigoure)

git-svn-id: https://svn.apache.org/repos/asf/hbase/trunk@1549974 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Andrew Kyle Purtell 2013-12-10 21:20:53 +00:00
parent a604c4224a
commit 6985aef8c8
1 changed files with 7 additions and 1 deletions

View File

@ -780,8 +780,14 @@ public abstract class CoprocessorHost<E extends CoprocessorEnvironment> {
LOG.error("Removing coprocessor '" + env.toString() + "' from " +
"environment because it threw: " + e,e);
coprocessors.remove(env);
try {
shutdown(env);
} catch (Exception x) {
LOG.error("Uncaught exception when shutting down coprocessor '"
+ env.toString() + "'", x);
}
throw new DoNotRetryIOException("Coprocessor: '" + env.toString() +
"' threw: '" + e + "' and has been removed" + "from the active " +
"' threw: '" + e + "' and has been removed from the active " +
"coprocessor set.", e);
}
}