Repository: accumulo
Updated Branches:
  refs/heads/1.6 78522c4cd -> e82c3f3da
  refs/heads/1.7 5947b4206 -> 1853d088e
  refs/heads/master 0e1da5a58 -> 2b6e68b6a


ACCUMULO-4060 Handle uncaught exceptions in FATE repo runner threads.

Any RuntimeException propagated from the internals of the FATE
repo-runner threads will caught the thread to exit. This creates
a situation where the Master can be running but be unresponsive
to any pending FATE operations like creating a table.

Make sure that these exceptions are caught and suppressed to ensure
that FATE ops can always be handled while the master is running.


Project: http://git-wip-us.apache.org/repos/asf/accumulo/repo
Commit: http://git-wip-us.apache.org/repos/asf/accumulo/commit/e82c3f3d
Tree: http://git-wip-us.apache.org/repos/asf/accumulo/tree/e82c3f3d
Diff: http://git-wip-us.apache.org/repos/asf/accumulo/diff/e82c3f3d

Branch: refs/heads/1.6
Commit: e82c3f3dab208478173e352635f87a96d72a38b2
Parents: 78522c4
Author: Josh Elser <els...@apache.org>
Authored: Sat Nov 21 16:53:11 2015 -0500
Committer: Josh Elser <els...@apache.org>
Committed: Sat Nov 21 16:58:26 2015 -0500

----------------------------------------------------------------------
 fate/src/main/java/org/apache/accumulo/fate/Fate.java | 3 +++
 1 file changed, 3 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/accumulo/blob/e82c3f3d/fate/src/main/java/org/apache/accumulo/fate/Fate.java
----------------------------------------------------------------------
diff --git a/fate/src/main/java/org/apache/accumulo/fate/Fate.java 
b/fate/src/main/java/org/apache/accumulo/fate/Fate.java
index 493d441..52c7b2f 100644
--- a/fate/src/main/java/org/apache/accumulo/fate/Fate.java
+++ b/fate/src/main/java/org/apache/accumulo/fate/Fate.java
@@ -38,6 +38,7 @@ public class Fate<T> {
   private static final String RETURN_PROP = "return";
 
   final private static Logger log = Logger.getLogger(Fate.class);
+  private final Logger runnerLog = Logger.getLogger(TransactionRunner.class);
 
   private TStore<T> store;
   private T environment;
@@ -91,6 +92,8 @@ public class Fate<T> {
               }
             }
           }
+        } catch (Exception e) {
+          runnerLog.error("Uncaught exception in FATE runner thread.", e);
         } finally {
           store.unreserve(tid, deferTime);
         }

Reply via email to