From ebcd6c8cf5190678b9681a895964d386eff0e8da Mon Sep 17 00:00:00 2001 From: Noah Levitt Date: Mon, 3 Dec 2018 14:52:03 -0800 Subject: [PATCH] reset HBaseAdmin on error maybe with this change it will be able to recover --- .../org/archive/modules/recrawl/hbase/HBase.java | 12 ++++++++++++ .../archive/modules/recrawl/hbase/HBaseTable.java | 3 +++ 2 files changed, 15 insertions(+) diff --git a/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBase.java b/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBase.java index 8421c906..751d6d53 100644 --- a/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBase.java +++ b/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBase.java @@ -111,4 +111,16 @@ public class HBase implements Lifecycle { public void start() { isRunning = true; } + + public synchronized void reset() { + if (admin != null) { + try { + admin.close(); + } catch (IOException e) { + logger.warning("problem closing HBaseAdmin " + admin + " - " + e); + } + + admin = null; + } + } } diff --git a/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBaseTable.java b/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBaseTable.java index 6549980e..eb33b2c8 100644 --- a/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBaseTable.java +++ b/contrib/src/main/java/org/archive/modules/recrawl/hbase/HBaseTable.java @@ -115,6 +115,7 @@ public class HBaseTable extends HBaseTableBean { } catch (IOException e) { logger.log(Level.WARNING, "(attempt " + attempt + ") problem creating hbase table " + htableName, e); attempt++; + reset(); // back off up to 60 seconds between retries try { Thread.sleep(Math.min(attempt * 1000, 60000)); @@ -145,6 +146,8 @@ public class HBaseTable extends HBaseTableBean { } hconn.remove(); } + + hbase.reset(); } @Override